基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)_第1頁
基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)_第2頁
基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)_第3頁
基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)_第4頁
基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)網(wǎng)絡(luò)安全課程設(shè)計 設(shè)計題目:基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)院系名稱:班 級: 小組成員:秦向紅 賈 博指導(dǎo)教師:孫飛顯、夏冰2015年1月摘 要當(dāng)前,網(wǎng)絡(luò)也逐漸成為人們生活和學(xué)習(xí)中不可缺少的部分,與此同時,網(wǎng)絡(luò)信息安全性也越來越受到人們的關(guān)注.為了有效地實現(xiàn)網(wǎng)絡(luò)傳輸中數(shù)據(jù)包的檢測、捕獲和分析,較為方便地監(jiān)控網(wǎng)絡(luò)信息流量并保證信息的安全可靠,產(chǎn)生了網(wǎng)絡(luò)嗅探器?;赪inpcap開發(fā)平臺,使用Visual C+作為開發(fā)工具,設(shè)計并開發(fā)網(wǎng)絡(luò)嗅探器。設(shè)計實現(xiàn)IP、TCP、UDP數(shù)據(jù)包捕獲和分析,以有效地對網(wǎng)絡(luò)信息的安全進(jìn)行監(jiān)測、捕獲和分析 。同時分析了

2、網(wǎng)絡(luò)嗅探器的基本工作原理,并闡述了應(yīng)用捕獲數(shù)據(jù)包流,根據(jù)Winpcap關(guān)鍵功能給出了其具體實現(xiàn)。結(jié)果表明,該網(wǎng)絡(luò)嗅探器結(jié)構(gòu)簡單,捕獲數(shù)據(jù)快速,對網(wǎng)絡(luò)安全管理具有重要意義。關(guān)鍵詞:Winpcap、MFC、網(wǎng)絡(luò)嗅探器、數(shù)據(jù)包AbstractAt present, the network has gradually become an indispensable part in people life and learning, at the same time, network information security has been paid more and more attention.

3、In order to achieve the capture and analysis of detection, data packet in the transmission network, more convenient monitoring network information flow and ensure the safety and reliability of the information, produced a network sniffer. Based on the Winpcap development platform, using Visual C+ as

4、the development tool, the design and development of network sniffer。 Design and implementation of IP, TCP, UDP data packet capture and analysis, monitoring, capture and analysis in order to effectively on the security of network information. At the same time, analyzes the principle of network sniffe

5、r, and expounds the application of capturing packet stream, according to Winpcap key function gives the concrete realization。 The results show that, the network sniffer has the advantages of simple structure, fast capture data, has the vital significance to the network security management.Keywords:

6、Winpcap, MFC, network sniffer, packet目 錄第1章 緒 論11。1 設(shè)計背景11。2 國內(nèi)外研究狀況11。3 研究意義3第2章 需求分析42。1用戶需求42。2 功能需求52。3 性能需求5第3章 Winpcap及相關(guān)協(xié)議介紹63。1 Winpcap的組成結(jié)構(gòu)63.2 Winpcap簡介83.3 以太網(wǎng)簡介93。3。1 網(wǎng)際協(xié)議IP93.3。2 用戶數(shù)據(jù)報協(xié)議UDP93.3.3 傳輸控制協(xié)議TCP10第4章 程序設(shè)計與實現(xiàn)104。1 程序運行環(huán)境104。2 程序設(shè)計114.2.1 程序設(shè)計流程圖114。2。2 程序具體設(shè)計11第5章 系統(tǒng)測試16第6章 設(shè)計

7、總結(jié)與展望196.1 總結(jié)196。2 展望20參考文獻(xiàn)21致 謝22第1章 緒 論1。1 設(shè)計背景當(dāng)前,網(wǎng)絡(luò)技術(shù)發(fā)展突飛猛進(jìn),網(wǎng)絡(luò)已經(jīng)滲透到生產(chǎn)、生活學(xué)習(xí)的各個方面, 并且,人們開始越來越依賴網(wǎng)絡(luò)技術(shù),計算機(jī)網(wǎng)絡(luò)具有以下特性:形式多樣性, 網(wǎng)絡(luò)開放性,終端不均勻性,網(wǎng)絡(luò)互聯(lián)性等。于是,網(wǎng)絡(luò)特別容易受到黑客等不 法分子的攻擊??傮w上說,網(wǎng)絡(luò)安全所要研究的領(lǐng)域包括網(wǎng)絡(luò)的中數(shù)據(jù)信息的完整性,保密性,真實性等多個方面的內(nèi)容??梢娋W(wǎng)絡(luò)安全所涉及的不僅僅是技術(shù)方面的內(nèi)容,還有網(wǎng)絡(luò)管理相關(guān)的問題。兩者之間是密切相關(guān)的,技術(shù)方面可能強(qiáng)調(diào)如何有效地防御黑客以避免非法的外部攻擊,而在管理方面則需要更加注重內(nèi)部人員

