版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE第30頁共25頁畢業(yè)設(shè)計(jì)(論文)局域網(wǎng)抓包軟件的設(shè)計(jì)與實(shí)現(xiàn)論文作者姓名:申請(qǐng)學(xué)位專業(yè):申請(qǐng)學(xué)位類別:論文提交日期:局域網(wǎng)抓包軟件的設(shè)計(jì)與實(shí)現(xiàn)摘要隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,社會(huì)進(jìn)入了一個(gè)信息爆炸的時(shí)代,世界也由于網(wǎng)絡(luò)而變小,人們通過各種技術(shù)和工具使交流突破了空間的限制。在網(wǎng)絡(luò)技術(shù)發(fā)展與普及的同時(shí),網(wǎng)絡(luò)安全問題引起了人們的廣泛關(guān)注。因此,研究并開發(fā)出一種能夠有效地實(shí)時(shí)捕獲網(wǎng)絡(luò)信息的系統(tǒng)具有極其重要的意義。基于這一情況,本論文針對(duì)網(wǎng)絡(luò)數(shù)據(jù)的捕獲與數(shù)據(jù)包信息分析等問題進(jìn)行了深入的探討和研究。本論文逐一介紹了信息捕獲中的相關(guān)技術(shù)及需求分析,在系統(tǒng)設(shè)計(jì)中對(duì)數(shù)據(jù)包捕獲模塊、解碼數(shù)據(jù)包模塊和數(shù)據(jù)庫信息模塊的實(shí)現(xiàn)進(jìn)行了詳細(xì)講述。通過運(yùn)用WinPcap開發(fā)包實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲,利用TCP/IP協(xié)議的封裝理論和自下而上的分析實(shí)現(xiàn)了數(shù)據(jù)包信息的分析,并且將分析出來的信息存入數(shù)據(jù)庫。另外,還能實(shí)現(xiàn)一些功能,如對(duì)指定的IP地址進(jìn)行數(shù)據(jù)包的捕獲,對(duì)捕獲結(jié)果進(jìn)行顯示等。關(guān)鍵詞:WinPcap;數(shù)據(jù)捕獲;信息分析;局域網(wǎng)TheDesignandImplementationofLANInformationCaptureSoftwareAbstractAsdevelopmentofthenetworkandtechnology,thesocietycomesintoaageofinformationexplosion.Duetothenetwork,theworldhasbecomesmaller,andpeopleuseallkindsoftechnologiesandtoolstobreakthroughthelimitationofcommunication.Thenetworksecurityhasbeenwidelyconcernedfollowedbythedevelopmentanduniversalofthenetworktechnology.Therefore,itisgreatsignificancethataneffectivereal-timeinterceptionnetworkinformationsystemisstudiedanddeveloped.Basedonthissituation,thisthesisin-depthstudiestocapturethenetworkdataandsoon.Besides,itintroducesrelativetechnologyandtheneedsinformationcapture.Therealizationofthedatacapturemodule,datapacketdecodedmoduleanddatabaseinformationmoduleisdisplayedfordetailinthesystem'sdesign.ThenetworkdatapacketiscapturedthroughWinPcap,somefunctionshasbeenrealized,suchasnetworkdatapacketcapture,datapacketsofinformationanalysisbyusingTCP/IPprotocolencapsulationtheoryandbottom-up,andwillanalyzetheinformationstoredinthedatabase.Simultaneously,thissoftwarewouldalsoincreasessomefunctions,suchasdatapacketcapturebytheIPaddress,maketheresultsandstatistics,displaytheresultsofdatapacketcaptureandsoon.Keywords:WinPcap;datacapture;informationanalysis;LAN目錄論文總頁數(shù):25頁TOC\o"1-4"\h\z\u1 引言 11.1 課題背景及意義 11.2 本課題研究的相關(guān)技術(shù)及方法 11.3 VisualC++6.0 11.4 Winpcap簡(jiǎn)介 22 基于信息捕獲的相關(guān)理論基礎(chǔ) 42.1 TCP/IP協(xié)議 42.2 數(shù)據(jù)封裝與分用過程 62.3 IP協(xié)議 73 需求分析 93.1 功能需求 93.2 性能要求 104 局域網(wǎng)信息捕獲器的設(shè)計(jì) 104.1 功能概述 104.2 系統(tǒng)功能模塊的設(shè)計(jì) 114.2.1 數(shù)據(jù)包捕獲模塊 114.2.2 數(shù)據(jù)分析模塊實(shí)現(xiàn) 134.2.3 數(shù)據(jù)庫模塊的實(shí)現(xiàn) 164.3 用戶界面模塊 195 局域網(wǎng)信息捕獲測(cè)試和測(cè)試結(jié)果 205.1 測(cè)試環(huán)境 205.2 測(cè)試結(jié)果 20結(jié)論 22參考文獻(xiàn) 23致謝 24聲明 25引言課題背景及意義計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展給計(jì)算機(jī)產(chǎn)業(yè)和整個(gè)人類的工作、生活方式帶來了巨大的變化,特別是信息技術(shù)的發(fā)展使一個(gè)信息缺乏的時(shí)代進(jìn)入了一個(gè)信息爆炸的時(shí)代,世界也由于Internet而變小。人們通過各種技術(shù),工具使得交流突破了空間的限制。全球范圍內(nèi)的網(wǎng)絡(luò)互聯(lián)給人們的生活和工作帶來了方便,人們正享受網(wǎng)絡(luò)技術(shù)帶給我們美好生活。但同時(shí)某些不法分子利用網(wǎng)絡(luò)的漏洞非法入侵他人的主機(jī)系統(tǒng),有的利用網(wǎng)絡(luò)盜取他人個(gè)人信息,如網(wǎng)上銀行帳號(hào)密碼等,對(duì)他人財(cái)產(chǎn)安全造成了重大威脅。據(jù)有關(guān)資料統(tǒng)計(jì)我國每年通過計(jì)算網(wǎng)絡(luò)進(jìn)行違法行為以30%的速度上升。面對(duì)計(jì)算機(jī)犯罪越來越多的趨勢(shì),及網(wǎng)絡(luò)上日益泛濫的信息垃圾和污染情況,我國政府未雨綢繆,已經(jīng)制定了關(guān)于互聯(lián)網(wǎng)絡(luò)使用的法律法規(guī),網(wǎng)絡(luò)安全問題已面臨著重大挑戰(zhàn)。目前我國正在進(jìn)行大規(guī)模的現(xiàn)代化經(jīng)濟(jì)建設(shè),需要使用自己的網(wǎng)絡(luò)和信息安全系統(tǒng)來保護(hù)自己的網(wǎng)絡(luò)和信息系統(tǒng),尤其是對(duì)于全國性大型計(jì)算機(jī)網(wǎng)絡(luò)而言,必須將網(wǎng)絡(luò)安全和信息安全放在非常重要的地位上,而從長遠(yuǎn)角度看,這只能依靠我們自己解決。因此建立網(wǎng)絡(luò)安全系統(tǒng)是我們現(xiàn)在迫切需求,這項(xiàng)工作對(duì)我們來說具有重大的政治和經(jīng)濟(jì)意義面對(duì)這種形式研究并開發(fā)出一種能方便有效的實(shí)時(shí)監(jiān)視和捕獲可疑網(wǎng)絡(luò)信息的系統(tǒng)迫在眉睫。隨著信息化程度的提高,使我們從一個(gè)封閉的環(huán)境進(jìn)入到一個(gè)開放的世界,但我們所擔(dān)心和關(guān)心的問題便是網(wǎng)絡(luò)安全問題,也就是內(nèi)部網(wǎng)絡(luò)安全和外部網(wǎng)絡(luò)安全的問題。本課題正是針對(duì)這種情況和需求,對(duì)實(shí)時(shí)數(shù)據(jù)捕獲與網(wǎng)絡(luò)信息監(jiān)控提出系統(tǒng)設(shè)計(jì)方案,并對(duì)信息過濾和跟蹤的方法和技術(shù)進(jìn)行研究,這便是我的論文研究的意義與目的。本課題研究的相關(guān)技術(shù)及方法網(wǎng)絡(luò)數(shù)據(jù)捕獲技術(shù)是獲取信息的關(guān)鍵技術(shù),它通過監(jiān)聽技術(shù),過濾技術(shù)獲取原始數(shù)據(jù),根據(jù)TCP/IP分層理論進(jìn)行層層拆解,提取相關(guān)協(xié)議中的信息。本畢業(yè)設(shè)計(jì)主要通過使用Winpcap開發(fā)包,在VC++環(huán)境下編寫出了一款簡(jiǎn)單的軟件對(duì)數(shù)據(jù)包信息按TCP協(xié)議類型、UDP協(xié)議類型和特定IP地址進(jìn)行分類捕獲,捕獲出所需要的敏感信息,并且將捕獲出來的信息寫入數(shù)據(jù)庫。VisualC++6.0VisualC++6.0是微軟公司推出的開發(fā)Win32應(yīng)用程序(Windows95/98/2000/XP/NT)的、面向?qū)ο蟮目梢暬晒ぞ?。它的最大?yōu)點(diǎn)就是提供了功能強(qiáng)大的MFC類庫,MFC是一個(gè)很大的C++類層次結(jié)構(gòu),其中封裝了大量的類及其函數(shù),很多Windows程序所共有的標(biāo)準(zhǔn)內(nèi)容可以由MFC的類來提供,MFC類為這些內(nèi)容提供了用戶接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法,程序員所要做的就是通過預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個(gè)輪廓,這將簡(jiǎn)化編程工作,大大的減少程序員編寫的代碼數(shù)量,使編程工作變得更加輕松容易。Winpcap簡(jiǎn)介Winpcap(windowspacketcapture)是Windows平臺(tái)下一個(gè)免費(fèi),公共的網(wǎng)絡(luò)訪問系統(tǒng)。開發(fā)Winpcap這個(gè)項(xiàng)目的目的在于為win32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。它提供了以下的各項(xiàng)功能:(1)捕獲原始數(shù)據(jù)報(bào),包括在共享網(wǎng)絡(luò)上各主機(jī)發(fā)送/接收的以及相互之間交換的數(shù)據(jù)報(bào);(2)在數(shù)據(jù)報(bào)發(fā)往應(yīng)用程序之前,按照自定義的規(guī)則將某些特殊的數(shù)據(jù)報(bào)過濾掉;(3)在網(wǎng)絡(luò)上發(fā)送原始的數(shù)據(jù)報(bào);(4)收集網(wǎng)絡(luò)通信過程中的統(tǒng)計(jì)信息。Winpcap的主要功能在于獨(dú)立于主機(jī)協(xié)議(如TCP/IP)而發(fā)送和接收原始數(shù)據(jù)報(bào)。也就是說,Winpcap不能阻塞、過濾或控制其他應(yīng)用程序數(shù)據(jù)報(bào)的發(fā)收,它僅僅只是監(jiān)聽共享網(wǎng)絡(luò)上傳送的數(shù)據(jù)報(bào)。Winpcap是Win32平臺(tái)下的數(shù)據(jù)包捕獲與網(wǎng)絡(luò)分析架構(gòu),由三個(gè)模塊構(gòu)成:NPF,packet.dll,wpcap.dll。前一個(gè)工作在內(nèi)核層,后兩個(gè)工作在用戶層。第一個(gè)模塊是內(nèi)核部分NPF(NetgroupPacketFilter),在Win95/98中它是一個(gè)VXD(虛擬設(shè)備驅(qū)動(dòng)程序文件)文件,在WinNT/Win2000下是一個(gè)SYS文件。它的主要功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動(dòng)地傳給用戶態(tài)模塊。當(dāng)然也添加了一些系統(tǒng)特定的標(biāo)志(比如時(shí)間戳管理)。這個(gè)過程中包括了一些操作系統(tǒng)特有的代碼。第二個(gè)模塊packet.dll用來在不同的Win32平臺(tái)下提供一個(gè)通用的公共的包驅(qū)動(dòng)接口。事實(shí)上,不同版本的Windows平臺(tái)在內(nèi)核層模塊和用戶進(jìn)程之間的接口不完全相同,packet.dll用于解決這些不同。提供了一套系統(tǒng)獨(dú)立的API(ApplicationProgrammingInterface應(yīng)用編程接口),調(diào)用packet.dll的程序能夠運(yùn)行在不同版本的Windows平臺(tái)上而無需重新編譯。packet.dll還有一些附加的功能。它可執(zhí)行一些低層操作:如:獲得網(wǎng)卡名字,動(dòng)態(tài)裝載驅(qū)動(dòng),得到比如機(jī)器的網(wǎng)絡(luò)掩碼、硬件沖突等一些系統(tǒng)特定的信息。第三個(gè)模塊wpcap.dll是系統(tǒng)無關(guān)的,它提供了更高層、抽象的函數(shù)。它包括了一些比如過濾器生成、用戶級(jí)緩沖等其它的高層函數(shù),增加了比如統(tǒng)計(jì)和包發(fā)送等更高級(jí)的特性。因此程序員能處理兩種類型的API:一套原始函數(shù)集,包含在packet.dll中,直接與內(nèi)核層調(diào)用匹配;另一套高層函數(shù)由wpcap.dll提供,便于用戶調(diào)用,功能更強(qiáng)大。程序員能隨意使用wpcap.dll,但只能在受限的環(huán)境中直接使用packet.dll.WWpcap.dllApplicationNPFDeviceDriverPacket.dllUserLevelKernelLevelNetworkPackets圖1WINPCAP結(jié)構(gòu)圖總的說來,Packet.dll直接映射了內(nèi)核的調(diào)用。Wpcap.dll提供了更加友好、功能更加強(qiáng)大的函數(shù)調(diào)用。Winpcap的具體結(jié)構(gòu)圖1所示:Winpcap是用NDIS(Windows的通信協(xié)議程序(比如TCP/IP)和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)器之間通信的規(guī)范)的,將自己注冊(cè)為一個(gè)協(xié)議處理驅(qū)動(dòng)。Wincap的使用非常方便,但是它有一個(gè)致命的缺陷就是只適用于共享式以太網(wǎng)絡(luò),對(duì)于交換式網(wǎng)絡(luò)下的數(shù)據(jù)則無能為力。經(jīng)過測(cè)試,在使用交換機(jī)連接的局域網(wǎng)下,Wincap只能監(jiān)聽到本網(wǎng)段內(nèi)的數(shù)據(jù),而對(duì)于來自其他網(wǎng)段的數(shù)據(jù)則無法監(jiān)聽,除非你把probe接到交換機(jī)之前或者接到交換機(jī)的console口上,不過那樣的弊端是顯而易見的,所以,Winpcap的應(yīng)用還是有局限性的。Winpcap結(jié)構(gòu)圖如下:圖2NPFdevicedriver基于信息捕獲的相關(guān)理論基礎(chǔ)TCP/IP協(xié)議TCP/IP(TransferContrcol/InternetProtocol)傳輸控制協(xié)議/網(wǎng)際協(xié)議起源于60年代末美國政府資助的一個(gè)分組交換網(wǎng)絡(luò)研究項(xiàng)目,到90年代已發(fā)展成為計(jì)算機(jī)之間最常應(yīng)用的組網(wǎng)形式。它是能夠在網(wǎng)絡(luò)中提供可靠的數(shù)據(jù)傳輸和無連接的數(shù)據(jù)報(bào)服務(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é)議族,它是一個(gè)真正的開放系統(tǒng)?,F(xiàn)已成為全球互聯(lián)網(wǎng)中的基礎(chǔ)?;赥CP/IP協(xié)議的網(wǎng)絡(luò)體系結(jié)構(gòu),TCP/IP協(xié)議分為四層如圖3所示,每一層分別負(fù)責(zé)不同的通信功能。應(yīng)用層Telnet、Ftp、Email等傳輸層TCP、UDP網(wǎng)絡(luò)層IP、ICMP、IGMP網(wǎng)絡(luò)接口層設(shè)備驅(qū)動(dòng)程序及接口卡圖3TCP/TP協(xié)議族的四個(gè)層次鏈路層:有時(shí)也稱作數(shù)據(jù)層或網(wǎng)絡(luò)接口層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序和計(jì)算機(jī)中對(duì)應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理任何傳輸媒介的物理接口細(xì)節(jié),它使用的協(xié)議為以太網(wǎng)協(xié)議。網(wǎng)絡(luò)層:有時(shí)也稱作互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動(dòng),例如分組的選路。在TCP/IP協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括IP(網(wǎng)際協(xié)議)、ICMP(因特網(wǎng)網(wǎng)間控制報(bào)文協(xié)議)以及IGMP(因特網(wǎng)組管理協(xié)議)。傳輸層:它主要為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信。TCP/IP協(xié)議族中,有兩個(gè)互不相同的傳輸協(xié)議:UDP(用戶數(shù)據(jù)報(bào)協(xié)議)、TCP(傳輸控制協(xié)議)。TCP為兩臺(tái)主機(jī)提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認(rèn)接收到的分組,設(shè)置發(fā)送最后確認(rèn)分組的超時(shí)時(shí)鐘等,由于運(yùn)輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細(xì)節(jié)。UDP則為應(yīng)用層提供一種非常簡(jiǎn)單的服務(wù)。它只是把稱作數(shù)據(jù)報(bào)的分組從一臺(tái)主機(jī)發(fā)送到另一臺(tái)主機(jī),但并不保證該數(shù)據(jù)報(bào)能到達(dá)另一端。任何必需的可靠性必須由應(yīng)用層來提供。應(yīng)用層:它負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。對(duì)于TCP/IP協(xié)議族,它提供Telnet(遠(yuǎn)程登錄協(xié)議)、FTP(文件傳輸協(xié)議)、SMTP(簡(jiǎn)單郵件傳送協(xié)議)、POP3(郵件接受協(xié)議)、SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)。通常應(yīng)用程序是一個(gè)用戶進(jìn)程,而下面的三層進(jìn)程則是一般在內(nèi)核中執(zhí)行的。應(yīng)用層關(guān)心的是應(yīng)用程序的細(xì)節(jié),它不關(guān)心數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸。下三層對(duì)應(yīng)用程序一無所知,但卻要處理所有的通信細(xì)節(jié)。在TCP/IP協(xié)議族中,有很多協(xié)議。TCP和UDP是兩種最為著名的運(yùn)輸層協(xié)議,二者都使用IP作為網(wǎng)絡(luò)層協(xié)議。雖然TCP使用不可靠的IP服務(wù),但它卻提供一種可靠的運(yùn)輸層服務(wù)。除了以上提到的協(xié)議,還有下面幾個(gè)協(xié)議:IPARP(地址解析協(xié)議)、RARP(逆向地址解析協(xié)議)、動(dòng)態(tài)選路協(xié)議(RIP、OSPF、BGP、CIDR)、DNS(域名系統(tǒng))、TFTP(簡(jiǎn)單文件傳送協(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é)議用它與路由器之間交換錯(cuò)誤報(bào)文或其它控制信息。網(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é)議棧中,然后逐個(gè)通過每一層直到被當(dāng)作一串比特流送入網(wǎng)絡(luò)。然后逐個(gè)通過每一層直到被當(dāng)作一串比特流送入網(wǎng)絡(luò)。其中每一層對(duì)收到的數(shù)據(jù)都要增加一些首部信息(有時(shí)還要增加尾部信息)。TCP傳給IP的數(shù)據(jù)單元稱作TCP報(bào)文段或簡(jiǎn)稱為TCP段(TCPsegment)。IP傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作IP數(shù)據(jù)報(bào)。通過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(Frame)。這就是通常說的數(shù)據(jù)的封裝過程,如圖5所示。圖5數(shù)據(jù)進(jìn)入?yún)f(xié)議棧時(shí)的封裝過程當(dāng)目的主機(jī)收到一個(gè)以太網(wǎng)數(shù)據(jù)幀時(shí),數(shù)據(jù)就開始從協(xié)議棧中由底向上升,同時(shí)去掉各層協(xié)議加上的報(bào)文首部。每層協(xié)議盒都要去檢查報(bào)文首部中的協(xié)議標(biāo)識(shí),以確定接收數(shù)據(jù)的上層協(xié)議。這個(gè)過程稱作分用(Demultiplexing),圖6顯示了該過程是如何發(fā)生的。圖6數(shù)據(jù)幀的分用過程IP協(xié)議IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)報(bào)格式傳輸。IP提供不可靠、無連接的數(shù)據(jù)報(bào)傳送服務(wù)。IP數(shù)據(jù)報(bào)的首部信息如圖7:圖7IP數(shù)據(jù)報(bào)格式及首部中的各字段IP各域的含義如下:版本:當(dāng)前IP協(xié)議的版本號(hào),本論文采用的版本號(hào)為4;首部長度:以32bit為單位的包頭長度;服務(wù)類型:規(guī)定對(duì)本數(shù)據(jù)報(bào)的處理方式,比如優(yōu)先權(quán)等;總長:以Byte為單位的整個(gè)IP數(shù)據(jù)報(bào)長度;標(biāo)識(shí):信源主機(jī)賦予每個(gè)IP數(shù)據(jù)報(bào)的唯一標(biāo)識(shí)符號(hào),用于控制分片及其重組;標(biāo)志和片偏移:同樣用于控制分片及其重組;生存時(shí)間:設(shè)置本數(shù)據(jù)報(bào)的最大生存時(shí)間,以秒為單位;協(xié)議:表示創(chuàng)建本IP數(shù)據(jù)報(bào)數(shù)據(jù)區(qū)數(shù)據(jù)的高層協(xié)議的類型,如TCP,UDP等;頭標(biāo)校驗(yàn)和:用于保證頭標(biāo)數(shù)據(jù)的完整性;源IP地址和目的IP地址:分別指發(fā)送本數(shù)據(jù)報(bào)的主機(jī)IP地址和接受本數(shù)據(jù)報(bào)的主機(jī)的IP地址;選項(xiàng):用于控制和測(cè)試,是IP數(shù)據(jù)報(bào)中可選的部分,包含“源路徑”、“路徑記錄”、“時(shí)間戳”等幾種類型。TCP協(xié)議是網(wǎng)絡(luò)中應(yīng)用最為廣泛的協(xié)議,許多的應(yīng)用層協(xié)議都是在建立在TCP協(xié)議之上的。TCP首部的各字段如圖8所示:IP首部IP首部 TCP首部TCP數(shù)據(jù)IP數(shù)據(jù)報(bào)TCP報(bào)文段20字節(jié)20字節(jié)圖8TCP數(shù)據(jù)在IP數(shù)據(jù)報(bào)中的封裝TCP協(xié)議頭部信息如下:源端口:發(fā)送端TCP端口號(hào)。目的端口:接收端TCP端口號(hào);序號(hào):指出段中數(shù)據(jù)在發(fā)送端數(shù)據(jù)流中的位置;確認(rèn)號(hào):指出本機(jī)希望下一個(gè)接收的字節(jié)的序號(hào);頭標(biāo)長度:以32bit為單位的段頭標(biāo)長度,是針對(duì)變長的“選項(xiàng)”域設(shè)計(jì)的;碼位:指出段的目的與內(nèi)容,不同的各碼位置位有不同的含義;窗口:用于通告接收端接收緩沖區(qū)的大小;校驗(yàn)和:這是可選域,置0表示未選,全1表示校驗(yàn)和為伍緊急指針:當(dāng)碼位的URG置位時(shí),指出緊急指針的序號(hào)。UDP協(xié)議是英文UserDatagramProtocol的縮寫,即用戶數(shù)據(jù)報(bào)協(xié)議,主要用來支持那些需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議從問世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使是在今天,UDP仍然不失為一項(xiàng)非常實(shí)用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。UDP數(shù)據(jù)報(bào)各域的意義與TCP段中相應(yīng)的域相同。只有校驗(yàn)和有些不同,除UDP數(shù)據(jù)報(bào)本身外,它還覆蓋一個(gè)附加的“偽頭標(biāo)”。這個(gè)偽頭標(biāo)來自于IP報(bào)頭,包括:源IP地址、信宿IP地址、協(xié)議類型、UDP長度及填充域。UDP首部的各字段圖9所示:圖9UDP首部需求分析功能需求隨著個(gè)人計(jì)算機(jī)和互聯(lián)網(wǎng)的普及,越來越多的人開始使用網(wǎng)絡(luò)這個(gè)媒介來發(fā)送,接收信息,計(jì)算機(jī)網(wǎng)絡(luò)給人們生產(chǎn)和生活帶來了巨大的便利。但是由于網(wǎng)絡(luò)是一個(gè)面向大眾的開放系統(tǒng),對(duì)數(shù)據(jù)信息的保密和系統(tǒng)的安全性考慮得并不完備,存在著許多的安全隱患。而有的人,就利用這些隱患,通過網(wǎng)絡(luò)來發(fā)送一些包含色情,反動(dòng)等不良內(nèi)容的信息,達(dá)到擾亂正常社會(huì)秩序的目的。網(wǎng)絡(luò)的安全形勢(shì)日趨嚴(yán)峻。因此,現(xiàn)在在Internet安全隱患中扮演重要角色之一的網(wǎng)絡(luò)數(shù)據(jù)抓包軟件受到越來越大的關(guān)注。本軟件的設(shè)計(jì)就是為了達(dá)到基本的維護(hù)網(wǎng)絡(luò)安全的作用,對(duì)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)進(jìn)行捕獲,然后從中得到所有的網(wǎng)絡(luò)數(shù)據(jù)包,并對(duì)其進(jìn)行簡(jiǎn)單的分析操作。在網(wǎng)絡(luò)入侵取證系統(tǒng)中,對(duì)網(wǎng)絡(luò)上傳送的數(shù)據(jù)包進(jìn)行有效的監(jiān)聽即捕獲包是目前取證的關(guān)鍵技術(shù),只有進(jìn)行高效的數(shù)據(jù)包捕獲,網(wǎng)絡(luò)管理員才能對(duì)所捕獲的數(shù)據(jù)進(jìn)行一系列的分析,從而進(jìn)行可靠的網(wǎng)絡(luò)安全管理。IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)報(bào)格式傳輸。這些數(shù)據(jù)類型中又以TCP和UDP兩種數(shù)據(jù)類型為多數(shù)。所以本軟件需要設(shè)計(jì)出按TCP協(xié)議類型和按UDP協(xié)議類型來過濾網(wǎng)絡(luò)中的數(shù)據(jù)。同時(shí)本軟件還還應(yīng)當(dāng)具有一種過濾功能,那就是當(dāng)我們知道某個(gè)IP地址發(fā)送的數(shù)據(jù)包信息都是屬于一些不良,反動(dòng)等等內(nèi)容的信息,那么,我們可以通過在軟件上輸出這臺(tái)主機(jī)IP地址,來過濾從這臺(tái)主機(jī)上發(fā)送的所有TCP和UDP協(xié)議類型的數(shù)據(jù)。從而達(dá)到信息過濾的要求。性能要求由于本設(shè)計(jì)是安裝在個(gè)人電腦上,所以要求用戶界面簡(jiǎn)潔,友好,方便使用和操作。網(wǎng)絡(luò)上數(shù)據(jù)包的捕獲是入侵檢測(cè)系統(tǒng)的基礎(chǔ),關(guān)鍵是要保證高速的抓包和低的丟包率。一方面,網(wǎng)絡(luò)檢測(cè)部分的數(shù)據(jù)源是網(wǎng)絡(luò)上的數(shù)據(jù)包,需要經(jīng)過捕獲后方可以提交給分析系統(tǒng);另一方面,捕獲數(shù)據(jù)包效率的高低直接影響著網(wǎng)絡(luò)探測(cè)部分的性能的好壞,如果發(fā)生丟包現(xiàn)象,則有可能丟掉的包就是攻擊包。在保證高速的抓包和低的丟包率的同時(shí),要還要求程序能有較強(qiáng)的穩(wěn)定性。一款好的信息過濾軟件,都是將在一個(gè)長時(shí)間工作的環(huán)境中運(yùn)行。如果不能保證較強(qiáng)的穩(wěn)定性的話,那么軟件對(duì)信息過濾的效率和功能有很大的局限性,對(duì)數(shù)據(jù)信息過濾就是失敗的。那么這款軟件就不會(huì)具備同其他同類似軟件的競(jìng)爭(zhēng)力,更不會(huì)有市場(chǎng),那么它就注定成為一款失敗的軟件。試想一下,假如,當(dāng)用戶使用這款軟件時(shí),軟件占用了太多的系統(tǒng)資源而導(dǎo)致用戶對(duì)電腦的其他操作都很難進(jìn)行,那么,誰還會(huì)用這款軟件呢?所以,該軟件還應(yīng)該具備一種特點(diǎn)就是:低的系統(tǒng)資源占用率。局域網(wǎng)信息捕獲器的設(shè)計(jì)功能概述通過前面的敘述可以知道,這款軟件具有的功能,那就是:能夠分別捕獲局域網(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ò)管理員使用和進(jìn)一步的分析。系統(tǒng)流程圖如下圖:圖10系統(tǒng)流程圖本系統(tǒng)包括三個(gè)基本模塊,分別是數(shù)據(jù)包捕獲模塊,數(shù)據(jù)分析模塊和數(shù)據(jù)庫模塊。其中數(shù)據(jù)包捕獲模塊的功能是:利用Winpcap控件,通過網(wǎng)卡設(shè)備從網(wǎng)絡(luò)中捕獲數(shù)據(jù)包;數(shù)據(jù)分析模塊的功能是:主要實(shí)現(xiàn)數(shù)據(jù)的解析,從網(wǎng)絡(luò)適配器中捕獲到的數(shù)據(jù)的為原始數(shù)據(jù)(rawdata),這些原始數(shù)據(jù)為二進(jìn)制格式,必須轉(zhuǎn)化為能比較好明白的格式,這就要求將這些原始數(shù)據(jù)能按照網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)木唧w格式來保存,主要為了能較好的讀懂相關(guān)的信息,以便使用者分析;數(shù)據(jù)庫模塊的功能是:經(jīng)過前兩個(gè)模塊處理后的數(shù)據(jù),現(xiàn)在已經(jīng)轉(zhuǎn)化成了對(duì)我們有用的信息了,而這些信息不可能一直讓他存放在內(nèi)存中,那么就需要在數(shù)據(jù)庫中建立相應(yīng)的表,把這些信息存貯在這些數(shù)據(jù)庫表的相應(yīng)列名中,以便使用者處理、使用。系統(tǒng)功能模塊的設(shè)計(jì)數(shù)據(jù)包捕獲模塊數(shù)據(jù)包捕獲模塊主要用Winpcap軟件實(shí)現(xiàn),模塊的設(shè)計(jì)思想遵循Winpcap捕獲數(shù)據(jù)包的流程,流程分三步:查找設(shè)備,打開設(shè)備和捕獲數(shù)據(jù)的函數(shù)。利用WinPcap結(jié)構(gòu)提供的wpcap.dll來開發(fā)實(shí)現(xiàn)數(shù)據(jù)包捕獲程序。流程圖如下:圖11數(shù)據(jù)捕獲模塊流程圖這里給出其主要過程:先確定要在其上進(jìn)行監(jiān)測(cè)的網(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è)備出錯(cuò)","提示"); return;}接下來打開所獲得的網(wǎng)絡(luò)適配器,其中pcap_open函數(shù)的參數(shù)1為上面獲得的NIC名稱,參數(shù)2定義了網(wǎng)絡(luò)監(jiān)測(cè)程序所捕捉的最大字節(jié)數(shù)。參數(shù)3指示是否將網(wǎng)絡(luò)適配器設(shè)為混雜模式,PCAP_OPENFLAG_PROMISCUOUS表示工作方式為混雜模式。參數(shù)4為捕獲時(shí)間限制,單位為毫秒。參數(shù)5為錯(cuò)誤信息緩存。該函數(shù)負(fù)責(zé)按照用戶指定參數(shù)和其它系統(tǒng)默認(rèn)值初始化WinPcap,并返回會(huì)話句柄//打開設(shè)備 adhandle=pcap_open(d->name,65536, PCAP_OPENFLAG_PROMISCUOUS, 1000,NULL,errbuf);當(dāng)網(wǎng)卡已打“打開”并且具體配置好后,就可以進(jìn)入捕獲了。考慮到系統(tǒng)資料的占用等問題,利用了線程來解決此問題,捕獲數(shù)據(jù)是新建一個(gè)線程,來實(shí)現(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)建一個(gè)線程來處理數(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,"線程開始捕獲數(shù)據(jù)."); while((res=pcap_next_ex(m_dlg->adhandle,&header,&pkt_data))>=0) { if(res==0)//超時(shí) continue; //處理捕獲的數(shù)據(jù)包 m_dlg->SaveDate(header,pkt_data); } return1;}數(shù)據(jù)分析模塊實(shí)現(xiàn)數(shù)據(jù)分析模塊的設(shè)計(jì)思想是將Winpcap捕獲到的數(shù)據(jù)對(duì)應(yīng)網(wǎng)絡(luò)數(shù)據(jù)包的格式進(jìn)行初始化,取得具體的值。通過相關(guān)的轉(zhuǎn)換函數(shù)得到相關(guān)的信息,具體的函數(shù)原型如下:(相關(guān)格式見第二章)voidSaveDate(structpcap_pkthdr*header,constu_char*pkt_data);將網(wǎng)絡(luò)中捕獲的數(shù)據(jù)包進(jìn)行格式化數(shù)據(jù)分析模塊的主要實(shí)現(xiàn)數(shù)據(jù)的解析。從網(wǎng)絡(luò)適配器中捕獲數(shù)據(jù)的為原始數(shù)據(jù)(rawdata),這些原始數(shù)據(jù)為二進(jìn)制格式,必須轉(zhuǎn)化為能比較好明白的格式,這就要求將這些原始數(shù)據(jù)能按照網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)木唧w格式來保存,主要為了能較好的讀懂相關(guān)的信息,以便使用者分析。其流程圖如下:圖12數(shù)據(jù)包分析流程圖數(shù)據(jù)分析模塊實(shí)現(xiàn)時(shí),本系統(tǒng)提取的數(shù)據(jù)包中主要的一些信息,如IP數(shù)據(jù)包中的IP地址,端口信息等。具體代碼下://數(shù)據(jù)包分析和保存 ipheader*ih; tcp*tcph; udp*udph; CStringtemp; intchang;//時(shí)間 structtm*ltime; ltime=localtime(&header->ts.tv_sec); strftime(timestr,sizeof(timestr),"%H:%M:%S",ltime);//IP ih=(ipheader*)(pkt_data+14);//ip頭 intiplen=(ih->ver_ihl&0xf)*4; itoa(iplen,IPLength,10); sprintf(IPDateLength,"%d",header->len);//IP數(shù)據(jù)包長度 sprintf(TTL,"%d",ih->ttl);//生存時(shí)間 sprintf(SIP,"%d.%d.%d.%d",ih->saddr.byte1,ih->saddr.byte2,ih->saddr.byte3,ih->saddr.byte4); sprintf(DIP,"%d.%d.%d.%d",ih->daddr.byte1,ih->daddr.byte2,ih->daddr.byte3,ih->daddr.byte4); u_shortu_sport,u_dport; if(ih->proto==6)//這里是TCP數(shù)據(jù)包 { strcpy(proto,"TCP");//協(xié)議類型 tcph=(tcp*)((u_char*)ih+iplen); u_sport=ntohs(tcph->sport);//源端口 u_dport=ntohs(tcph->dport);//目的端口// sprintf(Sport,"%d",tcph->sport);//源端口// sprintf(Dport,"%d",tcph->dport);//目的端口 chang=(tcph->other^0x0fff)/1024; sprintf(tcp_hLength,"%d",chang);//TCP首部長度 sprintf(date,"%X",tcph->content);//TCP數(shù)據(jù) } elseif(ih->proto==17)//這里是UDP數(shù)據(jù)包 { strcpy(proto,"UDP"); udph=(udp*)((u_char*)ih+iplen); u_sport=ntohs(udph->sport);//源端口 u_dport=ntohs(udph->dport);//目的端口// sprintf(Sport,"%d",udph->sport);//源端口// sprintf(Dport,"%d",udph->dport);//目的端口 sprintf(udplength,"%d",udph->len);//TCP首部長度 sprintf(date,"%X",udph->content);//TCP數(shù)據(jù) } sprintf(Sport,"%d",u_sport);//源端口 sprintf(Dport,"%d",u_dport);//目的端口 AccessWrite(ih->proto);}數(shù)據(jù)庫模塊的實(shí)現(xiàn)1.把捕獲到的數(shù)據(jù)包寫入數(shù)據(jù)庫中的操作:相關(guān)數(shù)據(jù)信息捕獲分析完畢后,接下來就是對(duì)數(shù)據(jù)的保存。本系統(tǒng)使用的是ado數(shù)據(jù)庫連接方式,ado是Microsoft開發(fā)的一個(gè)連接數(shù)據(jù)庫方式,由于本系統(tǒng)的使用平臺(tái),開發(fā)環(huán)境都為Microsoft的軟件,所以本系統(tǒng)使用ado方式。連接數(shù)據(jù)庫代碼如下:try { m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=lj.mdb","","",adModeUnknown);///連接數(shù)據(jù)庫 } catch(_com_errore)///捕捉異常 { AfxMessageBox("數(shù)據(jù)庫連接失敗,確認(rèn)數(shù)據(jù)庫lj.mdb是否在當(dāng)前路徑下!"); returnFALSE; } returnTRUE;數(shù)據(jù)包信息寫入數(shù)據(jù)庫代碼如下:AccessWrite(intType){ …… if(m_bOneIP) //指定IP地址模式 { m_pRecordset.CreateInstance(__uuidof(Recordset)); m_pRecordset->Open("SELECT*FROM目標(biāo)IP",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); try { m_pRecordset->AddNew(); m_pRecordset->PutCollect("時(shí)間",_variant_t(timestr)); m_pRecordset->PutCollect("IP首部長度",_variant_t(IPLength)); m_pRecordset->PutCollect("IP數(shù)據(jù)包長度",_variant_t(IPDateLength)); m_pRecordset->PutCollect("生存時(shí)間",_variant_t(TTL)); m_pRecordset->PutCollect("協(xié)議類型",_variant_t(proto)); m_pRecordset->PutCollect("源IP地址",_variant_t(SIP)); m_pRecordset->PutCollect("目的IP地址",_variant_t(DIP)); m_pRecordset->PutCollect("源端口",_variant_t(Sport)); m_pRecordset->PutCollect("目的端口",_variant_t(Dport)); }…… m_pRecordset->Update(); } catch(_com_error*e) { AfxMessageBox(e->ErrorMessage()); } return; } }2.查看寫入到數(shù)據(jù)庫中的數(shù)據(jù)包: m_pRecordset.CreateInstance(__uuidof(Recordset)); m_list.DeleteAllItems(); if(fangshi.Compare("TCP表單")==0) { m_list.GetColumn(10,&pColumn); pColumn.pszText="TCP首部長度"; m_list.SetColumn(10,&pColumn); m_list.GetColumn(11,&pColumn); pColumn.pszText="TCP數(shù)據(jù)"; m_list.SetColumn(11,&pColumn); try { m_pRecordset->Open("SELECT*FROMTCP", m_pConnection.GetInterfacePtr(),//獲取庫接庫的IDispatch指針 adOpenDynamic, adLockOptimistic, adCmdText); } catch(_com_error*e) { AfxMessageBox(e->ErrorMessage()); return; }//讀取數(shù)據(jù) try { if(!m_pRecordset->BOF) m_pRecordset->MoveFirst(); else { AfxMessageBox("表內(nèi)數(shù)據(jù)為空."); return; } //讀入庫中各字段并加入列表框中 while(!m_pRecordset->rsEOF) { var=m_pRecordset->GetCollect("編號(hào)"); if(var.vt!=VT_NULL) { str=_com_util::ConvertBSTRToString((_bstr_t)var);//_variant_t轉(zhuǎn)字符串 m_list.InsertItem(num-1,str); m_list.SetItemText(num-1,0,str); } …用戶界面模塊根據(jù)上面三個(gè)模塊的分析,直接與用戶相關(guān)聯(lián)的操作有:為Winpcap指定一個(gè)具體的網(wǎng)絡(luò)適配器,選擇需要過濾的數(shù)據(jù)類型或者想要過濾的特定IP地址發(fā)送的TCP和UDP信息。在為Winpcap指定一個(gè)具體的網(wǎng)絡(luò)適配器方面,有幾種方式可以實(shí)現(xiàn)。1.通過EDIT控件讓用戶輸入具體的網(wǎng)卡設(shè)備。2.新建一個(gè)下拉列表框,讓用戶選擇具體的網(wǎng)卡設(shè)備。考慮到用戶使用群的方便、簡(jiǎn)潔,同時(shí)Winpcap提供了查找網(wǎng)絡(luò)設(shè)備的函數(shù),故選擇了第二種方式來實(shí)現(xiàn)本功能。在為程序指定具體的捕獲方式時(shí),在程序中分別設(shè)置了三個(gè)BOOL型變量來分別控制所選中的狀態(tài)。通過BOOL型變量來控制程序分析數(shù)據(jù)報(bào)方式。當(dāng)選中IP這個(gè)單選框是,需要用戶手動(dòng)輸入需要捕獲的源IP地址。具體界面如下:圖13主界面外觀用戶界面第一行為軟件找網(wǎng)卡設(shè)備,設(shè)計(jì)成的是一個(gè)下拉列表,能夠把找到的網(wǎng)卡信息都列出來。默認(rèn)選中列表第一項(xiàng)。第二列為3個(gè)可選擇框,它們是TCP,UDP和IP。分別對(duì)應(yīng)的是按TCP協(xié)議類型,UDP協(xié)議類型和特定IP地址來捕獲數(shù)據(jù)信息。其中,IP地址這一欄,默認(rèn)的是本地主機(jī)的IP地址。3種過濾類型中默認(rèn)選中的是TCP類型。最后一列是4個(gè)按鈕。分別是開始,停止,顯示數(shù)據(jù)和退出。單擊開始按鈕,系統(tǒng)開始執(zhí)行捕獲相應(yīng)的數(shù)據(jù)包信息,顯示捕獲數(shù)據(jù)包的個(gè)數(shù),并且將捕獲出來的信息寫入ACCESS數(shù)據(jù)庫;單擊停止按鈕,系統(tǒng)停止捕獲數(shù)據(jù)包信息,并且斷開與數(shù)據(jù)庫的連接;單擊顯示數(shù)據(jù)按鈕,會(huì)彈出一個(gè)消息框,消息框里有一個(gè)下拉列表,可以選擇用戶想要查看的數(shù)據(jù)庫中的3張不同的表單,選中其中一項(xiàng),會(huì)將數(shù)據(jù)庫中的相應(yīng)表中的相應(yīng)列和相應(yīng)項(xiàng)顯示在下面的消息框中;而單擊退出按鈕,則是退出該軟件。圖14查看選項(xiàng)局域網(wǎng)信息捕獲測(cè)試和測(cè)試結(jié)果測(cè)試環(huán)境在編寫本軟件前,作者首先確定了所使用的語言VC++。由于VC++語言不能訪問底層的網(wǎng)絡(luò)數(shù)據(jù),所以使用Winpcap來幫助實(shí)現(xiàn)對(duì)底層網(wǎng)絡(luò)數(shù)據(jù)的訪問。在此,本軟件必須首先安裝Winpcap,VC6.0++編程環(huán)境中設(shè)置好相關(guān)配置,值得注意的是,Winpcap都是開源的,所以在很多地方可以查詢到它們的使用方式。由于使用了開源軟件Winpcap,使用者在使用本軟件的時(shí)候,需要安裝Winpcap。具體的實(shí)驗(yàn)環(huán)境:個(gè)人電腦2臺(tái)或2臺(tái)以上,交換機(jī)一個(gè),網(wǎng)線若干,電腦通過交換機(jī)組成一個(gè)局域網(wǎng)環(huán)境。測(cè)試結(jié)果運(yùn)行本軟件,選擇捕獲數(shù)據(jù)包的網(wǎng)絡(luò)適配器即網(wǎng)卡,單擊開始,軟件開始捕獲數(shù)據(jù)包:圖15開始捕獲數(shù)據(jù)包圖16停止捕獲數(shù)據(jù)包測(cè)試結(jié)果如下:圖17TCP表圖18UDP表圖19源IP地址表測(cè)試結(jié)果顯示設(shè)計(jì)基本達(dá)到了預(yù)想的功能,能夠?qū)崿F(xiàn)對(duì)TCP協(xié)議類型,UDP協(xié)議類型的捕獲和特定IP地址發(fā)送的數(shù)據(jù)包信息的捕獲。結(jié)論經(jīng)過三個(gè)多月的努力,局域網(wǎng)抓包軟件終于完成了。在整個(gè)軟件的開發(fā)過程中,本人經(jīng)歷了對(duì)VC++開發(fā)環(huán)境的熟悉、網(wǎng)絡(luò)基本知識(shí)的進(jìn)一步熟悉、Winpcap等相關(guān)技術(shù)的學(xué)習(xí)和研究,對(duì)本軟件開發(fā)方案的選擇以及信息捕獲的相關(guān)知識(shí)的學(xué)習(xí)。本次畢業(yè)設(shè)計(jì)實(shí)現(xiàn)了局域網(wǎng)信息的捕獲,主要功能是對(duì)局域網(wǎng)中按TCP協(xié)議類型,UDP協(xié)議類型和特定IP地址對(duì)數(shù)據(jù)包進(jìn)行捕獲,然后經(jīng)過一系列簡(jiǎn)單的分析和處理,將其捕獲的數(shù)據(jù)信息存入數(shù)據(jù)庫,并且可提供給用戶使用。在這次編程的過程中,作者查閱了大量的書籍,在網(wǎng)上也查了不少資料。由于時(shí)間和技術(shù)等多方面因素,仍然有些部分想要設(shè)計(jì)的功能沒能編碼實(shí)現(xiàn)。本軟件也存在一些不盡人意的地方,功能也比較簡(jiǎn)單,這些都是有待完善的地方。通過本次畢業(yè)設(shè)計(jì),我充分體會(huì)到理論與實(shí)踐之間的重要聯(lián)系和團(tuán)隊(duì)合作的重要性。在實(shí)踐的過程中我學(xué)到了很多的知識(shí),增強(qiáng)了動(dòng)手和解決實(shí)際問題的能力。不僅對(duì)信息過濾技術(shù)的應(yīng)用有了進(jìn)一步的了解,也對(duì)C語言的運(yùn)用更為熟練了。同時(shí)我也發(fā)現(xiàn)了自身的許多不足之處,有待在將來的工作中進(jìn)一步的學(xué)習(xí)和完善。軟件雖然實(shí)現(xiàn)了一些功能但是還是存在很多的問題和缺陷,不過我還是通過完成畢業(yè)設(shè)計(jì)使自己的能力得到很大的提高,并且充分體會(huì)到理論與實(shí)踐之間的重要聯(lián)系和團(tuán)隊(duì)合作的重要性,進(jìn)一步的了解了C語言和網(wǎng)絡(luò)基本知識(shí)。經(jīng)過大學(xué)四年的學(xué)習(xí)生活,畢業(yè)設(shè)計(jì)不僅是對(duì)我們所學(xué)知識(shí)的綜合體現(xiàn),而且是對(duì)諸多方面的一種總結(jié),讓我們更清楚的認(rèn)識(shí)到了自己的優(yōu)點(diǎn)和不足之處,教育我們能積極的面對(duì)以后的工作和生活,成為一個(gè)能為社會(huì)做貢獻(xiàn)的現(xiàn)代化人才。參考文獻(xiàn)[1]AndrewS.Tanenbaum[美國].計(jì)算機(jī)網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,1998。[2]W.RichardStevens[美國].TCP/IP詳解卷1:協(xié)議[M].北京:機(jī)械工業(yè)出版社,2000。[3]DouglasE.Comer[美國].TCP/IP網(wǎng)絡(luò)互連技術(shù)[M].北京:清華大學(xué)出版社,1998。[4]陳堅(jiān),陳偉.Visualc++網(wǎng)絡(luò)高級(jí)編程[M].北京:人民郵電出版社,2001。[5]李光明.Visualc++6.0經(jīng)典實(shí)例大制作[M].北京:中國人事出版社,2000。[6]鄭莉,董淵.C++語言程序設(shè)計(jì)(第二版)[M].北京:清華大學(xué)出版社,2001。[7]張仕斌.網(wǎng)絡(luò)安全技術(shù)[M].北京:清華大學(xué)出版社,2004年。致謝本文是在劉永紅老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識(shí)和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對(duì)順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!感謝我的同學(xué)在課題研究初期給予的幫助,正是因?yàn)樵谒膸椭抡n題才得以很好的展開,有了一個(gè)很好的開端!使我的課題得以順利地完全地達(dá)到了預(yù)期的目標(biāo),并使論文最終得以順利地完成。在論文完成過程中,本人還得到了其他老師和許多同學(xué)的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評(píng)審本文的各位專家、老師表示衷心的感謝!作者簡(jiǎn)介姓名:李健 性別:男出生年月:1984年3月 民族:漢E-mail:phoenixjay@163.com聲明本論文的工作是2007年2月至2007年6月在成都信息工程學(xué)院網(wǎng)絡(luò)工程系完成的。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書而使用過的材料。除非另有說明,本文的工作是原始性工作關(guān)于學(xué)位論文使用權(quán)和研究成果知識(shí)產(chǎn)權(quán)的說明:本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括:(1)學(xué)校有權(quán)保管并向有關(guān)部門遞交學(xué)位論文的原件與復(fù)印件。(2)學(xué)校可以采用影印、縮印或其他復(fù)制方式保存學(xué)位論文。(3)學(xué)??梢詫W(xué)術(shù)交流為目的復(fù)制、贈(zèng)送和交換學(xué)位論文。(4)學(xué)校可允許學(xué)位論文被查閱或借閱。(5)學(xué)校可以公布學(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后遵守此規(guī)定)。除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。特此聲明!作者簽名:年月日"That?That'stheswimminghole.""Whydon'twegooverthere?I'lltellyouastory."Thepromiseofastorywasnotenoughtokeepheroutofthewater.Hedidn'tknowifthatwasgoodorbad.Heknewshewassmart,areader,andshehadanimagination.Butshewasalsoactive.Thatpullwastoostrongforhim.Hesatfarfromthewater,undersomebushes,andwatchedherswimwiththethreeotherchildrenstillintheparkthislateintheevening. Maybeshewouldcomebacktohim,andmaybeshewouldn't.Itwouldn'tchangehislifeeitherway,butitmightchangehers. Sheemergeddrippingandinfinitelycleanerfromthemurkywater.Shedressedagaininherrandomscraps,forwhatevergooditdidher,andcametohim,shivering. "I'mcold,"shesaid. "Here."Hetookoffhisjacket.Shelookedathishandsashewrappeditaroundher,andshereachedoutandtouchedthehardnessofhisshoulder. "Yousuremustbestrong,"shecommented. "Prettystrong.Iworkhard,beingapusher." "Justwhatisapusher?"shesaid,andstifledayawn. "Comesitonmylap,andI'lltellyou."Hedidtellher,anditwasaverygoodstorythatnoadventurouschildcouldresist.Hehadpracticedthatstory,refinedit,tolditmanytimesintoarecorderuntilhehadtherhythmsandcadencesjustright,untilhefoundjusttherightwordsnottoodifficultwords,butwordswithsomefireandjuiceinthem. Andoncemorehegrewencouraged.Shehadbeentiredwhenhestarted,buthegraduallycaughtherattention.Itwaspossiblenoonehadevertoldherastoryinquitethatway.Shewasusedtosittingbeforethescreenandhavingastoryshovedintohereyesandears.Itwassomethingnewtobeabletointerruptwithquestionsandgetanswers.Evenreadingwasnotlikethat.Itwastheoraltraditionofstorytelling,anditcouldstillmesmerizethenthgenerationoftheelectronicage. "Thatsoundsgreat,"shesaid,whenshewassurehewas.through. "Youlikedit?" "1reallytrulydid.1thinkIwanttobeapusherwhenIgrowup.Thatwasareallyneatstory." "Well,that'snotactuallythestoryIwasgoingtotellyou.That'sjustwhatit'sliketobeapusher." "Youmeanyouhaveanotherstory?" "Sure."Helookedathiswatch."ButI'mafraidit'sgettinglate.It'salmostdark,andeverybody'sgonehome.You'dprobablybettergotoo." Shewasinagony,tornbetweenwhatshewassupposedtodoandwhatshewanted.Itreallyshouldbenocontest,ifshewaswhohethoughtshewas. "Well...but-butI'llcomebackheretomorrowandyou-' Hewasshakinghishead. "Myshipleavesinthemorning,"hesaid."There'snotime." "Thentellmenow!Icanstayout.Tellmenow.Pleasepleaseplease?" Hecoylyresisted,harrumphed,protested,butintheendallowedhimselftobeseduced.Hefeltverygood.Hehadherlikeafive-poundtroutonatwenty-poundline.Itwasn'tsporting.But,then.hewasn'tplayingagame.Soatlasthegottohisspecialty. Hesometimeswishedhecouldclaimthestoryforhisown.butthefactwashecouldnotmakeupstories.Henolongertriedto.Instead,hecribbedfromeveryfairytaleandfantasystoryhecouldfind.Ifhehadagenius,itwasinadaptingsomeoftheelementstofittheworldsheknew-whilekeepingitstrangeenoughtoenthrallher-andinad-libbingtheendtopersonalizeit. Itwasawonderfultalehetold.Ithadenchantedcastlessittingonmountainsofglass,moistcavernsbeneaththesea,fleetsofstarships,andshiningridersastridehorsesthatflewthegalaxy.Therewereevilaliencreatures,andotherswithmuchgoodinthem.Thereweredruggedpotions.Scaledbeastsroaredoutofhyperspacetodevourplanets. AmidalltheturmoilstrodethePrinceandPrincess.Theygotintofrightfuljamsandhelpedeachotheroutofthem. Thestorywasneverquitethesame.Hewatchedhereyes.Whentheywandered,hethrewawaywholechunksofstory.Whentheywidened,heknewwhatpartstopluginlater.Hetailoredittoherreactions. Thechildwassleepy.Soonerorlatershewouldsurrender.Heneededherinatrancestate,neitherawakenorasleep.Thatwaswhenthestorywouldend....andthoughthehealerslaboredlongandhard,theycouldnotsavethePrincess.Shediedthatnight,farfromherPrince.", Hermouthwasalittleroundo.Storieswerenotsupposedtoendthatway. "Isthatall?ShediedandsheneversawthePrinceagain?" "Well,notquiteall.Buttherestofitprobablyisn'ttrue,andIshouldn'ttellittoyou."Ianfeltpleasantlytired.Histhroatwasalittleraw,makinghimhoarse.Radiantwasawarmweightonhislap. "Youhavetotellme,youknow,"shesaidreasonably.Hesupposedshewasright.Hetookadeepbreath. "Allright.Atthefuneral,allthegreatestpeoplefromthatpartofthegalaxywereinattendance.AmongthemwasthegreatestSorcererwhoeverlived.Hisname...butIreallyshouldn'ttellyouhisname.I'msurehe'dbeverycrossifIdid."ThisSorcererpassedbythePrincess'sbier...that'sa-""Iknow,Iknow,Ian.Goon!" "Suddenlyhefrownedandleanedoverherpaleform.'Whatisthis?'hethundered.'Whywas1nottold?'Everyonewasveryconcerned.ThisSorcererwasadangerousman.Onetimewhensomeoneinsultedhimhemadeaspellthatturnedeveryone'sheadsbackwardssotheyhadtowalkaroundwithrearviewmirrors.Nooneknewwhathewoulddoifhegotreallyangry. "'ThisPrincessiswearingtheStarstone,'hesaid,anddrewhimselfupandfrownedallaroundasifheweresurroundedbyidiots.I'msurehethoughthewasandmaybehewasright.BecausehewentontotellthemjustwhattheStarstonewas,andwhatitdid,somethingnoonetherehadeverheardbefore.AndthisisthepartI'mnotsureof.Because,thougheveryonenewtheSorcererwasawiseandpowerfulman,hewasalsoknownasagreatliar. "HesaidthattheStarstonewascapableofcapturingtheessenceofapersonatthemomentofherdeath.Allherwisdom,allherpower,allherknowledgeandbeautyandstrengthwouldflowintothestoneandbeheldthere,timelessly." "Insuspendedanimation,"Radiantbreathed. "Precisely.Whentheyheardthis,thepeoplewereamazed.TheybuffetedtheSorcererwithquestions,towhichhegavefewanswers,andthoseonlygrudgingly.Finallyheleftinahuff.Whenhewasgone,everyonetalkedlongintothenightaboutthethingshehadsaid.SomefelttheSorcererhadheldouthopethatthePrincessmightyetliveon.Thatifherbodywasfrozen,thePrince,uponhisreturn,mightsomehowinfuseheressencebackwithinher.OthersthoughttheSorcererhadsaidthatwasimpossible,thatthePrincesswasdoomedtoahalf-life,lockedinthestone. "Buttheopinionthatprevailedwasthis: "ThePrincesswouldprobablynevercomefullybacktolife.ButheressencemightflowfromtheStarstoneandintoanother,iftherightpersoncouldbefound.Allagreedthispersonmustbeayoungmaiden.Shemustbebeautiful,verysmart,swiftoffoot,loving,kind...oh,my,thelistwasverylong.Everyonedoubtedsuchapersoncouldbefound.Manydidnotevenwanttotry. "ButatlastitwasdecidedtheStarstoneshouldbegiventoafaithfulfriendofthePrince.Hewouldsearchthegalaxyforthismaiden.Ifsheexisted,hewouldfindher. "Sohe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年應(yīng)急安全科普答題試題庫(含答案)
- 2025年安全生產(chǎn)事故預(yù)防與應(yīng)急處理培訓(xùn)試卷及答案
- 建筑高空作業(yè)安全規(guī)范及設(shè)施驗(yàn)收標(biāo)準(zhǔn)
- 幼兒園安全教育主題活動(dòng)方案集
- 2025年吉林電子信息職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題含答案解析(必刷)
- 2024年青海理工學(xué)院馬克思主義基本原理概論期末考試題帶答案解析
- 2026湖南懷化國際陸港經(jīng)濟(jì)開發(fā)區(qū)內(nèi)國有企業(yè)招聘25人備考題庫及參考答案詳解
- 2024年西北電業(yè)職工大學(xué)馬克思主義基本原理概論期末考試題及答案解析(奪冠)
- 2026甘肅定西臨洮縣文廟巷社區(qū)衛(wèi)生服務(wù)中心招聘衛(wèi)生專業(yè)技術(shù)人員5人備考題庫及答案詳解(新)
- (2025年)食品安全法律法規(guī)考試題及答案
- 檢驗(yàn)科甲流實(shí)驗(yàn)室檢測(cè)流程
- 紀(jì)檢監(jiān)察業(yè)務(wù)培訓(xùn)
- 急慢性失血性貧血課件
- 人教版七年級(jí)上冊(cè)歷史期末模擬試卷及答案
- 2025年及未來5年中國肉干肉脯市場(chǎng)調(diào)查研究及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 有機(jī)合成化學(xué)王玉爐第三版省公開課一等獎(jiǎng)全國示范課微課金獎(jiǎng)?wù)n件
- 凝血的臨床課件
- 高密池除硬度原理課件
- 空放貸款合同(標(biāo)準(zhǔn)版)
- 請(qǐng)護(hù)理合同三方協(xié)議合同
- 包銷模式下郵輪旅客人身傷亡責(zé)任的多維審視與法律規(guī)制探究
評(píng)論
0/150
提交評(píng)論