999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

串口嗅探技術研究

2016-08-22 09:42:38李瑞民
電視技術 2016年7期
關鍵詞:程序設備

張 勝,李瑞民

(上海文化廣播影視集團技術運營中心,上海 200041)

?

串口嗅探技術研究

張勝,李瑞民

(上海文化廣播影視集團技術運營中心,上海 200041)

串口的廣泛使用,得益于小到單片機,大到多核CPU的直接支持,所以在設備中,特別是廣電行業設備中,不僅不會消失,而且還會長期存在。然而串口通信具有獨占性,一旦一個監控程序占用了某個串口,則另外的程序無法使用該串口,這對于二次開發、第三方監控、設備共享、硬件設備的調試和測試都十分不利。所以,對串口嗅探技術的研究是有必要的,目前國內尚無人對此做出過研究,通過三個層次,共提出五種串口嗅探技術,每一種串口嗅探技術都有自己獨特的地方,但也都有不足之處,但無論是功能上,還是性能上都可以滿足串口嗅探的功能。最后,通過程序的設計和測試,驗證了方法的可能性。

串口嗅探;設備監控;獨占性;中繼;串口通信

現在的互聯網通信中,基于TCP/IP為基礎的網絡通信方式如日中天,占據了幾乎所有的通信數據量。但是在設備的監控領域中,特別是廣電行業的網絡監控中,仍然還是有大量的設備使用串口作為其主要甚至唯一的通信方式。以國內某主要的廣電行業衛星地球站為例,站中有600多臺新老設備,其中的近80%左右的設備采用串口進行通信。造成這一現象的原因有多種,一是早期的遺留設備,串口是其主要通信方式;二是大部分硬件設計研發階段中,本身就使用了串口作為上傳和下載程序的主要手段,而這種得天獨厚的方式也完全沒有必要在隨后的產品中取消掉;三是網口通信并沒有聽上去那么美,以SNMP協議為例,所有使用該協議的企業都需要申請和購買企業OID的根結點,這會讓一些成本低,設計簡單的設備望而卻步。因此,無論是理論上,還是實際不斷出現的廣電設備中,不難看出,采用串口進行通信仍有大量市場,未來仍然還是會有大量的設備使用串口作為主要通信方式。

然而,在設備監控的項目開發中,也會遇到一些困難。比如串口通信具有獨占性,某一個監控系統使用了一個串口,其他監控系統則無法再使用該串口[1];反過來,一個設備通常只有一個串口,所以這同時也意味著該設備將只能被一個監控系統提供通信。在遇到特殊情況時,上述沖突顯得尤為突出,如某設備在購買時,設備所提供的操控臺或管理程序使用了唯一的這個串口;再如筆者想以第三方的形式,讀取并備份已占串口所有通信的內容;在監控系統的開發和調試中,如果已有成熟系統處于運行中,如果能以監聽方式獲得該系統通過該串口與設備之間的通信,那么對于開發新產品,具有事半功倍的效果。

因此,不難發現,如果能有一個技術可以在具有獨占性的串口通信中,能以主動或被動的方式讀取到串口中正在通信的數據,那么就可以從另一個側面對串口進行監控。這種技術在TCP/IP網絡中,通常稱為“嗅探”(Sniffer),所以本處也借用這一詞匯,稱之為“串口嗅探”(COM Sniffer)。

1 原理分析

如前所述,通信屬于“點對點”的通信,所以串口具有獨占性特點,一旦某一個應用占用了某一個串口,則其他應用不能再使用該串口。從網絡層次上來看,串口只有物理層(Physical Layer)、數據鏈路層(DataLink Layer)、應用層(Application Layer)3層;從操作系統的角度來看,要與串口通信,需要有串口物理接口、串口驅動程序、串口應用程序3層。所以對串口的嗅探,也分別可以從這3個層次上進行分析和設計。

1.1物理層嗅探

在物理層,只要將對應的引腳連線,通過簡單地并聯,就可以將一路信號復制為兩路信號。以串口通信中,根據通信的標準,還可以再劃分為RS-232、RS-422和RS-485通信三種主要通信標準,每一種的引腳不一樣,所以連線都不一樣。以RS-232為例,引腳2、引腳3、引腳5分別對應著接收(RxD)、發送(TxD)、地線(GND)[2-4]。那么只要在焊接連線的時候,同時在這3個引腳上焊接2組線,并將每組線分別制作成一個串口,然后將這2個串口分別連接到2臺監控主機的串口上即可。

這樣做的優點是做法直觀,實現起來也很簡單;缺點也很明顯,如這種焊接會影響到電氣特性,所以需要設備的串口必須是高阻串口,即使如此,仍然會有較大概率增大出錯率。另外,2個主監控主機如果同時向設備發送數據,會因數據“碰撞”(Collision)而導致失敗。因此,2臺主機不能同時發送數據。不過,這與“嗅探”不沖突,所以這可以作為一種有效的“嗅探”方法,但本文不再深入討論。