8、管理的因素.所以,如何較好地保護(hù)計算機(jī)中的重要數(shù)據(jù)信息不受 不法分子的侵害,保護(hù)用戶的計算機(jī)系統(tǒng)是當(dāng)前網(wǎng)絡(luò)安全方向的研究的重要問題 。 通常,對網(wǎng)絡(luò)中流通的數(shù)據(jù)特別感興趣的通常有兩類人,一類就是網(wǎng)絡(luò)管理員,另外一類就是網(wǎng)絡(luò)黑客,他們不斷地對網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行檢測,以保證實時地跟蹤網(wǎng)絡(luò)數(shù)據(jù)。他們存在一個共同點,就是都要用到一個好的數(shù)據(jù)包監(jiān)控軟件。如黑客常常用數(shù)據(jù)包監(jiān)控軟件檢測互聯(lián)網(wǎng),監(jiān)測網(wǎng)絡(luò)信息的內(nèi)容,并對一些敏感信息作出分析,如財經(jīng)交易等活動中出現(xiàn)的密碼,用戶名等內(nèi)容。網(wǎng)絡(luò)管理員則用該數(shù)據(jù)包軟件檢測網(wǎng)絡(luò)流量,查找網(wǎng)絡(luò)中的漏洞,發(fā)現(xiàn)故障并做出解決等。 所以,學(xué)習(xí)網(wǎng)絡(luò)中數(shù)據(jù)檢測和數(shù)據(jù)分析過程,不僅有

9、助于網(wǎng)絡(luò)管理員排除網(wǎng) 絡(luò)中的漏洞和故障,主要是能有效地認(rèn)識網(wǎng)絡(luò)攻擊的原理,常采用的技術(shù),這樣 就可以有針對性的破壞網(wǎng)絡(luò)黑客的侵入和對資料的竊取.可見,網(wǎng)絡(luò)探測器可以 檢測網(wǎng)路的流量,實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的檢測和捕獲,已經(jīng)逐漸成為網(wǎng)絡(luò)分析過程中的 重要工具,對于維護(hù)網(wǎng)絡(luò)安全和網(wǎng)絡(luò)信息管理有著重要的意義。1。2 國內(nèi)外研究狀況基于網(wǎng)絡(luò)協(xié)議分析和網(wǎng)絡(luò)數(shù)據(jù)捕獲的技術(shù),從廣義上來講,通常被叫作協(xié)議分析儀(ProtocofAnalyzer)。這樣定義的原因在于我們常常將一些純軟件的,并且更側(cè)重于捕獲網(wǎng)絡(luò)數(shù)據(jù)和進(jìn)行協(xié)議分析的系統(tǒng)叫做嗅探器(Sniffer).而在實際用中,基于硬件或者軟硬件結(jié)合的網(wǎng)絡(luò)數(shù)據(jù)捕獲和分析系

10、統(tǒng)我們稱之為協(xié)議分 析儀。當(dāng)然,我們并不是在所有的場合都對兩者之間的概念進(jìn)行區(qū)分,因為他們 在功能上都能完成類似的工作.舉例子來說,一些網(wǎng)絡(luò)管理軟件及一些網(wǎng)絡(luò)協(xié)議 分析儀都使用了嗅探器技術(shù)。 目前,已經(jīng)存在了許多純軟件的網(wǎng)絡(luò)嗅探器,如:Linuxsniffer、Dsniff、Tcpdump 等,其中,不乏一些專門用于捕獲用戶名字和用戶密碼的軟件,如 insniffer、 winsniffer。于是, 我們知道,網(wǎng)絡(luò)嗅探技術(shù)就是一把雙刃劍,在被網(wǎng)絡(luò)管理員熟練使用的同時也會被不法外部黑客利用,既可以作為一種診斷網(wǎng)絡(luò)故障,排除網(wǎng)絡(luò)存在問題的工具,也為不法分子提供了竊取信息的工具。 大多數(shù)的純軟件協(xié)議

11、分析儀都是采用 pc 機(jī)上的網(wǎng)卡來輔助實現(xiàn)的,即該過 程可以描述為:pc 網(wǎng)卡+協(xié)議分析儀.該軟件實現(xiàn)的主要功能就是數(shù)據(jù)的捕獲, 信息編碼,信息分析處理.使用該軟件可以實現(xiàn)網(wǎng)絡(luò)流量的捕獲,并作出相應(yīng)的 模擬。并且,網(wǎng)絡(luò)協(xié)議分析儀還可以產(chǎn)生大量的網(wǎng)絡(luò)數(shù)據(jù)包,以此來測試網(wǎng)絡(luò)的 負(fù)載能力。當(dāng)前,已經(jīng)存在了幾款較典型的協(xié)議分析儀,如:HP 公司的Intemet Advisor(網(wǎng)絡(luò)專家系統(tǒng))、WG 公司的Domino 系列協(xié)議分析儀,相類似的還包括 Sniffer Portable 協(xié)議分析工具等。但是無論是從針對協(xié)議的解碼能力,還是從數(shù) 據(jù)分析的實時性角度來講,該協(xié)議的數(shù)據(jù)分析處理能力、數(shù)據(jù)包產(chǎn)生能

