亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Wireshark的協(xié)議解析器開(kāi)發(fā)研究和實(shí)現(xiàn)

        2015-05-30 12:14:39曹利王丹丹
        計(jì)算機(jī)時(shí)代 2015年6期
        關(guān)鍵詞:網(wǎng)絡(luò)協(xié)議

        曹利 王丹丹

        摘 要: 在分析Wireshark體系結(jié)構(gòu)和功能的基礎(chǔ)上,研究了Wireshark環(huán)境下協(xié)議解析器開(kāi)發(fā)的方法和流程,以一個(gè)簡(jiǎn)單的私有協(xié)議amin進(jìn)行了驗(yàn)證性開(kāi)發(fā),實(shí)驗(yàn)結(jié)果說(shuō)明Wireshark的開(kāi)放性架構(gòu)有效的滿足了新解析插件添加和對(duì)新協(xié)議的分析。對(duì)業(yè)界非標(biāo)準(zhǔn)新協(xié)議的拓展研究有借鑒意義。

        關(guān)鍵詞: Wireshark; 協(xié)議解析; 插件開(kāi)發(fā); 網(wǎng)絡(luò)協(xié)議

        中圖分類號(hào):TP393 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2015)06-13-03

        Abstract: The Wireshark's function, architecture, components are analyzed, and the method and process of protocol parser development is also studied. At the same time, a validation of development has been done on a simple protocol Amin. Experimental results show that the open architecture of Wireshark is effective to a newly added protocol parser plug-ins and to new protocol parsing, this paper provided a reference for the expanded research of non-standard protocol.

        Key words: Wireshark; protocol parsing; plug-in development; network protocol

        0 引言

        網(wǎng)絡(luò)協(xié)議分析軟件的功能是擷取網(wǎng)絡(luò)數(shù)據(jù)包的協(xié)議頭及相關(guān)負(fù)載信息,通過(guò)分析,盡可能為用戶顯示出最為詳細(xì)的網(wǎng)絡(luò)協(xié)議資料,從而了解信息及相關(guān)數(shù)據(jù)包在產(chǎn)生和傳輸中的行為。由于網(wǎng)絡(luò)協(xié)議層出不窮,一個(gè)好的網(wǎng)絡(luò)協(xié)議分析軟件必須既能對(duì)標(biāo)準(zhǔn)協(xié)議進(jìn)行有效分析,又能提供接口允許用戶添加新的協(xié)議解析方法[1]。Wireshark(前稱Ethereal)是目前應(yīng)用最廣泛的網(wǎng)絡(luò)協(xié)議分析軟件之一,由密蘇里大學(xué)計(jì)算機(jī)專業(yè)的Gerald combs出于項(xiàng)目需要而開(kāi)發(fā),于1998年以GPL開(kāi)源許可證發(fā)布,Wireshark的使用者可以免費(fèi)取得該軟件和其源代碼,并根據(jù)自身協(xié)議解析的需求對(duì)其進(jìn)行定制和擴(kuò)展。

        本文在分析Wireshark的系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,研究了Wireshark的開(kāi)發(fā)環(huán)境,方法和步驟,并進(jìn)行了新協(xié)議解析插件開(kāi)發(fā)驗(yàn)證,為新協(xié)議的拓展研究打下基礎(chǔ)。

        1 Wireshark體系結(jié)構(gòu)分析

        Wireshark的結(jié)構(gòu)主要由Capture Core、win-/libpcap、WireTap、Dissector幾個(gè)核心模塊構(gòu)成。綜合調(diào)度模塊Capture Core調(diào)用底層抓包工具win-/libpcap獲得網(wǎng)絡(luò)數(shù)據(jù),并調(diào)用磁盤(pán)讀寫(xiě)包模塊WireTap寫(xiě)入本地磁盤(pán)。因?yàn)閿?shù)據(jù)是二進(jìn)制文件,所以必須調(diào)用解析器模塊Dissector對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行協(xié)議解讀,并把協(xié)議部分的各個(gè)字段信息進(jìn)行詳細(xì)地呈現(xiàn)。解析器Dissector的核心工作就在于數(shù)據(jù)包詳細(xì)內(nèi)容窗口部分的樹(shù)形結(jié)構(gòu)的維護(hù),并結(jié)合過(guò)濾器、數(shù)據(jù)包列表等部分,進(jìn)行篩選與信息的呈現(xiàn)。當(dāng)用戶需要對(duì)新協(xié)議進(jìn)行開(kāi)發(fā),實(shí)質(zhì)上就是對(duì)Dissector進(jìn)行拓展,Dissector可以是內(nèi)置形式的(Build-in),也可以是插件形式的(Plug-in),所以,基于Wireshark的協(xié)議解析器開(kāi)發(fā)有兩種模式,即:Build-in、Plug-in[2]。其系統(tǒng)結(jié)構(gòu)如圖1所示。

        2 Wireshark開(kāi)發(fā)環(huán)境設(shè)置

        在Windows環(huán)境下進(jìn)行Wireshark開(kāi)發(fā)需要的工具有:

        ⑴ Visual C++ 2005 Express Edition(C編譯器);

        ⑵ Cygwin(一個(gè)Win32上的仿Unix平臺(tái));

        ⑶ Python(一種面向?qū)ο蟮母呒?jí)腳本語(yǔ)言);

        ⑷ Subvertion Client(TortoiseSVN)(可選);

        ⑸ Wireshark依賴的開(kāi)發(fā)包。

        安裝步驟及開(kāi)發(fā)環(huán)境設(shè)置如下[3]。

        ⑴ 安裝VS2005/VS2003 等C語(yǔ)言編譯器,同時(shí)必須確認(rèn)下載并安裝本操作系統(tǒng)的SDK。

        ⑵ 安裝Cygwin,在Wireshark插件開(kāi)發(fā)中需要用到的安裝包有:Archive/unzip、Devel/bison、Devel/flex、Interpreters/perl、Utils/patch、Web/wget,在”Select Package”頁(yè)需要改變下載選項(xiàng),將以上安裝包選中安裝。

        ⑶ 安裝Python,版本符合Wireshark源代碼包中的config.nmake文件中的PYTHON_VER中定義的版本(例如PYTHON_VER=27,則選擇python-2.7.*的版本)。

        ⑷ 安裝Subvertion Client,可以下載使用TortoiseSVN,安裝后重啟,瀏覽文件夾時(shí)右鍵會(huì)獲取源代碼樹(shù),方便程序開(kāi)發(fā)。

        ⑸ 編譯Wireshark。使用svn客戶端TortoiseSVN將Wireshark源代碼下載到本地磁盤(pán),修改源碼的config.nmake文件來(lái)指定對(duì)應(yīng)的工具以及相關(guān)信息,主要做以下幾項(xiàng)修改:

        WIRESHARK_TARGET_PLATFORM:指定編譯目標(biāo)平臺(tái);

        VERSION_EXTRA:指定自定義編譯個(gè)人版本信息,字符串形式。

        WIRESHARK_LIBS:依賴庫(kù)的路徑,依賴庫(kù)可以通過(guò)makefile文件自動(dòng)獲取。

        cygwin的安裝路徑:CYGWIN_PATH=C:\cygwin\bin

        python的路徑PYTHON="C:/python25/python.exe"

        設(shè)置nsis打包工具的路MAKENSIS="d:\Program Files\

        nsis\makensis.exe"

        編譯輸出文件路徑INSTALL2_DIR=E:\MyCode\wire-

        shark\Wireshark-gtk2

        設(shè)置命令行環(huán)境:在命令行中直接運(yùn)行nmake -f Makefile verify_tools

        如果所有必需安裝的軟件包都安裝好了,則會(huì)出現(xiàn)如圖2所示的界面。

        ⑹ 編譯Wireshark需要的依賴庫(kù)文件:nmake -f Makefile.nmake setup

        ⑺ 清理無(wú)用文件:nmake -f Makefile.nmake distclean

        ⑻ 編譯nmake -f Makefile.nmake all

        3 Wireshark解析協(xié)議的開(kāi)發(fā)

        3.1 Wireshark協(xié)議解析原理

        基于TCP/IP的協(xié)議數(shù)據(jù)包在發(fā)送端是從上往下進(jìn)行層層封裝,接收者對(duì)協(xié)議的解析需從下往上,首先對(duì)數(shù)據(jù)幀的協(xié)議分析,脫去協(xié)議頭,然后將數(shù)據(jù)交由網(wǎng)絡(luò)層分析,網(wǎng)絡(luò)層協(xié)議識(shí)別后脫去網(wǎng)絡(luò)層協(xié)議頭,將里面的數(shù)據(jù)交給傳輸層分析,這樣一直進(jìn)行下去,直到應(yīng)用層。為使協(xié)議和協(xié)議間層次關(guān)系明晰,從而對(duì)數(shù)據(jù)流中各層次的協(xié)議能夠逐層處理,Wireshark系統(tǒng)采用了圖3所示協(xié)議樹(shù)的方式。Wireshark采用協(xié)議的特征字來(lái)識(shí)別擁有同樣父協(xié)議的兄弟節(jié)點(diǎn)協(xié)議。每個(gè)協(xié)議注冊(cè)自己的特征字,這些特征字給子節(jié)點(diǎn)協(xié)議提供可以互相區(qū)分開(kāi)來(lái)的標(biāo)識(shí)。在Wireshark中注冊(cè)一個(gè)協(xié)議解析器首先需要指出它的父協(xié)議是什么,另外還需指出自己區(qū)別于父節(jié)點(diǎn)下所有兄弟節(jié)點(diǎn)協(xié)議的特征字。

        由于采用了協(xié)議樹(shù)加特征字的設(shè)計(jì),Wireshark在協(xié)議解析上具備了很強(qiáng)的擴(kuò)展性,增加一個(gè)協(xié)議只需要將該協(xié)議相關(guān)的解析函數(shù)掛到協(xié)議樹(shù)上相應(yīng)的節(jié)點(diǎn)即可[4]。

        3.2 插件型解析器開(kāi)發(fā)

        Wireshark默認(rèn)支持1170多種業(yè)界通用網(wǎng)絡(luò)協(xié)議,在Wireshark主菜單“Internals>Support Protocols ”可查看當(dāng)前支持的所有協(xié)議。當(dāng)Wireshark需要解析非業(yè)界通用協(xié)議時(shí),就必須使用內(nèi)置件形式或插件技術(shù)進(jìn)行協(xié)議解析的拓展,內(nèi)置件形式需要了解Wireshark的組織構(gòu)建,了解源文件的存放位置和編譯運(yùn)行方式等,難度較大。而插件技術(shù)是通過(guò)提供通用接口調(diào)用插件的方式開(kāi)發(fā)解析協(xié)議,在指定源代碼目錄\plugins\下增加編譯好的庫(kù)文件(*.dll)。運(yùn)用插件技術(shù)可以開(kāi)發(fā)出伸縮性良好、便于維護(hù)的應(yīng)用程序,相對(duì)來(lái)說(shuō)簡(jiǎn)單易行。本文主要分析插件型解析器開(kāi)發(fā)技術(shù)。

        協(xié)議解析器的核心邏輯流程包括以下部分[5]。

        ⑴ 注冊(cè)協(xié)議:注冊(cè)協(xié)議的名稱,過(guò)濾字符串及其他相關(guān)所需的結(jié)構(gòu)。

        ⑵ 提供協(xié)議解析函數(shù):這是關(guān)鍵部分,此函數(shù)由Wireshark核心調(diào)用,處理協(xié)議的解析及顯示工作。

        Wireshark啟動(dòng)時(shí)會(huì)加載所有$installdir/plugins/$buildversion/*.dll,并且調(diào)用每個(gè)dll導(dǎo)出的兩個(gè)函數(shù)proto_reg_handoff_xxx和proto_register_xxx。插件在這兩個(gè)函數(shù)里完成 解析器dissector的注冊(cè)和初始化工作,其中plugin_registe注冊(cè)插件,plugin_reg_handoff注冊(cè)協(xié)議。

        插件型解析器開(kāi)發(fā)的具體過(guò)程如下。

        第一步,在Wireshark的plugins目錄下創(chuàng)建一個(gè)目錄,一般以需要解析的協(xié)議名作為目錄名。

        5 結(jié)束語(yǔ)

        隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展。網(wǎng)絡(luò)協(xié)議的種類也越來(lái)越多,對(duì)新協(xié)議的研究需要一個(gè)可擴(kuò)展的協(xié)議分析器進(jìn)行協(xié)議解析,而Wireshark以其開(kāi)源性和良好的二次開(kāi)發(fā)架構(gòu)滿足了該需求。本文在分析Wireshark體系結(jié)構(gòu)的基礎(chǔ)上,研究了Wireshark環(huán)境下協(xié)議解析器開(kāi)發(fā)的方法和流程,同時(shí)以一個(gè)簡(jiǎn)單的私有協(xié)議amin進(jìn)行了驗(yàn)證性開(kāi)發(fā),實(shí)驗(yàn)結(jié)果說(shuō)明Wireshark的開(kāi)放性架構(gòu)有效的滿足了新解析插件添加和對(duì)新協(xié)議的解析。這將為網(wǎng)絡(luò)設(shè)計(jì)和研究中的新協(xié)議拓展帶來(lái)很大的便利。

        參考文獻(xiàn):

        [1] 蔣波,李方軍,郝軍.數(shù)據(jù)包的截獲與網(wǎng)絡(luò)協(xié)議分析[J].重慶三峽學(xué)院

        學(xué)報(bào),2006.22(3):26-28

        [2] Wireshark技術(shù)文檔4.0.1[EB/OL].http://www.winpcap.org,

        2014-06-03.

        [3] 羅青林,徐克付,'臧文羽,劉金剛. 1 Wireshark 環(huán)境下的網(wǎng)絡(luò)協(xié)議解

        析與驗(yàn)證方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2011.32(3):770-773

        [4] MoinMoi, Python.doc/README. developer[EB/OL]. http://wiki.

        Wireshark.org/Development,2009.

        [5] KenThompson. Creating your own custom Wireshark dissector

        [EB/OL].http://www.codeproject.com/KB/IP/custom_dissector.aspx,

        2009.

        猜你喜歡
        網(wǎng)絡(luò)協(xié)議
        計(jì)算機(jī)網(wǎng)絡(luò)理論下的傳播研究結(jié)構(gòu)模型:Communication一詞的兩種翻譯
        一種藍(lán)牙多跳網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)與研究
        電子制作(2018年17期)2018-09-28 01:56:52
        嵌入式協(xié)議棧的TCP/IP設(shè)計(jì)與實(shí)現(xiàn)
        寬帶數(shù)據(jù)鏈網(wǎng)絡(luò)協(xié)議的分析
        基于載波技術(shù)的多點(diǎn)溫度測(cè)量系統(tǒng)設(shè)計(jì)
        基于DPI技術(shù)的語(yǔ)音視頻流量監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        關(guān)于天基傳輸網(wǎng)絡(luò)體系結(jié)構(gòu)的討論
        基于Packet Tracer的綜合實(shí)驗(yàn)平臺(tái)研究
        芻議局域網(wǎng)中網(wǎng)絡(luò)協(xié)議的添加與配置
        科技資訊(2015年10期)2015-06-29 18:17:23
        ZigBee無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的低功耗分析
        亚洲乱码日产精品bd在线观看| 国产亚洲成人精品久久| 国产精品成熟老女人| 日本公妇在线观看中文版| 女高中生自慰污免费网站| 中文字幕一区二区三区在线看一区| 美女很黄很色国产av| 四虎国产精品永久在线国在线 | 日本免费a一区二区三区| 洲色熟女图激情另类图区| 四虎影视永久地址www成人| 亚洲AV成人无码国产一区二区| 白丝美女扒开内露出内裤视频| 丝袜美腿一区二区国产| 免费国产黄网站在线观看| 国产综合精品久久亚洲| 日本免费一区二区精品| 日日摸夜夜添夜夜添高潮喷水| 无码手机线免费观看| A亚洲VA欧美VA国产综合| 亚洲乱码中文字幕一线区| 久久不见久久见免费影院国语| 亚洲另类国产综合第一| 亚洲av色在线观看网站| 一区二区三区精品少妇| 国产xxxx99真实实拍| 久久夜色精品国产亚洲噜噜| 日本一区二区三区在线视频播放| 国产午夜精品av一区二区麻豆| 亚洲乱码日产精品bd在线观看| 国产主播一区二区在线观看| 久久亚洲中文字幕精品熟| 丰满少妇a级毛片野外| 久久亚洲AV无码精品色午夜| 少妇我被躁爽到高潮在线影片| 亚洲av无码一区东京热 | 亚洲国产精品500在线观看| 国产一区二区三区四区在线视频 | 日韩啪啪精品一区二区亚洲av| 亚洲精品综合中文字幕组合| 日本护士xxxx视频|