1.2數據鏈路層嗅探

在數據鏈路層,重寫一個串口通信的驅動程序大可不必。通常情況下,一般有三種方式,每一種方法都有一定的優勢和局限性。

一種就是對于一些串口開發的程序,本身就喜歡使用第三方提供的函數庫文件,例如PComm庫,就是一組廣泛被眾多串口軟件開發者使用的一種庫文件。監控軟件調用該庫,該庫再調用驅動程序,最終完成串口通信,如果仿照該庫的頭結構(該結構都在庫的頭文件中),新做一個PComm庫,新的PComm庫在接收到某個串口命令以后,即將其保存到第三方文件(如數據庫中),然后原封不動地調用原PComm庫(原庫可改成另外一個名字),即可以“偷梁換柱”的方式,在所有原監控軟件不修改的前提下完成“嗅探”。這種方式的優點是簡單,缺點是并不是所有的系統都采用PComm庫,所以存在使用上的局限性。

基于驅動程序通過“鉤子”(Hook)技術進行嗅探[4],即通過特定的函數,將系統中某一API的地址修改為自己所編寫的函數地址處,這樣系統任何程序在調用該API的時候,實際調用的不再是原有的API函數,而是自己所編寫的函數內容。當然為了在自己處理結束后,還能繼續調用原有的API,可以在修改原有API地址之前,先保存原有地址,在自身被調用以后,將要處理的事情做完,然后再調用一下保存的原有API地址,使原有的API功能仍能被執行到。采用鉤子技術,在串口的監聽上,需要同時監聽CreateFile,ReadFile,WriteFile,CloseHandle共4個函數,操作系統中這4個函數的使用頻率非常大,但根據CreateFile函數中“文件名”參數,以及其他函數的句柄可以判斷是否為對串口的調用,對于不是串口的調用,只要不處理而直接轉向原有API地址即可,對于串口的調用,則需要先做一些處理(如寫到日志中)后,再轉達向原有API地址。根據CreateFile函數可以知道哪個程序在使用哪個串口,根據ReadFile函數可以知道有誰在通過串口向主機發送數據,根據WriteFile函數可以知道主機向外界所發送的數據,根據CloseHandle函數可以知道有哪些串口不再使用。

第三種方式,即采用第三方的開發庫或驅動工具實現“嗅探”。這種方式,如“虛擬串口仿真”VSPE(Virtual Serial Ports Emulator)工具。VSPE是Eterlogic公司出品的一套虛擬串口仿真驅動程序,其作用很強大,即使在一臺沒有物理串口的計算機中,可以創建虛擬串口。并且該虛擬串口可以只接收發來的數據,也可以將其轉發出去,借助于這機制,可以實現串口數據的嗅探,詳細設計參見后面內容。

1.3應用層嗅探

如前所述,串口在應用層處于“獨占”方式,因此直接使用是不可行的。串口通信和通過“中繼”實現串口嗅探模型如圖1所示。

圖1 串口通信(上)和通過“中繼”實現串口嗅探(下)模型

在圖1中,上半部分是“監控程序主機”和“被監控的設備”之間,通過串口連接線進行正常的數據通信,二者之間的數據流不管是虛線和實線,只是表示數據流轉的方向。如果將上半部分的連接圖換成下半部分的連接圖,然后在這兩段中的中間“樞紐”區放一個無條件轉發雙方通信數據的串口程序作為“中繼器”(Repeater),即該程序無論收到哪一串口上的數據,都將無條件將其轉發到另一串口上。那么,由于串口通信是“端到端”的通信,因而“被監控設備”并不知道,也不需要知道這些數據是來自于“串口嗅探主機”,還是“監控程序主機”。當然,回到“串口嗅探”的目的上來,這樣看似“畫蛇添足”的設計,其目的不是為了讓設計變得更復雜,而是讓轉發程序在轉發的同時,將轉發的數據作為嗅探到的數據,或偵聽,或保存,或為其他程序所用。

2 程序設計和測試

上述各方法各有利弊,在實際的使用中,可以根據具體的需要酌情使用。上述各方法中,“物理層嗅探”性能不穩定,因此只能用于簡單的臨時測試環境中;“網絡層嗅探”雖然實現起來并不難,但需要一個額外的雙串口主機,因而造成了較大的資源浪費,因此也并不可取。對于“數據鏈路層嗅探”,也如前所述,重寫一個帶過濾功能的新PComm庫和“鉤子”都具有一定的難度,不適合于普通的開發人員。相比之下,“虛擬串口仿真”VSPE是權衡利弊之后的一個不錯選擇,所以下面以該方式設計程序并進行測試。