12、力等方面 都與采用硬件實現(xiàn)的協(xié)議分析儀存在著較大的差距。一種典型的硬件協(xié)議分析儀 式通過專用的數(shù)據(jù)采集硬件實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的獲取,采用專門的采集箱完成一些全 線速捕獲和實時性更好的網(wǎng)絡(luò)數(shù)據(jù)操作中. 還有一些軟件粘在應(yīng)用層的角度對網(wǎng)絡(luò)的性能進(jìn)行測試,該類軟件通常使用 一些基準(zhǔn)的流量對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分析,是比網(wǎng)絡(luò)協(xié)議分析儀更高層次的測試工 具。代表軟件是Chariot,該軟件是由Ganymede software 公司開發(fā)的,還有一些 別的軟件在當(dāng)前也是挺流行的,比如用于網(wǎng)絡(luò)規(guī)劃驗證的模擬環(huán)境,過外已經(jīng)有 一些部門對他們自己的網(wǎng)絡(luò)協(xié)議和它們的組合構(gòu)建較大的網(wǎng)絡(luò)系統(tǒng)來模擬,雖然 執(zhí)行的效果很好,但是價格卻

13、很昂貴 .從傳統(tǒng)的觀念上講,網(wǎng)絡(luò)維護(hù)人員常常需要一種功能強(qiáng)大的集各種網(wǎng)絡(luò)技術(shù) 于一體的測試軟件。所以,相對典型的協(xié)議分析儀常加入網(wǎng)絡(luò)管理,自動網(wǎng)絡(luò)信 息搜索,智能專家等功能,并且通常要具有一定的移動性能.當(dāng)前網(wǎng)絡(luò)分析和測 試的發(fā)展趨勢是具有綜合性能的協(xié)議分析儀或者網(wǎng)絡(luò)分析儀,它們在現(xiàn)場分析, 故障診斷,網(wǎng)絡(luò)數(shù)據(jù)維護(hù)等方面常常發(fā)揮著至關(guān)重要的作用,像Fluke 的Opt View INA 手持綜合功能協(xié)議分析儀就是一個典型的例子。1.3 研究意義計算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,極大的改變了人們傳統(tǒng)的生活和工作模式,越來越多的社會經(jīng)濟(jì)活動開始依賴網(wǎng)絡(luò)來完成,可以說計算機(jī)網(wǎng)絡(luò)的發(fā)展已經(jīng)成為現(xiàn)代社會進(jìn)步的一

14、個重要標(biāo)志。但與此同時,計算機(jī)犯罪、黑客攻擊、病毒入侵等惡性事件也頻頻發(fā)生。因此,信息安全已越來越受到世界各國的重視。嗅探器作為一種網(wǎng)絡(luò)通訊程序,是通過對網(wǎng)卡的編程來實現(xiàn)網(wǎng)絡(luò)通訊的,對網(wǎng)卡的編程是使用通常的套接字(socket)方式來進(jìn)行。但是,通常的套接字程序只能響應(yīng)與自己硬件地址相匹配的或是以廣播形式發(fā)出的數(shù)據(jù)幀,對于其他形式的數(shù)據(jù)幀比如已到達(dá)網(wǎng)絡(luò)接口但卻不是發(fā)給此地址的數(shù)據(jù)幀,網(wǎng)絡(luò)接口在驗證投遞地址并非自身地址之后將不引起響應(yīng),也就是說應(yīng)用程序無法收取到達(dá)的數(shù)據(jù)包。而網(wǎng)絡(luò)嗅探器的目的恰恰在于從網(wǎng)卡接收所有經(jīng)過它的數(shù)據(jù)包,這些數(shù)據(jù)包即可以是發(fā)給它的也可以是發(fā)往別處的。顯然,要達(dá)到此目的就不

