• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      IP網(wǎng)絡(luò)數(shù)據(jù)嗅探器設(shè)計(jì)

      2014-03-31 04:45:14周璐璐
      卷宗 2014年2期
      關(guān)鍵詞:網(wǎng)卡調(diào)用列表

      周璐璐

      摘 要:隨著網(wǎng)絡(luò)技術(shù)的發(fā)展及其應(yīng)用的普及,互聯(lián)網(wǎng)上的信息資源日漸繁多,復(fù)雜的網(wǎng)絡(luò)環(huán)境使得信息存儲(chǔ)、處理的風(fēng)險(xiǎn)大大增加,同時(shí)信息傳送也產(chǎn)生了新的問(wèn)題。本設(shè)計(jì)IP網(wǎng)絡(luò)數(shù)據(jù)嗅探器是軟件網(wǎng)絡(luò)數(shù)據(jù)嗅探器,它可以獲得計(jì)算機(jī)的網(wǎng)卡列表供用戶選中要用于監(jiān)聽(tīng)工作的網(wǎng)卡。它還可以將計(jì)算機(jī)網(wǎng)卡設(shè)置為混雜模式,從而監(jiān)聽(tīng)到連接端口上出現(xiàn)的一切數(shù)據(jù)。

      關(guān)鍵字:嗅探器;協(xié)議;數(shù)據(jù)包;Winpcap;MFC;類

      隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,人們對(duì)網(wǎng)絡(luò)安全的要求越來(lái)越高,因此捕獲并分析數(shù)據(jù)包的軟件應(yīng)用日漸廣泛。IP網(wǎng)絡(luò)數(shù)據(jù)嗅探器是一款用來(lái)捕獲和分析以太網(wǎng)數(shù)據(jù)包的軟件。它可用于維護(hù)網(wǎng)絡(luò)安全,還可以獲得計(jì)算機(jī)的網(wǎng)卡列表供用戶選中要用于監(jiān)聽(tīng)工作的網(wǎng)卡。它會(huì)根據(jù)用戶自定義的過(guò)濾規(guī)則捕獲數(shù)據(jù)包。通過(guò)分析數(shù)據(jù)包幀結(jié)構(gòu),它可以獲取該數(shù)據(jù)包的各層協(xié)議內(nèi)容。它可以將分析結(jié)果以及整個(gè)數(shù)據(jù)包在軟件主界面中顯示,并把數(shù)據(jù)包寫(xiě)入pcap文件、導(dǎo)出到用戶所選路徑。

      下面給讀者介紹IP網(wǎng)絡(luò)數(shù)據(jù)嗅探器的總體設(shè)計(jì)和捕包過(guò)程。

      1 系統(tǒng)功能設(shè)計(jì)

      本設(shè)計(jì)的基本功能是捕獲并分析數(shù)據(jù)包,具體包括獲取網(wǎng)卡信息、打開(kāi)網(wǎng)卡;用戶自定義過(guò)濾規(guī)則;捕獲數(shù)據(jù)包;通過(guò)分析數(shù)據(jù)包在網(wǎng)絡(luò)中第二、三、四層所用協(xié)議,獲得其源目的MAC地址、IP地址以及端口號(hào),將上述內(nèi)容以列表控件的報(bào)表格式顯示在軟件主界面中;以樹(shù)控件的形式將數(shù)據(jù)幀在數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層使用的協(xié)議數(shù)據(jù)報(bào)各字段信息顯示在軟件主界面中;以編輯框的形式將數(shù)據(jù)包內(nèi)容顯示在軟件主界面中;最后還將數(shù)據(jù)導(dǎo)出到pcap格式的文件中。

      網(wǎng)卡的配置、過(guò)濾器以及數(shù)據(jù)包的捕獲功能的實(shí)現(xiàn)主要是通過(guò)調(diào)用Winpcap提供的API函數(shù)完成的,數(shù)據(jù)解析、顯示功能的實(shí)現(xiàn)主要是通過(guò)自定義函數(shù)完成,文件導(dǎo)出部分功能的實(shí)現(xiàn)主要通過(guò)Windows Shell編程中的函數(shù)完成。

      2 系統(tǒng)的架構(gòu)設(shè)計(jì)

      IP網(wǎng)絡(luò)數(shù)據(jù)嗅探器的總體設(shè)計(jì)可以由三個(gè)模塊構(gòu)成,自底向上分別是網(wǎng)絡(luò)嗅探器設(shè)置模塊、數(shù)據(jù)包捕獲模塊和數(shù)據(jù)處理模塊。

      網(wǎng)絡(luò)嗅探器設(shè)置模塊主要是通過(guò)調(diào)用Winpcap提供的部分API函數(shù),實(shí)現(xiàn)獲取網(wǎng)卡列表信息、設(shè)置并編譯過(guò)濾器、將網(wǎng)卡置為混雜模式三個(gè)步驟;

      數(shù)據(jù)包捕獲模塊創(chuàng)建了一個(gè)新的線程,利用pcap_loop函數(shù)循環(huán)讀取數(shù)據(jù)包,直到用戶單擊操作菜單的“停止”子菜單后就會(huì)跳出循環(huán),同時(shí)調(diào)用pcap_close函數(shù)關(guān)閉捕獲模塊。該模塊在執(zhí)行捕包操作時(shí),網(wǎng)卡已經(jīng)綁定了過(guò)濾器,因此網(wǎng)卡只會(huì)捕獲符合條件的數(shù)據(jù)包。

      數(shù)據(jù)處理模塊用于處理捕獲到的數(shù)據(jù)包。該模塊首先通過(guò)使用new 語(yǔ)句動(dòng)態(tài)分配內(nèi)存空間用來(lái)存放捕獲數(shù)據(jù)頭部和數(shù)據(jù)信息,再通過(guò)自定義數(shù)組結(jié)構(gòu)將以上數(shù)據(jù)添加到數(shù)組結(jié)構(gòu)中以供處理數(shù)據(jù)時(shí)使用。

      3 基于Winpcap的捕包過(guò)程

      利用 Winpcap 捕獲、分析網(wǎng)絡(luò)數(shù)據(jù)時(shí),主要是調(diào)用packet.dll和wpcap.dll庫(kù)中提供的一些函數(shù)。下面是基于Winpcap 的網(wǎng)絡(luò)數(shù)據(jù)包捕獲流程和對(duì)部分Winpcap 庫(kù)函數(shù)的介紹。各函數(shù)之間參數(shù)傳遞的具體情況如圖2所示。

      3.1 獲取網(wǎng)卡列表

      利用Winpcap 捕獲數(shù)據(jù)包時(shí)要先獲取本地網(wǎng)卡列表,Winpcap提供pcap_findalldevs和pcap_findalldev_ex函數(shù)實(shí)現(xiàn)以上功能,這兩個(gè)API 函數(shù)都返回一個(gè)pcap_if 結(jié)構(gòu)的列表,列表中含有全面的網(wǎng)卡信息,例如網(wǎng)卡設(shè)備名、網(wǎng)卡型號(hào)以及網(wǎng)卡地址。對(duì)于這兩個(gè)函數(shù),后者是前者的衍生,它不僅可獲取本地網(wǎng)卡列表,還可作用于遠(yuǎn)程計(jì)算機(jī),但在pcap.h中對(duì)它沒(méi)有聲明,所以調(diào)用容易出現(xiàn)錯(cuò)誤,本設(shè)計(jì)選用pcap_findalldevs來(lái)獲取網(wǎng)卡列表。

      3.2 設(shè)置并編譯過(guò)濾器

      Winpcap提供pcap_compile和pcap_setfilter函數(shù)來(lái)實(shí)現(xiàn)過(guò)濾數(shù)據(jù)的功能,其中pcap_compile的作用是將用戶制定的過(guò)濾表達(dá)式編譯到過(guò)濾程序中,pcap_setfilter的作用是把過(guò)濾器綁定到抓包過(guò)程中,即為抓包過(guò)程設(shè)置過(guò)濾器。若不采用過(guò)濾機(jī)制時(shí),該過(guò)程將省略掉,軟件抓取經(jīng)過(guò)的所有數(shù)據(jù)包。

      3.3 網(wǎng)卡設(shè)置為混雜模式

      Winpcap提供pcap_open和pcap_open_live函數(shù)設(shè)置網(wǎng)卡工作模式,函數(shù)返回用于捕獲數(shù)據(jù)包的網(wǎng)卡描述字,對(duì)該網(wǎng)卡的任何操作都要基于這個(gè)描述字。函數(shù)的promisc參數(shù)是1則表示把網(wǎng)卡設(shè)置設(shè)為混雜模式。本設(shè)計(jì)調(diào)用的是pcap_open_live函數(shù)。

      3.4 捕獲數(shù)據(jù)包

      網(wǎng)卡被打開(kāi)后,就可以調(diào)用pcap_next、pacp_next_ex或pcap_loop函數(shù)捕獲數(shù)據(jù)包。pcap_next和pacp_next_ex函數(shù)捕獲一個(gè)可用數(shù)據(jù)包就返回,pcap_loop函數(shù)可以循環(huán)捕包捕獲多個(gè)數(shù)據(jù)包,直到出現(xiàn)錯(cuò)誤為止。本設(shè)計(jì)調(diào)用pcap_loop函數(shù)實(shí)現(xiàn)循環(huán)捕包。

      3.5 處理數(shù)據(jù)包

      Winpcap提供的捕包函數(shù)pcap_loop會(huì)在捕獲到數(shù)據(jù)包的同時(shí)調(diào)用一個(gè)回調(diào)函數(shù)pcap_handle函數(shù)處理數(shù)據(jù)包,但回調(diào)函數(shù)具體內(nèi)容由用戶自己編寫(xiě)。本設(shè)計(jì)在處理數(shù)據(jù)包方面,除了回調(diào)函數(shù)以外還有許多其他函數(shù),具體情況見(jiàn)數(shù)據(jù)包處理模塊的詳細(xì)分析部分。

      3.6 關(guān)閉捕包系統(tǒng)

      Winpcap提供pcap_close函數(shù)來(lái)關(guān)閉網(wǎng)卡,結(jié)束循環(huán)捕包過(guò)程。

      IP網(wǎng)絡(luò)數(shù)據(jù)嗅探器是Win32平臺(tái)下的數(shù)據(jù)包捕獲和分析軟件,它的設(shè)計(jì)基于Winpcap系統(tǒng),主要算法是調(diào)用MFC工程新建類,類中封裝實(shí)現(xiàn)各模塊功能所需的成員變量、成員函數(shù)。軟件性能的優(yōu)點(diǎn)在于利用Winpcap的NPF構(gòu)件直接抓取數(shù)據(jù)鏈路層的數(shù)據(jù)包,通過(guò)分析操作可得知該數(shù)據(jù)包在高層所用協(xié)議,再根據(jù)不同的協(xié)議類型對(duì)應(yīng)分析協(xié)議各字段內(nèi)容。

      猜你喜歡
      網(wǎng)卡調(diào)用列表
      巧用列表來(lái)推理
      在DDS 中間件上實(shí)現(xiàn)雙冗余網(wǎng)卡切換的方法
      學(xué)習(xí)運(yùn)用列表法
      擴(kuò)列吧
      核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
      Server 2016網(wǎng)卡組合模式
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
      挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
      不含3-圈的1-平面圖的列表邊染色與列表全染色
      扎鲁特旗| 静安区| 西乌珠穆沁旗| 胶州市| 江陵县| 依兰县| 凤城市| 东乡| 梅州市| 临武县| 泗水县| 亚东县| 石渠县| 广南县| 垦利县| 太湖县| 长春市| 中阳县| 龙山县| 清苑县| 连山| 崇左市| 公安县| 高阳县| 呼伦贝尔市| 习水县| 绥阳县| 双峰县| 隆子县| 区。| 信阳市| 庆阳市| 鲜城| 收藏| 团风县| 洪雅县| 双牌县| 阳城县| 宜良县| 灵寿县| 长乐市|