在VSPE系統中,有一個稱為“連接器”(Connector)的概念,使用該連接器,系統會在其中創建一個“虛擬”的串口。之所以叫“連接器”,是這個串口允許兩個程序分別打開,并且其中一個程序發出的任何內容,“連接器”會無條件轉發給另一個程序。這正是筆者想要的功能,只可惜該“連接器”只負責轉發,而不會將其中所傳的數據保存或轉發出現,為了實現這兩個功能,可以通過上面“應用層嗅探”中的方法,采用“曲線”的方式實現串口的嗅探。如圖2所示就是這一設計思路的模型。

圖2 基于VSPE“連接器”的串口嗅探原理圖

在圖2中,原本“監控程序”程序直接通過“物理串口A”與“被監控設備”進行通信,現在通過VSPE技術創建了一個“連接器”(即圖中“VSPE虛擬串口B”,以下簡稱“虛擬串口B”),然后“監控程序”不再直接打開“物理串口A”,而是打開這個“虛擬串口B”,根據前面對“連接器”的描述,這時,如果“串口嗅探程序”也同時開了這個“虛擬串口B”,那么“監控程序”發出的所有內容,都會被這個“虛擬串口B”無條件轉給“串口嗅探程序”,反之亦然。這時,如果結合前面的“應用層嗅探”中的方法,將“串口嗅探程序”做成圖1中“串口嗅探主機”的角色,那么該程序又可以在完成嗅探任務的同時,將所有收到的信息,經由“物理串口A”轉發到“被監控的設備”中。反過來,“被監控的設備”中的信息,也會反向經由“物理串口A”轉發“串口嗅探程序”中。

在圖2中,“虛擬串口B”和“串口嗅控程序”所完成的工作都是轉發,但前者是由VSPE完成的,不具備日志和過濾功能,后一個則具備“嗅探”的功能;這里的“串口嗅控程序”和圖1中“應用層嗅探”中的“串口嗅探主機”,無論是從運行原理中,還是所實現的功能上,二者都是一樣的,但與后者相比,這種方式少了一臺具有兩個串口的主機,取而代之的是在運行前,安裝一個VSPE的驅動來同時對接圖2中的“監控程序”和“串口嗅探程序”。

為了驗證上述理論,筆者特編寫了一個程序進行驗證,該程序開源[5],運行在Windows XP及以上版本的操作系統上。所安裝的VSPE可以從“www.eterlogic.com”下載試用版。

程序主界面如圖3所示,主界面根據分組框被分為3個部分,其中“日志”分組框即為雙方通信的嗅探內容。其內容為一個列表,其中“方向”字段有兩種,一種是“發出”,即由本機發出到串口遠端的命令,另一種是“接入”,即串口遠端發送到本機的命令;“時間”字段即為具體的時間;“命令”字段即為通信過程中傳輸的詳細內容。下面的“串口信息”分組框中,“虛擬串口值”即為“虛擬串口”的值,而“物理串口值”即為圖2中的“物理串口”的值。實例中,“虛擬串口”值為1,本地的“物理串口”值為8。

圖3 基于“連接器”的串口監聽程序主界面(截圖)

經過測試,程序可以良好地嗅探到“監控程序”和“被監控設備”之間的所有通信數據,不過,由于程序在實現“中繼”功能時存在“轉發”時功能,所以所轉發的數據會有一定的延遲,但對于設備監控本身的需要,這種延遲可以忽略,并不影響整體的性能。

3 小結

當今串口仍然在數據通信領域占有一定的地位,究其原因,就是“簡單”。不需要協議連接、通信協議與鏈路的分離,以及小于幾元錢的單片機,大到幾千元的ARM板,都先天支持串口的通信,因而至今串口通信仍然活躍在大多數中低端的設備中。即使是目前的研究熱點“物聯網”設備,在設備CPU不能良好地支持TCP/IP的網口通信時,退而改用串口通信方式,也不失為一種較好的解決辦法。鑒于此,對基于串口的監控程序測試、開發也不會停止,上述問題就會存在,因而無論是想通過監聽技術獲得二者之間的通信數據,進而進行協議分析;還是想在安全級別較高的場合中,對于通信中的數據,常常需要第三方軟件客觀地記錄,都需要通過“串口嗅探”技術完成。而本文正是基于這一需求,提出了幾種“串口嗅探”技術,借以拋磚引玉,引發更多的研究。

[1]宋文好,徐志江. Modbus RTU串口通信在工業自動化系統中的應用[J].有線電視技術,2012(3):61-63.

[2]葉勇,沈三民,郭錚.基于PCI總線的高速串口通信卡的設計[J].電視技術,2013,37(3):82-85.