15、能再讓網(wǎng)卡按通常的正常模式工作,而必須將其設(shè)置為混雜模式。嗅探器是一柄雙刃劍,具有正反兩個方面的作用.作為正面用途,嗅探器主要分析網(wǎng)絡(luò)流量,作為發(fā)現(xiàn)和修補(bǔ)網(wǎng)絡(luò)故障的重要手段。例如,當(dāng)網(wǎng)絡(luò)某個部分運行出現(xiàn)異常,報文發(fā)送速度下降時,網(wǎng)絡(luò)管理員無法確切找出問題的關(guān)鍵所在時,嗅探器即可做出精確的判斷。此外,網(wǎng)絡(luò)管理員還可以利用嗅探器診斷出網(wǎng)絡(luò)內(nèi)大量不可見的模糊問題,比如,哪個網(wǎng)絡(luò)協(xié)議傳輸了多少流量,占主要通訊協(xié)議的主機(jī),大多數(shù)通訊的目的地址,報文發(fā)送的時間和主機(jī)間報文傳送的時間間隔等。另一方面,嗅探器也可以被別有用心的人用于非法行為.被嗅探器所截取的數(shù)據(jù)經(jīng)過處理可以向用戶還原顯示數(shù)據(jù)包中所封裝的信息,

16、該信息包括用戶標(biāo)識符和口令以及機(jī)密的或者專用的信息,用于危害鄰居網(wǎng)絡(luò)的安全或獲取更高級別的訪問權(quán)限.本次課程設(shè)計通過基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn),網(wǎng)絡(luò)嗅探器對網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包的捕獲與分析功能的進(jìn)一步了解,做到知己知彼.通過網(wǎng)絡(luò)嗅探器對網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包進(jìn)行捕獲和分析,獲取所需要的信息,利用對這些信息進(jìn)行網(wǎng)絡(luò)安全分析。因此,網(wǎng)絡(luò)嗅探器的研究具有重要意義。第2章 需求分析2。1用戶需求網(wǎng)絡(luò)嗅探(網(wǎng)絡(luò)抓包)時一種利用計算機(jī)的網(wǎng)絡(luò)接口截獲其它計算機(jī)數(shù)據(jù)報文的工具.使用網(wǎng)絡(luò)嗅探(網(wǎng)絡(luò)抓包)工具的主要人群是黑客或網(wǎng)絡(luò)安全技術(shù)人員,從攻擊的角度,黑客可以使用網(wǎng)絡(luò)嗅探(網(wǎng)絡(luò)抓包)程序非法獲取網(wǎng)絡(luò)

17、中傳輸?shù)拇罅棵舾行畔ⅲ缳~號和口令等,對網(wǎng)路安全極具威脅;從防守的角度,網(wǎng)絡(luò)嗅探(網(wǎng)絡(luò)抓包)技術(shù)是居于網(wǎng)絡(luò)的入侵檢測系統(tǒng)的最底層環(huán)節(jié),是整個系統(tǒng)的數(shù)據(jù)來源,為技術(shù)人員提供重要的依據(jù)。無論是黑客還是安全人員,他們對抓包技術(shù)的利用途徑都是一樣的,即對網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包進(jìn)行捕獲與分析,獲取不要的信息,但是他們的目的是不一樣的,前者是專門利用計算機(jī)網(wǎng)絡(luò)搞破壞或惡作劇,而后者是通過對這些信息的分析利用。維護(hù)網(wǎng)絡(luò)安全與穩(wěn)定.因此用戶提出了以下要求:u 友好的圖形化界面,不需要復(fù)雜的命令,大部分功能通過鼠標(biāo)點擊就可達(dá)到,操作簡單、方便;u 能夠捕獲網(wǎng)絡(luò)數(shù)據(jù)包,并能對數(shù)據(jù)包進(jìn)行簡單的分析;u 精確的設(shè)置捕捉規(guī)

18、則和靈活的過濾策略,能使用戶方便、準(zhǔn)確地捕獲所需要的信息;u 能夠?qū)W(wǎng)絡(luò)中捕捉的數(shù)據(jù)包解碼,用于故障分析;u 用戶能夠自定義過濾規(guī)則,使數(shù)據(jù)包的捕獲更加精準(zhǔn)和具有靈活性,增強(qiáng)了軟件功能以及與用戶的交互能力;2。2 功能需求對于基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn),網(wǎng)絡(luò)嗅探(網(wǎng)絡(luò)抓包)作為網(wǎng)絡(luò)安全方面最常見的工具被廣泛使用,本次設(shè)計實現(xiàn)的功能有:u 能夠抓取IP數(shù)據(jù)包.u 能夠抓取TCP數(shù)據(jù)包.u 能夠抓取UDP數(shù)據(jù)包。u 對抓取的數(shù)據(jù)包進(jìn)行解碼.2。3 性能需求一個程序除了能正常運行并且達(dá)到相應(yīng)的功能外,對程序性能也有嚴(yán)格的要求,性能需求決定了整個系統(tǒng)的性能檔次、所采用的技術(shù)和設(shè)備檔次,本

