




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGE局域網(wǎng)抓包軟件的設(shè)計摘要隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,社會進入了一個信息爆炸的時代,世界也由于網(wǎng)絡(luò)而變小,人們通過各種技術(shù)和工具使交流突破了空間的限制。在網(wǎng)絡(luò)技術(shù)發(fā)展與普及的同時,網(wǎng)絡(luò)安全問題引起了人們的廣泛關(guān)注。因此,研究并開發(fā)出一種能夠有效地實時捕獲網(wǎng)絡(luò)信息的系統(tǒng)具有極其重要的意義。基于這一情況,本論文針對網(wǎng)絡(luò)數(shù)據(jù)的捕獲與數(shù)據(jù)包信息分析等問題進行了深入的探討和研究。本論文逐一介紹了信息捕獲中的相關(guān)技術(shù)及需求分析,在系統(tǒng)設(shè)計中對數(shù)據(jù)包捕獲模塊、解碼數(shù)據(jù)包模塊和數(shù)據(jù)庫信息模塊的實現(xiàn)進行了詳細講述。通過運用WinPcap開發(fā)包實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲,利用TCP/IP協(xié)議的封裝理論和自下而上的分析實現(xiàn)了數(shù)據(jù)包信息的分析,并且將分析出來的信息存入數(shù)據(jù)庫。另外,還能實現(xiàn)一些功能,如對指定的IP地址進行數(shù)據(jù)包的捕獲,對捕獲結(jié)果進行顯示等。關(guān)鍵詞:WinPcap;數(shù)據(jù)捕獲;信息分析;局域網(wǎng)引言課題背景及意義計算機網(wǎng)絡(luò)的發(fā)展給計算機產(chǎn)業(yè)和整個人類的工作、生活方式帶來了巨大的變化,特別是信息技術(shù)的發(fā)展使一個信息缺乏的時代進入了一個信息爆炸的時代,世界也由于Internet而變小。人們通過各種技術(shù),工具使得交流突破了空間的限制。全球范圍內(nèi)的網(wǎng)絡(luò)互聯(lián)給人們的生活和工作帶來了方便,人們正享受網(wǎng)絡(luò)技術(shù)帶給我們美好生活。但同時某些不法分子利用網(wǎng)絡(luò)的漏洞非法入侵他人的主機系統(tǒng),有的利用網(wǎng)絡(luò)盜取他人個人信息,如網(wǎng)上銀行帳號密碼等,對他人財產(chǎn)安全造成了重大威脅。據(jù)有關(guān)資料統(tǒng)計我國每年通過計算網(wǎng)絡(luò)進行違法行為以30%的速度上升。面對計算機犯罪越來越多的趨勢,及網(wǎng)絡(luò)上日益泛濫的信息垃圾和污染情況,我國政府未雨綢繆,已經(jīng)制定了關(guān)于互聯(lián)網(wǎng)絡(luò)使用的法律法規(guī),網(wǎng)絡(luò)安全問題已面臨著重大挑戰(zhàn)。目前我國正在進行大規(guī)模的現(xiàn)代化經(jīng)濟建設(shè),需要使用自己的網(wǎng)絡(luò)和信息安全系統(tǒng)來保護自己的網(wǎng)絡(luò)和信息系統(tǒng),尤其是對于全國性大型計算機網(wǎng)絡(luò)而言,必須將網(wǎng)絡(luò)安全和信息安全放在非常重要的地位上,而從長遠角度看,這只能依靠我們自己解決。因此建立網(wǎng)絡(luò)安全系統(tǒng)是我們現(xiàn)在迫切需求,這項工作對我們來說具有重大的政治和經(jīng)濟意義面對這種形式研究并開發(fā)出一種能方便有效的實時監(jiān)視和捕獲可疑網(wǎng)絡(luò)信息的系統(tǒng)迫在眉睫。隨著信息化程度的提高,使我們從一個封閉的環(huán)境進入到一個開放的世界,但我們所擔(dān)心和關(guān)心的問題便是網(wǎng)絡(luò)安全問題,也就是內(nèi)部網(wǎng)絡(luò)安全和外部網(wǎng)絡(luò)安全的問題。本課題正是針對這種情況和需求,對實時數(shù)據(jù)捕獲與網(wǎng)絡(luò)信息監(jiān)控提出系統(tǒng)設(shè)計方案,并對信息過濾和跟蹤的方法和技術(shù)進行研究,這便是我的論文研究的意義與目的。本課題研究的相關(guān)技術(shù)及方法網(wǎng)絡(luò)數(shù)據(jù)捕獲技術(shù)是獲取信息的關(guān)鍵技術(shù),它通過監(jiān)聽技術(shù),過濾技術(shù)獲取原始數(shù)據(jù),根據(jù)TCP/IP分層理論進行層層拆解,提取相關(guān)協(xié)議中的信息。本畢業(yè)設(shè)計主要通過使用Winpcap開發(fā)包,在VC++環(huán)境下編寫出了一款簡單的軟件對數(shù)據(jù)包信息按TCP協(xié)議類型、UDP協(xié)議類型和特定IP地址進行分類捕獲,捕獲出所需要的敏感信息,并且將捕獲出來的信息寫入數(shù)據(jù)庫。VisualC++6.0VisualC++6.0是微軟公司推出的開發(fā)Win32應(yīng)用程序(Windows95/98/2000/XP/NT)的、面向?qū)ο蟮目梢暬晒ぞ?。它的最大?yōu)點就是提供了功能強大的MFC類庫,MFC是一個很大的C++類層次結(jié)構(gòu),其中封裝了大量的類及其函數(shù),很多Windows程序所共有的標準內(nèi)容可以由MFC的類來提供,MFC類為這些內(nèi)容提供了用戶接口的標準實現(xiàn)方法,程序員所要做的就是通過預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個輪廓,這將簡化編程工作,大大的減少程序員編寫的代碼數(shù)量,使編程工作變得更加輕松容易。Winpcap簡介Winpcap(windowspacketcapture)是Windows平臺下一個免費,公共的網(wǎng)絡(luò)訪問系統(tǒng)。開發(fā)Winpcap這個項目的目的在于為win32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。它提供了以下的各項功能:(1)捕獲原始數(shù)據(jù)報,包括在共享網(wǎng)絡(luò)上各主機發(fā)送/接收的以及相互之間交換的數(shù)據(jù)報;(2)在數(shù)據(jù)報發(fā)往應(yīng)用程序之前,按照自定義的規(guī)則將某些特殊的數(shù)據(jù)報過濾掉;(3)在網(wǎng)絡(luò)上發(fā)送原始的數(shù)據(jù)報;(4)收集網(wǎng)絡(luò)通信過程中的統(tǒng)計信息。Winpcap的主要功能在于獨立于主機協(xié)議(如TCP/IP)而發(fā)送和接收原始數(shù)據(jù)報。也就是說,Winpcap不能阻塞、過濾或控制其他應(yīng)用程序數(shù)據(jù)報的發(fā)收,它僅僅只是監(jiān)聽共享網(wǎng)絡(luò)上傳送的數(shù)據(jù)報。Winpcap是Win32平臺下的數(shù)據(jù)包捕獲與網(wǎng)絡(luò)分析架構(gòu),由三個模塊構(gòu)成:NPF,packet.dll,wpcap.dll。前一個工作在內(nèi)核層,后兩個工作在用戶層。第一個模塊是內(nèi)核部分NPF(NetgroupPacketFilter),在Win95/98中它是一個VXD(虛擬設(shè)備驅(qū)動程序文件)文件,在WinNT/Win2000下是一個SYS文件。它的主要功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動地傳給用戶態(tài)模塊。當(dāng)然也添加了一些系統(tǒng)特定的標志(比如時間戳管理)。這個過程中包括了一些操作系統(tǒng)特有的代碼。第二個模塊packet.dll用來在不同的Win32平臺下提供一個通用的公共的包驅(qū)動接口。事實上,不同版本的Windows平臺在內(nèi)核層模塊和用戶進程之間的接口不完全相同,packet.dll用于解決這些不同。提供了一套系統(tǒng)獨立的API(ApplicationProgrammingInterface應(yīng)用編程接口),調(diào)用packet.dll的程序能夠運行在不同版本的Windows平臺上而無需重新編譯。packet.dll還有一些附加的功能。它可執(zhí)行一些低層操作:如:獲得網(wǎng)卡名字,動態(tài)裝載驅(qū)動,得到比如機器的網(wǎng)絡(luò)掩碼、硬件沖突等一些系統(tǒng)特定的信息。第三個模塊wpcap.dll是系統(tǒng)無關(guān)的,它提供了更高層、抽象的函數(shù)。它包括了一些比如過濾器生成、用戶級緩沖等其它的高層函數(shù),增加了比如統(tǒng)計和包發(fā)送等更高級的特性。因此程序員能處理兩種類型的API:一套原始函數(shù)集,包含在packet.dll中,直接與內(nèi)核層調(diào)用匹配;另一套高層函數(shù)由wpcap.dll提供,便于用戶調(diào)用,功能更強大。程序員能隨意使用wpcap.dll,但只能在受限的環(huán)境中直接使用packet.dll.WWpcap.dllApplicationNPFDeviceDriverPacket.dllUserLevelKernelLevelNetworkPackets圖1WINPCAP結(jié)構(gòu)圖總的說來,Packet.dll直接映射了內(nèi)核的調(diào)用。Wpcap.dll提供了更加友好、功能更加強大的函數(shù)調(diào)用。Winpcap的具體結(jié)構(gòu)圖1所示:Winpcap是用NDIS(Windows的通信協(xié)議程序(比如TCP/IP)和網(wǎng)絡(luò)設(shè)備驅(qū)動器之間通信的規(guī)范)的,將自己注冊為一個協(xié)議處理驅(qū)動。Wincap的使用非常方便,但是它有一個致命的缺陷就是只適用于共享式以太網(wǎng)絡(luò),對于交換式網(wǎng)絡(luò)下的數(shù)據(jù)則無能為力。經(jīng)過測試,在使用交換機連接的局域網(wǎng)下,Wincap只能監(jiān)聽到本網(wǎng)段內(nèi)的數(shù)據(jù),而對于來自其他網(wǎng)段的數(shù)據(jù)則無法監(jiān)聽,除非你把probe接到交換機之前或者接到交換機的console口上,不過那樣的弊端是顯而易見的,所以,Winpcap的應(yīng)用還是有局限性的。Winpcap結(jié)構(gòu)圖如下:圖2NPFdevicedriver基于信息捕獲的相關(guān)理論基礎(chǔ)TCP/IP協(xié)議TCP/IP(TransferContrcol/InternetProtocol)傳輸控制協(xié)議/網(wǎng)際協(xié)議起源于60年代末美國政府資助的一個分組交換網(wǎng)絡(luò)研究項目,到90年代已發(fā)展成為計算機之間最常應(yīng)用的組網(wǎng)形式。它是能夠在網(wǎng)絡(luò)中提供可靠的數(shù)據(jù)傳輸和無連接的數(shù)據(jù)報服務(wù)的一組協(xié)議。提供可靠數(shù)據(jù)傳輸?shù)膮f(xié)議稱為傳輸控制協(xié)議TCP,提供網(wǎng)絡(luò)尋址的協(xié)議稱為網(wǎng)際協(xié)議IP,它只是TCP/IP協(xié)議族的其中的兩種協(xié)議。TCP/IP協(xié)議族是一組不同的協(xié)議組合在一起構(gòu)成的協(xié)議族,它是一個真正的開放系統(tǒng)。現(xiàn)已成為全球互聯(lián)網(wǎng)中的基礎(chǔ)。基于TCP/IP協(xié)議的網(wǎng)絡(luò)體系結(jié)構(gòu),TCP/IP協(xié)議分為四層如圖3所示,每一層分別負責(zé)不同的通信功能。應(yīng)用層Telnet、Ftp、Email等傳輸層TCP、UDP網(wǎng)絡(luò)層IP、ICMP、IGMP網(wǎng)絡(luò)接口層設(shè)備驅(qū)動程序及接口卡圖3TCP/TP協(xié)議族的四個層次鏈路層:有時也稱作數(shù)據(jù)層或網(wǎng)絡(luò)接口層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機中對應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理任何傳輸媒介的物理接口細節(jié),它使用的協(xié)議為以太網(wǎng)協(xié)議。網(wǎng)絡(luò)層:有時也稱作互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動,例如分組的選路。在TCP/IP協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括IP(網(wǎng)際協(xié)議)、ICMP(因特網(wǎng)網(wǎng)間控制報文協(xié)議)以及IGMP(因特網(wǎng)組管理協(xié)議)。傳輸層:它主要為兩臺主機上的應(yīng)用程序提供端到端的通信。TCP/IP協(xié)議族中,有兩個互不相同的傳輸協(xié)議:UDP(用戶數(shù)據(jù)報協(xié)議)、TCP(傳輸控制協(xié)議)。TCP為兩臺主機提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認接收到的分組,設(shè)置發(fā)送最后確認分組的超時時鐘等,由于運輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細節(jié)。UDP則為應(yīng)用層提供一種非常簡單的服務(wù)。它只是把稱作數(shù)據(jù)報的分組從一臺主機發(fā)送到另一臺主機,但并不保證該數(shù)據(jù)報能到達另一端。任何必需的可靠性必須由應(yīng)用層來提供。應(yīng)用層:它負責(zé)處理特定的應(yīng)用程序細節(jié)。對于TCP/IP協(xié)議族,它提供Telnet(遠程登錄協(xié)議)、FTP(文件傳輸協(xié)議)、SMTP(簡單郵件傳送協(xié)議)、POP3(郵件接受協(xié)議)、SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)。通常應(yīng)用程序是一個用戶進程,而下面的三層進程則是一般在內(nèi)核中執(zhí)行的。應(yīng)用層關(guān)心的是應(yīng)用程序的細節(jié),它不關(guān)心數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸。下三層對應(yīng)用程序一無所知,但卻要處理所有的通信細節(jié)。在TCP/IP協(xié)議族中,有很多協(xié)議。TCP和UDP是兩種最為著名的運輸層協(xié)議,二者都使用IP作為網(wǎng)絡(luò)層協(xié)議。雖然TCP使用不可靠的IP服務(wù),但它卻提供一種可靠的運輸層服務(wù)。除了以上提到的協(xié)議,還有下面幾個協(xié)議:IPARP(地址解析協(xié)議)、RARP(逆向地址解析協(xié)議)、動態(tài)選路協(xié)議(RIP、OSPF、BGP、CIDR)、DNS(域名系統(tǒng))、TFTP(簡單文件傳送協(xié)議)等。圖4為TCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu)與上述各協(xié)議之間的關(guān)系模型。圖4TCP/IP協(xié)議族中不同層次的協(xié)議從圖的模型中可以看到,應(yīng)用層的大多數(shù)應(yīng)用程序通過TCP、UDP來訪問網(wǎng)絡(luò)層,或者通過ICMP來使用網(wǎng)絡(luò)層,如Ping、TraceRoute等也可以使用IP直接訪問網(wǎng)絡(luò)層。傳輸層中的TCP、UDP為應(yīng)用層提供可靠的或不可靠網(wǎng)絡(luò)傳輸?shù)木W(wǎng)絡(luò)傳輸服務(wù)。網(wǎng)絡(luò)層的ICMP是IP協(xié)議的附屬協(xié)議,IP協(xié)議用它與路由器之間交換錯誤報文或其它控制信息。網(wǎng)絡(luò)接口層的ARP、RARP是以太網(wǎng)和令牌環(huán)使用的特殊協(xié)議,用來轉(zhuǎn)換IP層和網(wǎng)絡(luò)接口層使用的地址。數(shù)據(jù)封裝與分用過程以用戶用TCP協(xié)議傳送數(shù)據(jù)為例,數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個通過每一層直到被當(dāng)作一串比特流送入網(wǎng)絡(luò)。然后逐個通過每一層直到被當(dāng)作一串比特流送入網(wǎng)絡(luò)。其中每一層對收到的數(shù)據(jù)都要增加一些首部信息(有時還要增加尾部信息)。TCP傳給IP的數(shù)據(jù)單元稱作TCP報文段或簡稱為TCP段(TCPsegment)。IP傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作IP數(shù)據(jù)報。通過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(Frame)。這就是通常說的數(shù)據(jù)的封裝過程,如圖5所示。圖5數(shù)據(jù)進入?yún)f(xié)議棧時的封裝過程當(dāng)目的主機收到一個以太網(wǎng)數(shù)據(jù)幀時,數(shù)據(jù)就開始從協(xié)議棧中由底向上升,同時去掉各層協(xié)議加上的報文首部。每層協(xié)議盒都要去檢查報文首部中的協(xié)議標識,以確定接收數(shù)據(jù)的上層協(xié)議。這個過程稱作分用(Demultiplexing),圖6顯示了該過程是如何發(fā)生的。圖6數(shù)據(jù)幀的分用過程IP協(xié)議IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)報格式傳輸。IP提供不可靠、無連接的數(shù)據(jù)報傳送服務(wù)。IP數(shù)據(jù)報的首部信息如圖7:圖7IP數(shù)據(jù)報格式及首部中的各字段IP各域的含義如下:版本:當(dāng)前IP協(xié)議的版本號,本論文采用的版本號為4;首部長度:以32bit為單位的包頭長度;服務(wù)類型:規(guī)定對本數(shù)據(jù)報的處理方式,比如優(yōu)先權(quán)等;總長:以Byte為單位的整個IP數(shù)據(jù)報長度;標識:信源主機賦予每個IP數(shù)據(jù)報的唯一標識符號,用于控制分片及其重組;標志和片偏移:同樣用于控制分片及其重組;生存時間:設(shè)置本數(shù)據(jù)報的最大生存時間,以秒為單位;協(xié)議:表示創(chuàng)建本IP數(shù)據(jù)報數(shù)據(jù)區(qū)數(shù)據(jù)的高層協(xié)議的類型,如TCP,UDP等;頭標校驗和:用于保證頭標數(shù)據(jù)的完整性;源IP地址和目的IP地址:分別指發(fā)送本數(shù)據(jù)報的主機IP地址和接受本數(shù)據(jù)報的主機的IP地址;選項:用于控制和測試,是IP數(shù)據(jù)報中可選的部分,包含“源路徑”、“路徑記錄”、“時間戳”等幾種類型。TCP協(xié)議是網(wǎng)絡(luò)中應(yīng)用最為廣泛的協(xié)議,許多的應(yīng)用層協(xié)議都是在建立在TCP協(xié)議之上的。TCP首部的各字段如圖8所示:IP首部IP首部 TCP首部TCP數(shù)據(jù)IP數(shù)據(jù)報TCP報文段20字節(jié)20字節(jié)圖8TCP數(shù)據(jù)在IP數(shù)據(jù)報中的封裝TCP協(xié)議頭部信息如下:源端口:發(fā)送端TCP端口號。目的端口:接收端TCP端口號;序號:指出段中數(shù)據(jù)在發(fā)送端數(shù)據(jù)流中的位置;確認號:指出本機希望下一個接收的字節(jié)的序號;頭標長度:以32bit為單位的段頭標長度,是針對變長的“選項”域設(shè)計的;碼位:指出段的目的與內(nèi)容,不同的各碼位置位有不同的含義;窗口:用于通告接收端接收緩沖區(qū)的大小;校驗和:這是可選域,置0表示未選,全1表示校驗和為伍緊急指針:當(dāng)碼位的URG置位時,指出緊急指針的序號。UDP協(xié)議是英文UserDatagramProtocol的縮寫,即用戶數(shù)據(jù)報協(xié)議,主要用來支持那些需要在計算機之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議從問世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使是在今天,UDP仍然不失為一項非常實用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。UDP數(shù)據(jù)報各域的意義與TCP段中相應(yīng)的域相同。只有校驗和有些不同,除UDP數(shù)據(jù)報本身外,它還覆蓋一個附加的“偽頭標”。這個偽頭標來自于IP報頭,包括:源IP地址、信宿IP地址、協(xié)議類型、UDP長度及填充域。UDP首部的各字段圖9所示:圖9UDP首部局域網(wǎng)信息捕獲器的設(shè)計功能概述通過前面的敘述可以知道,這款軟件具有的功能,那就是:能夠分別捕獲局域網(wǎng)中的TCP協(xié)議類型數(shù)據(jù),UDP協(xié)議類型數(shù)據(jù)和從某一特定的IP地址發(fā)送出來的TCP協(xié)議類型數(shù)據(jù)和UDP協(xié)議數(shù)據(jù)類型。并且,將這些捕獲出來的數(shù)據(jù)包的基本信息存入到數(shù)據(jù)庫中,提供給網(wǎng)絡(luò)管理員使用和進一步的分析。系統(tǒng)流程圖如下圖:圖10系統(tǒng)流程圖本系統(tǒng)包括三個基本模塊,分別是數(shù)據(jù)包捕獲模塊,數(shù)據(jù)分析模塊和數(shù)據(jù)庫模塊。其中數(shù)據(jù)包捕獲模塊的功能是:利用Winpcap控件,通過網(wǎng)卡設(shè)備從網(wǎng)絡(luò)中捕獲數(shù)據(jù)包;數(shù)據(jù)分析模塊的功能是:主要實現(xiàn)數(shù)據(jù)的解析,從網(wǎng)絡(luò)適配器中捕獲到的數(shù)據(jù)的為原始數(shù)據(jù)(rawdata),這些原始數(shù)據(jù)為二進制格式,必須轉(zhuǎn)化為能比較好明白的格式,這就要求將這些原始數(shù)據(jù)能按照網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)木唧w格式來保存,主要為了能較好的讀懂相關(guān)的信息,以便使用者分析;數(shù)據(jù)庫模塊的功能是:經(jīng)過前兩個模塊處理后的數(shù)據(jù),現(xiàn)在已經(jīng)轉(zhuǎn)化成了對我們有用的信息了,而這些信息不可能一直讓他存放在內(nèi)存中,那么就需要在數(shù)據(jù)庫中建立相應(yīng)的表,把這些信息存貯在這些數(shù)據(jù)庫表的相應(yīng)列名中,以便使用者處理、使用。本人主要負責(zé)數(shù)據(jù)包捕獲模塊。系統(tǒng)功能模塊的設(shè)計數(shù)據(jù)包捕獲模塊數(shù)據(jù)包捕獲模塊主要用Winpcap軟件實現(xiàn),模塊的設(shè)計思想遵循Winpcap捕獲數(shù)據(jù)包的流程,流程分三步:查找設(shè)備,打開設(shè)備和捕獲數(shù)據(jù)的函數(shù)。利用WinPcap結(jié)構(gòu)提供的wpcap.dll來開發(fā)實現(xiàn)數(shù)據(jù)包捕獲程序。流程圖如下:圖11數(shù)據(jù)捕獲模塊流程圖這里給出其主要過程:先確定要在其上進行監(jiān)測的網(wǎng)絡(luò)適配器,得到現(xiàn)有的網(wǎng)絡(luò)適配器的列表和他們的描述,從而獲得該NIC的相關(guān)信息。 if(pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL,&alldevs,errbuf)==-1) { MessageBox("查找設(shè)備出錯","提示"); return;}接下來打開所獲得的網(wǎng)絡(luò)適配器,其中pcap_open函數(shù)的參數(shù)1為上面獲得的NIC名稱,參數(shù)2定義了網(wǎng)絡(luò)監(jiān)測程序所捕捉的最大字節(jié)數(shù)。參數(shù)3指示是否將網(wǎng)絡(luò)適配器設(shè)為混雜模式,PCAP_OPENFLAG_PROMISCUOUS表示工作方式為混雜模式。參數(shù)4為捕獲時間限制,單位為毫秒。參數(shù)5為錯誤信息緩存。該函數(shù)負責(zé)按照用戶指定參數(shù)和其它系統(tǒng)默認值初始化WinPcap,并返回會話句柄//打開設(shè)備 adhandle=pcap_open(d->name,65536, PCAP_OPENFLAG_PROMISCUOUS, 1000,NULL,errbuf);當(dāng)網(wǎng)卡已打“打開”并且具體配置好后,就可以進入捕獲了??紤]到系統(tǒng)資料的占用等問題,利用了線程來解決此問題,捕獲數(shù)據(jù)是新建一個線程,來實現(xiàn)數(shù)據(jù)的捕獲,再在線程中處理數(shù)據(jù)的解析和特征碼的提取,其中CreateThread函數(shù)的參數(shù)1為指向SECURITY_ATTRIBUTES結(jié)構(gòu)體的指針,參數(shù)2指定線程堆棧大小,參數(shù)3指定線程執(zhí)行函數(shù)名稱,參數(shù)4表示給新線程的參數(shù),參數(shù)5為線程指定的更多控制參數(shù),參數(shù)6為新線ID。代碼如下//這里創(chuàng)建一個線程來處理數(shù)據(jù) LPDWORDThID=NULL; m_handle=CreateThread(NULL,0,ThreadProc,this,0,ThID); if(m_handle==NULL) { return; }//線程處理函數(shù)DWORDWINAPIThreadProc(LPVOIDlpParameter){ CLjDlg*m_dlg=(CLjDlg*)lpParameter; structpcap_pkthdr*header; //捕獲數(shù)據(jù)包的頭 constu_char*pkt_data;//指向常量的指針 intres;//pcap_next_ex的返回值 m_dlg->SetDlgItemText(IDC_STATIC_TIP,"線程開始
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專利代理的行業(yè)規(guī)范與標準試題及答案
- 教師資格筆試能力提升方案試題及答案
- 三年級語文下冊 第五單元 習(xí)作:奇妙的想象(新學(xué)習(xí)單)教學(xué)設(shè)計 新人教版
- 光電工程師證書考試例題解析試題及答案
- 樂陵初三一模試題及答案
- 光電工程師工作的實際案例試題及答案
- 八年級地理上冊 3.1 自然資源概況教學(xué)設(shè)計 (新版)粵教版
- 紅娘服務(wù)合同協(xié)議
- 酒店咨詢合同協(xié)議
- 海鮮投資合同協(xié)議
- 四年級語文國測模擬試題 (1)附有答案
- 信息技術(shù)與小學(xué)數(shù)學(xué)教學(xué)的深度融合課件
- 工程施工節(jié)點確認單
- 如何上好一節(jié)思政課綜述課件
- 部編 道法 六下 第5課、應(yīng)對自然災(zāi)害(課件+教案+習(xí)題+知識點)【2套實用版】
- Chap-17壟斷競爭(經(jīng)濟學(xué)原理 中英文雙語)
- 新課程標準下的教學(xué)規(guī)范:5.山東省初中歷史課堂教學(xué)基本要求
- “二級甲等婦幼保健院”評審匯報材料二級甲等婦幼保健院(最新)
- 單相變壓器精品課件
- 停電作業(yè)工作票配電填寫模板
- 最新EXCEL上機操作練習(xí)題1
評論
0/150
提交評論