[3]潘方.RS232串口通信在PC機與單片機通信中的應用[J].現代電子技術,2012(13):69-71.

[4]劉興淮,陳侃侃,梁敏.基于鍵盤鉤子技術的HIS語音報價系統[J].北京生物醫學工程,2014(1):81-83.

[5]李瑞民.獨辟蹊徑的編程思維——“拿來主義”編程[M].北京:電子工業出版社,2014.

責任編輯:閆雯雯

Sniffer technology of serial port communication

ZHANG Sheng, LI Ruimin

(ShanghaiMediaGroupCo.Ltd,Shanghai200041,China)

Serial port (COM) interface has been used in communication field between computer and device in widely common usage, supported from microcontrollers to multi-core CPU. So in the equipment communication interface, especially the broadcast and television industry equipment, transfer data by serial port is not only will not disappear, but also long-term existence. However, the communication from serial port is exclusive,once a monitoring program occupies a serial,another program cannot use this serial port at the same time, it is not advantage of using for some aspect,for example,the secondary development,the third party software monitoring the same serial port, serial port sharing of device, and debugging and testing a device from serial port. So it's necessary to research the technology of serial port sniffer, there is no such studies have been made in such aspect. In this paper, it put forward a total of five serial port sniffer technologies, each one has its own unique feature, at the same time it has some shortcomings. Finally, through the design and testing of a special software program, it proves both functionality and performance are feasible and effective.

serial port sniffer;device monitoring;interface exclusive;relay;COM communication

TN919.83

ADOI:10.16280/j.videoe.2016.07.009

上海市廣播電視臺項目(“播出智能監管與應急輔助系統”)

2016-01-21

文獻引用格式:張勝,李瑞民. 串口嗅探技術研究[J].電視技術,2016,40(7):36-39.

ZHANG S, LI R M. Sniffer technology of serial port communication [J].Video engineering,2016,40(7):36-39.

猜你喜歡
程序設備
諧響應分析在設備減振中的應用
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
如何在設備采購中節省成本
主站蜘蛛池模板: 欧美成在线视频| 九九热在线视频| 日本一区二区三区精品视频| 一边摸一边做爽的视频17国产| 国产成人91精品免费网址在线| 一级毛片高清| 国产18页| 亚洲综合片| 色综合天天视频在线观看| 久久99国产精品成人欧美| 无码人中文字幕| 国产精品99久久久| 18禁高潮出水呻吟娇喘蜜芽| 最新日韩AV网址在线观看| 亚洲午夜福利精品无码不卡| 在线网站18禁| 国产亚洲精久久久久久无码AV| 日本尹人综合香蕉在线观看| 日韩视频免费| 99色亚洲国产精品11p| 亚洲一级毛片免费观看| 波多野结衣AV无码久久一区| 亚洲成a人片在线观看88| 国产精品毛片一区| 香港一级毛片免费看| 日韩黄色大片免费看| 欧美日韩资源| 亚洲av色吊丝无码| 她的性爱视频| 国产成人1024精品下载| 在线观看国产精美视频| 欧美日本二区| 欧美国产另类| 青青草国产一区二区三区| 国产日韩欧美在线视频免费观看 | 99在线视频免费观看| 国产精品美女网站| 国产一级视频在线观看网站| 欧美一区精品| 日本在线欧美在线| 噜噜噜久久| 日本爱爱精品一区二区| 成人免费一区二区三区| 自慰网址在线观看| 67194亚洲无码| 久久人体视频| 欧美日韩一区二区三区四区在线观看| 欧美专区在线观看| 亚洲伊人久久精品影院| 亚洲视频一区| 亚洲欧美不卡| 亚洲Aⅴ无码专区在线观看q| 狠狠操夜夜爽| 中文字幕佐山爱一区二区免费| 中国国产A一级毛片| 久久这里只精品国产99热8| 午夜日b视频| 国产视频久久久久| 久久无码av三级| 亚洲色成人www在线观看| 色婷婷在线播放| 色悠久久久久久久综合网伊人| 亚洲熟女中文字幕男人总站| 九九热精品在线视频| 久久黄色毛片| 国内精品免费| 国产丝袜一区二区三区视频免下载| 亚洲成人77777| 999国内精品视频免费| 中文字幕亚洲乱码熟女1区2区| 天天躁夜夜躁狠狠躁躁88| 91丨九色丨首页在线播放| 五月天综合婷婷| 国产男女免费视频| 国产主播在线观看| 伊人91在线| 成人另类稀缺在线观看| 日韩成人高清无码| 熟妇无码人妻| 亚洲 欧美 偷自乱 图片| 在线免费亚洲无码视频| 欧美一区二区丝袜高跟鞋|