19、程序除了達(dá)到常用軟件對響應(yīng)時間以及差錯控制的要求外,還提出以下要求:(1) 數(shù)據(jù)精確性。捕獲到的數(shù)據(jù)包并不僅僅是單純的數(shù)據(jù)信息,而是包含有IP頭、TCP頭等信息頭的最原始的數(shù)據(jù)信息,這些信息保留了它在網(wǎng)絡(luò)傳輸時的原貌,為分析網(wǎng)絡(luò)信息提供了重要資料。(2)適應(yīng)范圍.優(yōu)秀的抓包工具能夠分析幾百種協(xié)議.一般情況下,大多數(shù)的抓包工具至少能夠分析下面的協(xié)議:IP、TCP、UDP等。第3章 Winpcap及相關(guān)協(xié)議介紹3.1 Winpcap的組成結(jié)構(gòu)圖4.1 Winpcap的組成結(jié)構(gòu)Winpcap 由內(nèi)核級的數(shù)據(jù)包監(jiān)聽設(shè)備驅(qū)動程序(NPF)、低級動態(tài)鏈接庫(packet.dll)和高層、用戶 級、不依賴于

20、操作系統(tǒng)的動態(tài)鏈接庫(wpcap.dll)三部分構(gòu)成。Winpcap 的組成結(jié)構(gòu)如圖3。1 所示。圖3.1 Wpcap體系結(jié)構(gòu)核心層網(wǎng)絡(luò)層用戶層核心態(tài)緩沖區(qū)轉(zhuǎn)儲引擎應(yīng)用程序過濾器應(yīng)用程序統(tǒng)計引擎應(yīng)用程序核心態(tài)緩沖區(qū)包截獲應(yīng)用程序網(wǎng)絡(luò)監(jiān)測應(yīng)用程序數(shù)據(jù)轉(zhuǎn)儲應(yīng)用程序 wpcap.dll用戶態(tài)緩沖區(qū) packet.dll其他應(yīng)用程序:1、 直接訪問NPF2、 調(diào)用packet.dll3、 調(diào)用wpcap.dll其它協(xié)議棧數(shù)據(jù)鏈路驅(qū)動程序數(shù)據(jù)包(1)數(shù)據(jù)包監(jiān)聽設(shè)備驅(qū)動程序 在技術(shù)實現(xiàn)方面,為繞過操作系統(tǒng)的協(xié)議棧來訪問網(wǎng)絡(luò)上的原始數(shù)據(jù)包(raw packet)。這就要求 Winpcap 的一部分運行在操作

21、系統(tǒng)核心內(nèi)部,直接與網(wǎng)絡(luò)接口驅(qū)動交互。由于這個部分是系統(tǒng)依賴 (System Dependent)的,在 Winpcap 的解決方案中它被視為是一個設(shè)備驅(qū)動,稱作 NPF(Netgroup Packet Filter).Winpcap 開發(fā)小組針對 Windows95,Windows98,WindowsME,Windows NT 4,Windows2000 和 WindowsXP 提供了不同版本的驅(qū)動(在 Windows95/98/ME 中是 VXD 文件,在 WindowsNT/2000 中是 SYS 文件)。這些驅(qū)動不僅提供了基本的特性(例如抓包、發(fā)送原始數(shù)據(jù)包注入數(shù)據(jù)包),還有更高級的特

22、性(例如可編程的過濾器系統(tǒng)和監(jiān)視引擎).前者可以被用來約束一個抓包會話只針對網(wǎng)絡(luò)通信中 的一個子集(例如,只捕獲特殊主機(jī)產(chǎn)生的 ftp 通信數(shù)據(jù)包),后者提供了一個強(qiáng)大而簡單的統(tǒng)計網(wǎng)絡(luò)通信量的機(jī)制(例如,獲得網(wǎng)絡(luò)負(fù)載或兩個主機(jī)間的數(shù)據(jù)交換量). 概括地講,NPF可直接從數(shù)據(jù)鏈路層抓取網(wǎng)絡(luò)數(shù)據(jù)包并過濾,可將數(shù)據(jù)包不加修改地傳遞給運行在用戶層的應(yīng)用程序。NPF 在不同的 WINDOWS 系統(tǒng)下是不同的(在 NT/2000/XP 中是 npf。sys 文件,一 般位于 C:WINDOWSsystem32drivers 中),其主要功能是過濾數(shù)據(jù)包,并在數(shù)據(jù)包上附加時間戳、數(shù)據(jù)包長度等信息。 (2)低

23、級動態(tài)鏈接庫(packet.dll)和用戶級動態(tài)鏈接庫(wpcap.dll) 為方便編程,Winpcap 提供的編程接口函數(shù)都封裝在低級的 packet。dll(一般位于 c:windows system32)和用戶級動態(tài)連接庫 wpcap.dll(一般位于 c:windowssystem32)中.底層 packet。dll 提供的 編程接口獨立于 Windows API,packet.dll 的 API 是可以直接用來訪問驅(qū)動的函數(shù);packet。dll 運行在用戶 層它將應(yīng)用程序和數(shù)據(jù)包監(jiān)聽設(shè)備驅(qū)動程序隔離開來,使得應(yīng)用程序可以不加修改地在不同的 WINDOWS系統(tǒng)上運行。高層的wpcap

24、。dll導(dǎo)出了一組更強(qiáng)大且與LibPcap一致的高層抓包函數(shù)庫(Capture Primitives),這些函數(shù)使得數(shù)據(jù)包的捕獲以一種與網(wǎng)絡(luò)硬件和操作系統(tǒng)無關(guān)的方式進(jìn)行。wpcap。dll 使用 packet.dll 提供的服務(wù),并向應(yīng)用程序提供完善的監(jiān)聽接口。 3。2 Winpcap簡介Winpcap是 Win32平臺下強(qiáng)大的、有較好擴(kuò)展性的底層網(wǎng)絡(luò)分析體系結(jié)構(gòu), 是UNIX下的 Lipbcap移植到Windows下的產(chǎn)物, 是Win32環(huán)境下數(shù)據(jù)包捕獲的開放代碼函數(shù)庫。Winpcap是第一個Win32開放式的捕獲包的體系結(jié)構(gòu), 能夠支持大多數(shù)應(yīng)用程序的需要。Winpcap包含了一個內(nèi)核級的

25、數(shù)據(jù)包過濾器NPF(Netgroup Packet Filter)、一個底層動態(tài)鏈接庫(packet。 dll)和一個高層的獨立于系統(tǒng)的庫(wpcap。 dll)。NPF模塊過濾數(shù)據(jù)包,將數(shù)據(jù)包不做任何改動的傳遞給用戶. packet。 dll模塊提供了Win32平臺下的捕獲包的驅(qū)動接口, 基于pack- e.t dll編寫的程序可以不經(jīng)過重新編譯就在各種Win32平臺下實現(xiàn)捕獲數(shù)據(jù)包。wpcap。 dll庫不依賴于操作系統(tǒng),且它包含了一些其他高層的函數(shù),如過濾器生成器,用戶定義的緩沖區(qū)和高層特性.Winpcap的主要功能在于獨立于主機(jī)協(xié)議(如TCP 、IP)而發(fā)送和接收原始數(shù)據(jù)包。Winpc

26、ap可用于實現(xiàn)如下功能:捕獲原始數(shù)據(jù)包,不管這個包是發(fā)往本地機(jī),還是其他機(jī)器之間的交換包.在數(shù)據(jù)包被發(fā)送到應(yīng)用程序之前,通過用戶定義的規(guī)則過濾。向網(wǎng)絡(luò)發(fā)送原始數(shù)據(jù)包. 對網(wǎng)絡(luò)通信量做出統(tǒng)計。 這些功能依賴于Win32系統(tǒng)內(nèi)核中的設(shè)備驅(qū)動以及一些動態(tài)鏈接庫。Winpcap提供了一個強(qiáng)大的編程接口,它很容易地在各個操作系統(tǒng)之間進(jìn)行移植,也很方便程序員進(jìn)行開發(fā)。很多不同的工具軟件使 用Winpcap于網(wǎng)絡(luò)分析,故障排除,網(wǎng)絡(luò)安全監(jiān)控等方面.Winpcap特別適用于下面這幾個經(jīng)典領(lǐng)域:u 網(wǎng)絡(luò)及協(xié)議分析。u 網(wǎng)絡(luò)監(jiān)控。u 通信日志記錄。u trafficgenerators。u 用戶級別的橋路和3.3

27、 以太網(wǎng)簡介IEEE802.3所支持的局域網(wǎng)標(biāo)準(zhǔn)最早是由Xerox 開發(fā)的,后來通過DIGITAL 公司,Intel 公司和Xerox 聯(lián)合擴(kuò)展為以太網(wǎng)標(biāo)準(zhǔn),符合以太網(wǎng)標(biāo)準(zhǔn)的局域網(wǎng)成為以太網(wǎng). 以太網(wǎng)上的每一個主機(jī)為了標(biāo)示自己的唯一“身份”都有自己的網(wǎng)口接口卡 (NIC)。網(wǎng)絡(luò)接口卡通常安裝在主機(jī)內(nèi)并能為主機(jī)提供一個6 字節(jié)的物理地址. 在遵循IEEE802 標(biāo)準(zhǔn)的以太網(wǎng)中,這個物理地址稱為MAC地址,MAC地址是 唯一的,任意兩個不同的網(wǎng)絡(luò)接口卡都具有不同的MAC地址. 以太網(wǎng)MAC 地址可以分為三類:單播地址,廣播地址和多播地址。以太網(wǎng)MAC 幀格式具有7 個域,分別為:前導(dǎo)碼,幀首定界符

28、,目的MAC 地址,源MAC 地址,協(xié)議類型或數(shù)據(jù)長度,數(shù)據(jù)幀校驗序列,如表31 所示. 前導(dǎo)碼(7字節(jié))幀首定界符(1字節(jié))目的MAC地址(6字節(jié))源MAC地址(6字節(jié))協(xié)議類型(2字節(jié))數(shù)據(jù)幀校驗序列(4字節(jié))表3-1 以太網(wǎng)的MAC 幀格式3。3。1 網(wǎng)際協(xié)議IPIP(網(wǎng)際協(xié)議)是 TCP/IP 協(xié)議族中的核心協(xié)議,它負(fù)責(zé)數(shù)據(jù)包從源點交付到終點的傳輸。所有的TCP、UDP、ICMP 及IGMP 數(shù)據(jù)都以IP 數(shù)據(jù)包格式傳輸.該協(xié)議提供不可靠,無連接數(shù)據(jù)報傳送服務(wù),但只能保證數(shù)據(jù)包被發(fā)送發(fā)送到目的主機(jī),而不管傳輸是否正確,具體的糾錯重傳過程是交由傳輸層完成的。 3。3。2 用戶數(shù)據(jù)報協(xié)議U

29、DPUDP 協(xié)議的位置是處在IP 協(xié)議所在層的上層。有OSI 模型知,傳輸層協(xié)議.包括了UDP 和TCP 協(xié)議.但是,UDP 協(xié)議有個缺點,它不提供端點之間的確認(rèn)和重傳功能,因此就不能保證數(shù)據(jù)安全準(zhǔn)確地到達(dá)目的端點,所以該協(xié)議是一種不可靠地傳輸協(xié)議。 3.3.3 傳輸控制協(xié)議TCPTCP(傳輸控制協(xié)議)協(xié)議時 TCP/IP 協(xié)議族種面向連接的、可靠的傳輸層協(xié)議.TCP 與UDP 不同,他允許發(fā)送和接收字節(jié)流形式的數(shù)據(jù)。為了使服務(wù)器 和客戶端以不同速度發(fā)送和接收數(shù)據(jù),TCP 提供了發(fā)送和接收兩個緩沖區(qū),可以雙向發(fā)送數(shù)據(jù).TCP 在報文中加上一個遞增的確認(rèn)序列號來告訴發(fā)送端,接收端期望收到的下一個

30、報文,如果在規(guī)定的時間內(nèi),沒有收到關(guān)于這個包的確認(rèn)相應(yīng),則重新發(fā)送此包,這確保了TCP 是一種可靠地傳輸層協(xié)議. TCP 所提供服務(wù)的主要特點:u 面向連接的傳輸; u 端到端的通信; u 高可靠性,確保傳輸數(shù)據(jù)的正確性,不出現(xiàn)丟失或亂序; u 全雙工方式傳輸; u 采用字節(jié)流方式,即以字節(jié)為單位傳輸字節(jié)序列; u 緊急數(shù)據(jù)傳送功能。第4章 程序設(shè)計與實現(xiàn)4。1 程序運行環(huán)境本系統(tǒng)運正常行的硬件環(huán)境需求如下:u CPU:PIII 800MHZ及其以上;u 內(nèi)存:128MB及其以上;u 本系統(tǒng)運正常行的軟件環(huán)境需求如下:u 操作系統(tǒng):Windows 8;u 動態(tài)鏈接庫和驅(qū)動程序:Winpcap4

31、_1_2。exe;4。2 程序設(shè)計4。2.1 程序設(shè)計流程圖開始查看設(shè)備列表Pcap_findalldevs()打開網(wǎng)絡(luò)設(shè)備Pcap_open_live()編譯過濾規(guī)則Pcap_compile()設(shè)置過濾規(guī)則Pcap_setfilter()捕包并處理Pcap_loop()關(guān)閉并返回Pcap_close()結(jié)束圖4.1 流程圖4。2。2 程序具體設(shè)計(1) 新建工程并把需要的文件導(dǎo)入工程。導(dǎo)入include文件如圖4。2所示。同時用同樣的方法在“鏈接器->常規(guī)”中添加lib文件。圖4.2 導(dǎo)入文件(2) 設(shè)計主題對話框,如圖4。3所示。圖4.3 主題對話框(3) 設(shè)置選擇網(wǎng)卡對話框,如圖4

32、.4所示.圖4。4 選擇網(wǎng)卡對話框(4) 創(chuàng)建protocoInfo。h文件,定義協(xié)議格式和協(xié)議中使用的宏.協(xié)議結(jié)構(gòu)體的定義:typedefstruct _ETHeader / 14字節(jié)的以太頭typedefstruct _IPHeader/ 20字節(jié)的IP頭typedefstruct _TCPHeader/ 20字節(jié)的TCP頭typedefstruct _UDPHeader宏定義:define ETHERTYPE_IP 0x0800 /MAC幀中的協(xié)議類型字段的取值define ETHERTYPE_ARP 0x0806/ 協(xié)議,IP首部中的ipProtocol字段,標(biāo)明上層協(xié)議define

33、PROTO_ICMP 1define PROTO_IGMP 2define PROTO_TCP 6#define PROTO_UDP 17/ 定義TCP標(biāo)志#define TCP_FIN 0x01define TCP_SYN 0x02define TCP_RST 0x04define TCP_PSH 0x08define TCP_ACK 0x10define TCP_URG 0x20#define TCP_ACE 0x40define TCP_CWR 0x80(5) 使用類向?qū)Фx控件相關(guān)的變量.主窗體中變量的定義,如圖4.5所示;選擇網(wǎng)卡對話框中變量的定義,如圖4.6所示。圖4。5 主窗體變

34、量定義圖4.6 選擇網(wǎng)卡窗體變量定義(6)程序函數(shù)的定義與實現(xiàn)。文件CSniffer201200824_302_318Dlg.cpp中定義的函數(shù)有:voidOnBnClickedButtonNic()/點擊“選擇網(wǎng)卡"按鈕的響應(yīng)事件void SetFiltRules()/設(shè)置過濾規(guī)則的方法void DecodeIPPacket(constunsignedchar pData)/IP分組解析void DecodeUDPPacket(constunsignedchar pData)/UDP數(shù)據(jù)報解析void DecodeTCPPacket(constunsignedchar pData)

35、/TCP解析void CallbackFunctionPacket(unsignedchar user, conststruct pcap_pkthdr *Winpcaphead, constunsignedchar packetdata) /解析包的回調(diào)函數(shù)void CSniffer201200824_302_318Dlg:SetInitData() /用全局變量給成員變量賦值UINT ProcessFunc(LPVOID pParam)/線程函數(shù)void CSniffer201200824_302_318Dlg::StartCapture() /抓包函數(shù)void CSniffer20120

36、0824_302_318Dlg::OnBnClickedButtonStartcap()/點擊"開始抓包"按鈕的響應(yīng)事件文件ChooseNIC。cpp中定義的函數(shù)有:void ChooseNIC::OnBnClickedOk() /點擊“確定”按鈕的響應(yīng)事件pcap_if_t ChooseNIC:GetCurrentDevice() /返回當(dāng)前設(shè)備指針pcap_t * ChooseNIC:GetPcapHandle() /返回pcap文件指針第5章 系統(tǒng)測試(1) 主界面測試結(jié)果,如圖5.1所示。圖5.1 主界面(2)開始抓包之前一定要先首先選擇網(wǎng)卡,否則會彈出提示框,如圖

37、5。2所示。圖5.2 提示選擇網(wǎng)卡(2) 執(zhí)行選擇網(wǎng)卡,如果選擇超出范圍則會彈出提示框,如圖5。3所示;若輸入的在選擇范圍之內(nèi),則會提示選擇正確的提示,如圖5。4所示。圖5.3 選擇超出范圍圖5.4 選擇成功(3) 選擇網(wǎng)卡之后,便是要選擇抓包的類型,選擇之后,結(jié)果如圖5。5所示.圖5。5 選擇抓包類型(4) 選擇都正確之后,開始抓包。抓包后顯示的結(jié)果如圖5.6所示。圖5.6 抓包結(jié)果顯示第6章 設(shè)計總結(jié)與展望程序設(shè)計和課程設(shè)計報告都已經(jīng)梳理完成,對于本次課程設(shè)計,我們收獲很大,收獲的不僅僅是知識,還有經(jīng)歷,這是一筆寶貴的財富,同時也有關(guān)于基于Winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)的思想,這些思

38、想包含了對嗅探工具的展望以及本組嗅探工具設(shè)計中的一些不足.6。1 總結(jié)本次設(shè)計的程序是在Winpcap庫的基礎(chǔ)上對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行捕獲,不需要編寫復(fù)雜的設(shè)備驅(qū)動程序和代碼就可以實現(xiàn)抓包,使得其編寫過程比較簡便、有效率。從課程設(shè)計選題,到查閱資料,思考課題的解決的方案,再到課題的實現(xiàn),是一個集中學(xué)習(xí)的過程,是一個靈活運用知識的過程,是一個由量變到質(zhì)變的過程。真的感覺到我們都進(jìn)步了,感覺到我們學(xué)到一些東西了,感覺到我們求知的態(tài)度.我們這次做的網(wǎng)絡(luò)嗅探工具需要用到MFC編程,盡管以前接觸過VC+編程,但是對此也不是太精通。所以在查詢資料期間,我們認(rèn)真看相關(guān)的內(nèi)容,切實沉入到學(xué)習(xí)中去,慢慢地,我們對MFC的理解越來越深了,同時也加深了對VC+相關(guān)知識的理解,尤其是面向?qū)ο筮@一部分,鍛煉了自己的編程能力.在編寫程序的過程中,我們每每為自己的一些新

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論