版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、0 / 35 局域網(wǎng)抓包軟件的設(shè)計與實現(xiàn)李金(吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南 吉首 416000)摘 要隨著網(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è)計中應(yīng)用面向?qū)ο蟮腏ava 編程語言對數(shù)據(jù)包捕獲模塊、解碼數(shù)據(jù)包模塊和數(shù)據(jù)存儲模塊的進行實現(xiàn)。通過運用 Winpcap,Jpcap 開發(fā)包在 Eclipse 開發(fā)環(huán)境下,實現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)包的捕獲,利用 TCP/IP 協(xié)議的封裝理論
2、和自下而上的封裝實現(xiàn)了數(shù)據(jù)包信息的分析,并且將分析出來的信息存入文本文件。此外,還能實現(xiàn)一些特定功能,如對指定的協(xié)議進行數(shù)據(jù)包的捕獲,并捕獲結(jié)果進行顯示等。關(guān)鍵詞:局域網(wǎng);數(shù)據(jù)捕獲;信息分析;Winpcap;JpcapThe Design and Implementation of LAN Information Capture SoftwarePan Chun(College of Information Science and Engineering,Jishou University,Jishou,Hunan 416000)AbstractAs development of the ne
3、twork and technology,the society comes into a age of information explosion. The network security has been widely concerned followed by the development and universal of the network technology. Therefore,it is great significance that an effective real-time interception network information system is st
4、udied and developed. Based on this situation,this thesis in-depth studies to capture the network data and so on. Besides,it introduces relative technology and the needs information capture. The realization of the data capture module,data packet decoded module and database information module is displ
5、ayed for detail in the systems design. The network data packet is captured through Winpcap,Jpcap,some functions has been realized, such as network data packet capture,data packets of information analysis by using TCP / IP protocol encapsulation theory and bottom-up,and will analyze the information s
6、tored in the database. Simultaneously,this software would also increases some functions,such as data packet capture by the IP address,make the results and statistics,display the results of data packet capture and so on.Key words: LAN; data capture; information analysis ; Winpcap;Jpcap 目 錄第一章 引言.2 1.
7、1 課題背景及意義.2 1.2 課題研究現(xiàn)狀.2 1.3 研究內(nèi)容.3 1.4 論文組織方式.3第二章 關(guān)鍵技術(shù).4 2.1 抓包機制.4 2.1.1 局域網(wǎng)的連接方式.4 2.1.2 數(shù)據(jù)包截獲機制.5 2.1.3 數(shù)據(jù)封裝與分用過程.5 2.2 抓包工具.7 2.2.1 Winpcap 簡介.7 2.2.2 Jpcap 簡介.9 2.3 JPCAP .9 2.3.1 Jpcap 需求環(huán)境.9 2.3.2 Jpcap 安裝.10 2.3.3 Jpcap 關(guān)鍵 API.11第三章 需求分析.12 3.1 功能需求.12 3.2 性能要求.12第四章 概要設(shè)計.13 4.1 體系結(jié)構(gòu)設(shè)計.13
8、4.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計.14第五章 詳細(xì)設(shè)計.16 5.1 系統(tǒng)功能模塊設(shè)計.16 5.1.1 數(shù)據(jù)捕獲的實現(xiàn).17 5.1.2 數(shù)據(jù)分析的實現(xiàn).18 5.1.3 文件存儲的實現(xiàn).19 5.2 用戶界面設(shè)計.20 5.2.1 配置界面.20 5.2.2 主界面.20第六章 測試和實現(xiàn)結(jié)果.22 6.1 測試環(huán)境.22 6.2 測試過程.22結(jié)束語.23參考文獻.24致 謝.24第一章第一章引言引言1.1 課題背景及意義計算機網(wǎng)絡(luò)的發(fā)展給計算機產(chǎn)業(yè)和整個人類的工作、生活方式帶來了巨大的變化,特別是信息技術(shù)的發(fā)展使一個信息缺乏的時代進入了一個信息爆炸的時代,世界也由于Internet而變小。人們通過
9、各種技術(shù),工具使得交流突破了空間的限制。全球范圍內(nèi)的網(wǎng)絡(luò)互聯(lián)給人們的生活和工作帶來了方便,人們正享受網(wǎng)絡(luò)技術(shù)帶給我們美好生活。但同時某些不法分子利用網(wǎng)絡(luò)的漏洞非法入侵他人的主機系統(tǒng),有的利用網(wǎng)絡(luò)盜取他人個人信息,對他人財產(chǎn)安全造成了重大威脅。據(jù)有關(guān)資料統(tǒng)計我國每年通過計算網(wǎng)絡(luò)進行違法行為以30%的速度上升。面對計算機犯罪越來越多的趨勢,及網(wǎng)絡(luò)上日益泛濫的信息垃圾和污染情況,我國政府未雨綢繆,制定了關(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)
10、絡(luò)安全和信息安全放在非常重要的地位上,而從長遠(yuǎn)角度看,這只能依靠我們自己解決。因此建立網(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ù)進行研究,并且目前基于Java的網(wǎng)絡(luò)抓包工具比較少見,這便是我的論文研究的意義與目的。1.2 課題研究現(xiàn)
11、狀網(wǎng)絡(luò)數(shù)據(jù)捕獲技術(shù)是獲取信息的關(guān)鍵技術(shù),它通過監(jiān)聽技術(shù),過濾技術(shù)獲取原始數(shù)據(jù),根據(jù)TCP/IP分層理論進行層層拆解,提取相關(guān)協(xié)議中的信息。本畢業(yè)設(shè)計主要通過使用Winpcap,Jpcap開發(fā)包,在Java環(huán)境下編寫出了一款簡單的軟件對數(shù)據(jù)包信息進行捕獲,捕獲出所需要的敏感信息,并且將捕獲出來的信息保存到TXT文件。Java 是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,是由Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序設(shè)計語言和 Java 平臺(即 JavaSE,JavaEE,JavaME)的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性
12、和安全性,廣泛應(yīng)用于個人 PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java 更具備了顯著優(yōu)勢和廣闊前景1。 1.3 研究內(nèi)容20 世紀(jì) 90 年代以來,以 Internet 為代表的計算機網(wǎng)絡(luò)技術(shù)發(fā)展突飛猛進,促進了計算機網(wǎng)絡(luò)在社會各個領(lǐng)域的廣泛應(yīng)用,而網(wǎng)絡(luò)監(jiān)聽對于網(wǎng)絡(luò)與信息安全一直是一個比較敏感的話題,作為一種發(fā)展比較成熟的技術(shù),監(jiān)聽在協(xié)助網(wǎng)絡(luò)管理員監(jiān)測網(wǎng)絡(luò)傳輸數(shù)據(jù),排除網(wǎng)絡(luò)故障等方面具有不可替代的作用,因而一直倍受網(wǎng)絡(luò)管理員的青睞。由于在 Windows 平臺下系統(tǒng)對網(wǎng)絡(luò)底層的內(nèi)核級封裝,使得直接
13、利用系統(tǒng)難以進行有效的網(wǎng)絡(luò)監(jiān)控,以及 Linux 平臺下抓包軟件的跨平臺適用性。故本文采用 Java 語言實現(xiàn)了一種適用性強的網(wǎng)絡(luò)數(shù)據(jù)包捕獲方法的設(shè)計,它通過第三方網(wǎng)絡(luò)軟件包 Jpcap 提供的驅(qū)動接口,在數(shù)據(jù)鏈路層實現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)流的截獲,分析以及實時監(jiān)測網(wǎng)絡(luò)狀態(tài)。1.4 論文組織方式 首先,本論文從目前網(wǎng)絡(luò)的安全現(xiàn)狀開始,詳細(xì)研究了本課題的背景以及意義,由于目前我國正在進行大規(guī)模的現(xiàn)代化經(jīng)濟建設(shè),需要使用自己的網(wǎng)絡(luò)和信息安全系統(tǒng)來保護自己的網(wǎng)絡(luò)和信息系統(tǒng),尤其是對于全國性大型計算機網(wǎng)絡(luò)而言,必須將網(wǎng)絡(luò)安全和信息安全放在非常重要的地位上,而從長遠(yuǎn)角度看,這只能依靠我們自己解決。因此建立網(wǎng)絡(luò)安全
14、系統(tǒng)是我們現(xiàn)在迫切需求,這項工作對我們來說具有重大的政治和經(jīng)濟意義面對這種形式研究并開發(fā)出一種能方便有效的實時監(jiān)視和捕獲可疑網(wǎng)絡(luò)信息的系統(tǒng)迫在眉睫。然后對抓包工具的實現(xiàn)所必須具備的各種技術(shù)進行深入了解,包括局域網(wǎng)的連接方式,數(shù)據(jù)分裝的格式等。其次,在對本論文的背景有所了解的情況下,對本課題所必須的關(guān)鍵技術(shù)進行了介紹,包括局域網(wǎng)的連接方式,數(shù)據(jù)包截獲機制,數(shù)據(jù)封裝與分用等基礎(chǔ)知識以及相關(guān)抓包工具,比如 Jpcap 等的詳細(xì)介紹。最后,在對所必須得基礎(chǔ)知識有所了解的情況下,按照各模塊的功能,分別詳細(xì)介紹了各個功能的實現(xiàn)過程。第二章第二章關(guān)鍵技術(shù)關(guān)鍵技術(shù)2.1 抓包機制網(wǎng)絡(luò)嗅探是一種常用的收集網(wǎng)絡(luò)數(shù)
15、據(jù)包的方法,其基本原理對經(jīng)過網(wǎng)卡的數(shù)據(jù)包進行捕獲和解碼,從鏈路層協(xié)議開始進行解碼分析,一直到應(yīng)用層的協(xié)議,最后獲取數(shù)據(jù)包中需要的內(nèi)容。2.1.1 局域網(wǎng)的連接方式局域網(wǎng)的連接設(shè)備主要有 HUB 和交換機。由于以 HUB 連接的以太網(wǎng)等很多網(wǎng)絡(luò)是基于總線方式的,所以當(dāng)一個機器給另一個機器發(fā)送數(shù)據(jù)時,HUB 會將要傳送的數(shù)據(jù)包發(fā)送至本網(wǎng)段內(nèi)的所有主機。這種以廣播方式發(fā)送數(shù)據(jù)包的形式使得任何網(wǎng)絡(luò)接收設(shè)備都可以接收到所有正在傳送的通信數(shù)據(jù),不過通常情況下主機只將判斷為應(yīng)該接收的數(shù)據(jù)包傳給上層應(yīng)用程序處理。所以在共享HUB 情況下同一網(wǎng)段的所有機器的網(wǎng)卡都能接收到數(shù)據(jù)而交換機能記住每個端口的地址,該哪個
16、機器接收就發(fā)往哪個端口,而不是像 HUB 那樣發(fā)給所有的端口,所以交換機環(huán)境下只有該接收數(shù)據(jù)的機器的網(wǎng)卡能接收到數(shù)據(jù)。HUB 的工作模式使得共享決定了同一網(wǎng)段同一時間只能有兩個機器進行數(shù)據(jù)通信,而交換機在兩個機器傳輸數(shù)據(jù)的時候其它端口沒有占用,所以其它端口之間也可以同時傳輸。這就是 HUB 與交換機不同的兩個地方,HUB 是同一時間只能有一個機器發(fā)送數(shù)據(jù)并且所有機器都可以接收,只要不是廣播數(shù)據(jù),交換機同一時間可以有一對機器進行數(shù)據(jù)傳輸并且數(shù)據(jù)是私有的。在實際的系統(tǒng)中,數(shù)據(jù)的收發(fā)由網(wǎng)卡來完成,網(wǎng)卡的主要工作原理是整理計算機發(fā)往網(wǎng)線上的數(shù)據(jù),并將數(shù)據(jù)包發(fā)送出去。當(dāng)網(wǎng)卡接收到傳輸來的數(shù)據(jù)時,根據(jù)接收
17、數(shù)據(jù)幀的 目的 MAC 地址和網(wǎng)卡驅(qū)動程序設(shè)置的接收模式進行判斷,對需要接收的就產(chǎn)生中斷信號送 CPU,然后由操作系統(tǒng)調(diào)用驅(qū)動程序進行接收, 認(rèn)為不該接收的就丟棄不管,所以不該接收的數(shù)據(jù)在網(wǎng)卡處就截斷了。對于網(wǎng)卡來說一般有四種接收模式2:(1)廣播方式 (Broadcast) :能夠接收網(wǎng)絡(luò)中的廣播信息;(2)組播方式 (Multicast):網(wǎng)卡能夠接收組播數(shù)據(jù),也就是一個人發(fā)出的包可以同時被其他多個有資格的人接收,這些人就形成了一個組,他們在組內(nèi)的通信是廣播式的;(3)直接方式(Directory):只有目的網(wǎng)卡才能接收該數(shù)據(jù);(4)混雜模式(Promiscuous):能夠接收一切通過網(wǎng)卡
18、的數(shù)據(jù)。 網(wǎng)卡的缺省工作模式包含廣播模式和直接模式,即它只接收廣播幀和發(fā)給自己的幀,而網(wǎng)絡(luò)數(shù)據(jù)包捕獲程序一般采用第種模式。2.1.2 數(shù)據(jù)包截獲機制網(wǎng)絡(luò)數(shù)據(jù)包截獲機制一般指通過截獲整個網(wǎng)絡(luò)的所有信息流量,根據(jù)信息源主機,目標(biāo)主機,服務(wù)協(xié)議斷口等信息簡單過濾掉不關(guān)心的數(shù)據(jù),再將用戶感興趣的數(shù)據(jù)發(fā)送給更高層的應(yīng)用程序進行分析。在局域網(wǎng)中,由于以太網(wǎng)是基于廣播方式傳送數(shù)據(jù)的,以太網(wǎng)上的所有主機都共享一條網(wǎng)絡(luò)總線,所以所有的物理信號都會被傳送到每一個主機節(jié)點,如果將網(wǎng)卡設(shè)置為混雜接受模式,則無論監(jiān)聽到的數(shù)據(jù)幀目的地址如何,網(wǎng)卡都能予以接收。協(xié)議簇中的應(yīng)用層協(xié)議大多數(shù)都是以明文形式在網(wǎng)絡(luò)上傳輸,這些明文
19、數(shù)據(jù)往往包含一些敏感數(shù)據(jù),如密碼、賬號等,因此使用監(jiān)聽程序軟件可以監(jiān)聽到所有局域網(wǎng)內(nèi)的數(shù)據(jù)通信,得到這些敏感信息。當(dāng)然,其局限性是只能在局域網(wǎng)的共享沖突域中進行。嗅探器作為一種網(wǎng)絡(luò)通訊程序,主要是通過對網(wǎng)卡的編程來實現(xiàn)的。對網(wǎng)卡的編程有很多種方法,通常的套接字程序只能響應(yīng)與自己硬件地址相匹配的或是以廣播方式發(fā)出的數(shù)據(jù)幀,對于其他形式的數(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á)到此目的就不能讓網(wǎng)卡按通常的正常模式工作,而必須將
20、其設(shè)置為混雜模式。嗅探程序的設(shè)計一般有如下幾個階段:(1)包捕獲設(shè)置:包括網(wǎng)絡(luò)適配器的識別和網(wǎng)卡混雜模式的設(shè)置;(2)過濾器設(shè)置:對數(shù)據(jù)包的捕獲設(shè)定一些條件,如可以按某些特定的 IP 地址進行過濾,也可根據(jù)網(wǎng)絡(luò)協(xié)議只捕獲某種特定的協(xié)議,如 TCP 或 UDP 包中的數(shù)據(jù);(3)數(shù)據(jù)分析:對捕獲的數(shù)據(jù)進行分析處理,獲得數(shù)據(jù)包中的上層信息。2.1.3 數(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的
21、數(shù)據(jù)單元稱作TCP報文段或簡稱為TCP段(TCP segment)。IP傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作IP數(shù)據(jù)報。通過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(Frame)。這就是通常說的數(shù)據(jù)的封裝過程3,如圖2.1所示。當(dāng)目的主機收到一個以太網(wǎng)數(shù)據(jù)幀時,數(shù)據(jù)就開始從協(xié)議棧中由底向上升傳輸,同時去掉各層協(xié)議加上的報文首部。每層協(xié)議棧都要去檢查報文首部中的協(xié)議標(biāo)識,以確定接收數(shù)據(jù)的上層協(xié)議。這個過程稱作分用(Demultiplexing),其過程如圖2.2所示。圖 2.1 數(shù)據(jù)進入?yún)f(xié)議棧時的封裝過程圖2.2 數(shù)據(jù)幀的分用過程2.2 抓包工具2.2.1 Winpcap 簡介Winpcap(Windows Packe
22、t Capture)是 Windows 平臺下一個免費,公共的網(wǎng)絡(luò)訪問系統(tǒng)。開發(fā) Winpcap 這個項目的目的在于為 Win32 應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。它提供了以下功能5:(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ù)報。
23、Winpcap是Win32平臺下的數(shù)據(jù)包捕獲與網(wǎng)絡(luò)分析架構(gòu),由三個模塊構(gòu)成:NPF,packet.dll,wpcap.dll。前一個工作在內(nèi)核層,后兩個工作在用戶層。第一個模塊是內(nèi)核部分NPF (Netgroup Packet Filter),在Win95/98中它是一個VXD(虛擬設(shè)備驅(qū)動程序文件)文件,在WinNT/Win2000下是一個SYS文件。它的主要功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動地傳給用戶態(tài)模塊。當(dāng)然也添加了一些系統(tǒng)特定的標(biāo)志(比如時間戳管理)。這個過程中包括了一些操作系統(tǒng)特有的代碼。第二個模塊packet.dll用來在不同的Win32平臺下提供一個通用的公共的包驅(qū)動接口
24、。事實上,不同版本的Windows平臺在內(nèi)核層模塊和用戶進程之間的接口不完全相同,packet.dll用于解決這些不同。提供了一套系統(tǒng)獨立的API(Application Programming Interface 應(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ù),增
25、加了比如統(tǒng)計和包發(fā)送等更高級的特性。因此程序員能處理兩種類型的API:一套原始函數(shù)集,包含在packet.dll中,直接與內(nèi)核層調(diào)用匹配;另一套高層函數(shù)由wpcap.dll提供,便于用戶調(diào)用,功能更強大。程序員能隨意使用wpcap.dll,但只能在受限的環(huán)境中直接使用packet.dll.圖 2.3 Winpcap 結(jié)構(gòu)圖總的說來,packet.dll 直接映射了內(nèi)核的調(diào)用。wpcap.dll 提供了更加友好、功能更加強大的函數(shù)調(diào)用。Winpcap 的具體結(jié)構(gòu)圖 2.3 所示。Winpcap 是用 NDIS(Windows 的通信協(xié)議程序(比如 TCP/IP)和網(wǎng)絡(luò)設(shè)備驅(qū)動器之間通信的規(guī)范)的
26、,將自己注冊為一個協(xié)議處理驅(qū)動。Winpcap 的使用非常方便,但是它有一個致命的缺陷就是只適用于共享式以太網(wǎng)絡(luò),對于交換式網(wǎng)絡(luò)下的數(shù)據(jù)則無能為力。經(jīng)過測試,在使用交換機連接的局域網(wǎng)下,Winpcap 只能監(jiān)聽到本網(wǎng)段內(nèi)的數(shù)據(jù),而對于來自其他網(wǎng)段的數(shù)據(jù)則無法監(jiān)聽,除非你把電腦接到交換機之前或者接到交換機的配置口上,不過那樣的弊端是顯而易見的,所以,Winpcap 的應(yīng)用還是有局限性的。Winpcap 結(jié)構(gòu)圖如圖 2.4 所示。圖 2.4 NPF device driver2.2.2 Jpcap 簡介眾所周知,Java 語言雖然在 TCP/UDP 傳輸方面給予了良好的定義,但對于網(wǎng)絡(luò)層以下的控制
27、卻是無能為力的,而 Jpcap 擴展包彌補了這一點。 Jpcap 實際上并非一個真正去實現(xiàn)對數(shù)據(jù)鏈路層的控制,而是一個中間件,Jpcap 調(diào)用 Winpcap,而給 Java 語言提供一個公共的接口,從而實現(xiàn)了平臺無關(guān)性。 Jpcap 是源自于 Java 應(yīng)用的一個開源類庫,主要用于捕獲、發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包。它提供以下功能:(1)捕獲末加工的原始數(shù)據(jù)包;(2)保存捕獲到的數(shù)據(jù)包到本地文件,從本地文件讀出先前捕獲的數(shù)據(jù)包;(3)自動分辨數(shù)據(jù)包的類型并產(chǎn)生相應(yīng)的 Java 類(如:Ethenet、IPv4、IPv6、ARP/RARP、TCP、UDP 和 ICMP 包) ;(4)根據(jù)用戶在程序代碼中指定
28、的過濾規(guī)則過濾數(shù)據(jù)包;(5)向網(wǎng)絡(luò)發(fā)送各種數(shù)型的數(shù)據(jù)包。利用 Jpcap 包能夠開發(fā)以下幾種類型的應(yīng)用程序:(1)網(wǎng)絡(luò)以及協(xié)議的分析器;(2)網(wǎng)絡(luò)監(jiān)聽器;(3)網(wǎng)絡(luò)流量記錄器;(4)網(wǎng)絡(luò)流量發(fā)生器;(5)用戶級的網(wǎng)橋、路由;(6)網(wǎng)絡(luò)入侵檢測系統(tǒng);(7)網(wǎng)絡(luò)掃描器;(8)網(wǎng)絡(luò)安全工具箱。Jpcap 捕獲、發(fā)送數(shù)據(jù)包是獨立于主機協(xié)議(如:TCP/IP)的,這也就意味著 Jpcap 不能阻塞、過濾或操縱由宿主機上其他程序產(chǎn)生的網(wǎng)路流量。因此它不支持諸如:流量調(diào)節(jié)器、QoS schedulers 以及個人防火墻這一類應(yīng)用6。2.3 Jpcap2.3.1 Jpcap 需求環(huán)境安裝 Java2 工作平臺
29、(Java2 Runtime Environment)或者 SDK(http:/)安裝最新版本的 Libpcap(對于 Unix 平臺,/) 或者 Winpcap (對于 Windows 平臺,http:/winpcap.polito.it/)下載并解壓縮 Jpcap 的最新版本(/kfujii/jpcap/doc/index.html )2.3.2 Jpcap 安裝1在 Windows 系列操作系統(tǒng)下 (1)復(fù)制libJpcap.dll到JRE directorybin或JRE directorylib
30、extx86。(2)復(fù)制libjpcap.jar到JRE directorylibext。(3)如果安裝了 SDK,還需要拷貝libjpcap.jar到SDK directoryjrelibext。其中JRE directory是指 JRE 默認(rèn)安裝路徑,一般來說是 C:Program FilesJavaj2re*;SDK directory 是指 SDK 的默認(rèn)安裝路徑,一般來說是C:j2sdk*。打開 Eclipse 的工程,選Tools/Configure JDKs/ Add將lib 中的文件jpcap.jar 加入。將sampletcpdump.java 加入,即可編譯運行。在 Win
31、dows 下,Jpcap.dll 和 jpcap.jar 兩個文件需要放置的位置與您所安裝JRE 中設(shè)置的home path有極大的聯(lián)系。其中,Jpcap.dll 文件必須放在您設(shè)置的home path的子目錄中的 bin 文件夾中,jpcap.jar 文件放的位置較為任意,一般是放到 lib 文件夾中,理論上可以放到任意地方,但是必須在 jdk setting 中加入該類庫包的完整路徑。2在 Unix 操作系統(tǒng)下(1)在解壓縮的 Jpcap 文件夾中,進入 src/c 目錄,編輯 Makefile 文件,根據(jù)你安裝的操作系統(tǒng)的類型修改編輯選項。(2)運行 make,產(chǎn)生 libjpcap.s
32、o 文件。如果你看到錯誤信息:structure has no member name sa_len.,則在 Jpcap_sub.h 中屏蔽#define HAVE_SA_LEN這一行。(3)拷貝文件 libjpcap.so 到 Java 安裝目錄/jre/lib/. 是i386或sparc(或者設(shè)置 LD_LIBRARY_PATH 包括 libjpcap.so 存在的路徑) 。(4)拷貝文件 lib/jpcap.jar 到擴展目錄下,比如:/jre/lib/ext(或者設(shè)置CLASSPATH 包括 jpcap.jar 文件) 。2.3.3 Jpcap 關(guān)鍵 APIJpcap 的整個結(jié)構(gòu)大體上
33、跟 Winpcap 類似,例如 NetworkInterface 類對應(yīng)Winpcap 的 typedef struct _ADAPTERADAPTER,getDeviceList()等等. Jpcap 有16 個類,其中最重要的 3 個類如下7:1NetworkInterface該類的每一個實例代表一個網(wǎng)絡(luò)設(shè)備,一般就是網(wǎng)卡。這個類只有一些數(shù)據(jù)成員,除了繼承自 java.lang.Object 的基本方法以外,沒有定義其它方法。其關(guān)鍵數(shù)據(jù)成員如下:Datalink_description:數(shù)據(jù)鏈路層的描述.描述所在的局域網(wǎng)是什么網(wǎng).例如,以太網(wǎng)、無線 LAN 網(wǎng)、令牌環(huán)網(wǎng)等等;Datalin
34、k_nam:該網(wǎng)絡(luò)設(shè)備所對應(yīng)數(shù)據(jù)鏈路層的名稱;Description:網(wǎng)卡的牌子型號之類的描述;Loopback:標(biāo)志這個設(shè)備是否 loopback 設(shè)備;mac_address:網(wǎng)卡的 MAC 地址,6 個字節(jié);.Name:這個設(shè)備的名稱。2JpcapCaptor該類提供了一系列靜態(tài)方法實現(xiàn)一些基本的功能。該類一個實例代表建立了一個與指定設(shè)備的鏈接,可以通過該類的實例來控制設(shè)備,例如設(shè)定網(wǎng)卡模式、設(shè)定過濾關(guān)鍵字等等。其抓包關(guān)鍵方法如下:NetworkInterface:返回一個網(wǎng)絡(luò)設(shè)備列表;openDevice(interface,intsnaplen,booleanpromisc,intt
35、o_ms):創(chuàng)建一個與指定設(shè)備的連接并返回該連接.注意,以上兩個方法都是靜態(tài)方法;Interface:要打開連接的設(shè)備的實例;Snaplen:這個是比較容易搞混的一個參數(shù).其實這個參數(shù)不是限制只能捕捉多少數(shù)據(jù)包,而是限制每一次收到一個數(shù)據(jù)包,只提取該數(shù)據(jù)包中前多少字節(jié);Promisc:設(shè)置是否混雜模式.處于混雜模式將接收所有數(shù)據(jù)包,若之后又調(diào)用了包過濾函數(shù) setFilter()將不起任何作用;To_ms:這個參數(shù)主要用于 processPacket()方法,指定超時的時間;Close():關(guān)閉調(diào)用該方法的設(shè)備的連接;getPacket():捕捉并返回一個數(shù)據(jù)包;loopPacket(intc
36、ount, PacketReceiver handler):捕捉指定數(shù)目的數(shù)據(jù)包,并交由實現(xiàn)了 PacketReceiver 接口的類的實例處理,并返回捕捉到的數(shù)據(jù)包數(shù)目。如果 count 參數(shù)設(shè)為1,那么無限循環(huán)地捕捉數(shù)據(jù);setFilter(java.lang.Stringcondition, booleanoptimize):condition,設(shè)定要提取的包的關(guān)鍵字。Optimize,參數(shù)如果為真,那么過濾器將處于優(yōu)化模式。3Packet 這個是所有其它數(shù)據(jù)包類的父類。Jpcap 所支持的關(guān)鍵數(shù)據(jù)包有:ARPPacket、DatalinkPacket、EthernetPacket、IC
37、MPPacket、IPPacket、TCPPacket、UDPPacket第三章第三章需求分析需求分析3.1 功能需求隨著個人計算機和互聯(lián)網(wǎng)的普及,越來越多的人開始使用網(wǎng)絡(luò)這個媒介來發(fā)送,接收信息,計算機網(wǎng)絡(luò)給人們生產(chǎn)和生活帶來了巨大的便利。但是由于網(wǎng)絡(luò)是一個面向大眾的開放系統(tǒng),對數(shù)據(jù)信息的保密和系統(tǒng)的安全性考慮得并不完備,存在著許多的安全隱患。而有的人,就利用這些隱患,通過網(wǎng)絡(luò)來發(fā)送一些包含色情,反動等不良內(nèi)容的信息,達(dá)到擾亂正常社會秩序的目的。網(wǎng)絡(luò)的安全形勢日趨嚴(yán)峻。因此,現(xiàn)在在 Internet 安全隱患中扮演重要角色之一的網(wǎng)絡(luò)數(shù)據(jù)抓包軟件受到越來越大的關(guān)注。本軟件的設(shè)計就是為了達(dá)到基本
38、的維護網(wǎng)絡(luò)安全的作用,對網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)進行捕獲,然后從中得到所有的網(wǎng)絡(luò)數(shù)據(jù)包,并對其進行簡單的分析操作。在網(wǎng)絡(luò)入侵取證系統(tǒng)中,對網(wǎng)絡(luò)上傳送的數(shù)據(jù)包進行有效的監(jiān)聽即捕獲包是目前取證的關(guān)鍵技術(shù),只有進行高效的數(shù)據(jù)包捕獲,網(wǎng)絡(luò)管理員才能對所捕獲的數(shù)據(jù)進行一系列的分析,從而進行可靠的網(wǎng)絡(luò)安全管理。IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)報格式傳輸。這些數(shù)據(jù)類型中又以TCP和UDP兩種數(shù)據(jù)類型為多數(shù)。所以本軟件需要設(shè)計出按TCP協(xié)議類型和按UDP協(xié)議類型來過濾網(wǎng)絡(luò)中的數(shù)據(jù)。同時本軟件還還應(yīng)當(dāng)具有一種過濾功能,那就是當(dāng)我們知道某個IP地址發(fā)送的數(shù)
39、據(jù)包信息都是屬于一些不良,反動等等內(nèi)容的信息,那么,我們可以通過在軟件上輸出這臺主機IP地址,來過濾從這臺主機上發(fā)送的所有TCP和UDP協(xié)議類型的數(shù)據(jù)。從而達(dá)到信息過濾的要求。3.2 性能要求由于本設(shè)計是安裝在個人電腦上,所以要求用戶界面簡潔,友好,方便使用和操作。網(wǎng)絡(luò)上數(shù)據(jù)包的捕獲是入侵檢測系統(tǒng)的基礎(chǔ),關(guān)鍵是要保證高速的抓包和低的丟包率。一方面,網(wǎng)絡(luò)檢測部分的數(shù)據(jù)源是網(wǎng)絡(luò)上的數(shù)據(jù)包,需要經(jīng)過捕獲后方可以提交給分析系統(tǒng);另一方面,捕獲數(shù)據(jù)包效率的高低直接影響著網(wǎng)絡(luò)探測部分的性能的好壞,如果發(fā)生丟包現(xiàn)象,則有可能丟掉的包就是攻擊包。在保證高速的抓包和低的丟包率的同時,要還要求程序能有較強的穩(wěn)定性
40、。一款好的信息過濾軟件,都是將在一個長時間工作的環(huán)境中運行。如果不能保證較強的穩(wěn)定性的話,那么軟件對信息過濾的效率和功能有很大的局限性,對數(shù)據(jù)信息過濾就是失敗的。那么這款軟件就不會具備同其他同類似軟件的競爭力,更不會有市場,那么它就注定成為一款失敗的軟件。試想一下,假如當(dāng)用戶使用這款軟件時,軟件占用了太多的系統(tǒng)資源而導(dǎo)致用戶對電腦的其他操作都很難進行,那么,誰還會用這款軟件呢?所以,該軟件還應(yīng)該具備一種特點就是:較低的系統(tǒng)資源占用率。第四章第四章概要設(shè)計概要設(shè)計4.1 體系結(jié)構(gòu)設(shè)計 (1)用戶界面 由于本設(shè)計是安裝在個人電腦上,所以要求用戶界面簡潔,友好,方便使用和操作。 在為 Winpcap
41、 指定一個具體的網(wǎng)絡(luò)適配器時,因為 Winpcap 提供了查找網(wǎng)絡(luò)設(shè)備的函數(shù),同時為了讓用戶使用方便、簡潔。所以選擇新建一個下拉列表框,讓用戶選擇具體的網(wǎng)卡設(shè)備。 在為程序指定具體的捕獲方式時,在程序中需設(shè)置一個篩選器來篩選所需要捕獲的數(shù)據(jù)包。 (2)數(shù)據(jù)包捕獲 捕獲功能的設(shè)計思想應(yīng)遵循 Winpcap 捕獲數(shù)據(jù)包的流程,流程分三步:查找設(shè)備,打開設(shè)備和捕獲數(shù)據(jù)的函數(shù)。 首先確定要在其上進行監(jiān)測的網(wǎng)絡(luò)適配器,然后打開所獲得的網(wǎng)絡(luò)適配器,當(dāng)網(wǎng)卡已打“打開”并且具體配置好后,就可以進入捕獲了??紤]到系統(tǒng)資源的占用等問題,可以利用多線程來解決此問題。 (3)數(shù)據(jù)包分析 數(shù)據(jù)包分析的設(shè)計思想是將 Wi
42、npcap 捕獲到的數(shù)據(jù)對應(yīng)網(wǎng)絡(luò)數(shù)據(jù)包的格式進行初始化,取得具體的值。并輸出到界面。因為數(shù)據(jù)分析主要實現(xiàn)數(shù)據(jù)的解析。從網(wǎng)絡(luò)適配器中捕獲數(shù)據(jù)的為原始數(shù)據(jù)(Raw Data) ,這些原始數(shù)據(jù)為二進制格式,必須轉(zhuǎn)化為能比較好明白的格式,這就要求將這些原始數(shù)據(jù)能按照網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)木唧w格式來保存,主要為了能較好的讀懂相關(guān)的信息,以便使用者分析。 (4)文件存儲 由于所捕獲的數(shù)據(jù)包信息需要存儲到硬盤,那么,可以使用 FileWriter 來將結(jié)果保存到文本文檔,以便日后查詢結(jié)果所用。4.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計 1. IP 包結(jié)構(gòu)IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)
43、據(jù)都以IP數(shù)據(jù)報格式傳輸。IP提供不可靠、無連接的數(shù)據(jù)報傳送服務(wù)。IP數(shù)據(jù)報的首部信息如圖4.1所示。圖4.1 IP數(shù)據(jù)報格式及首部中的各字段IP協(xié)議頭部信息如下: (1)版本:當(dāng)前IP協(xié)議的版本號,本論文采用的版本號為4;(2)首部長度:以32bit為單位的包頭長度; (3)服務(wù)類型:規(guī)定對本數(shù)據(jù)報的處理方式,比如優(yōu)先權(quán)等;(4)總長:以Byte為單位的整個IP數(shù)據(jù)報長度;(5)標(biāo)識:信源主機賦予每個IP數(shù)據(jù)報的唯一標(biāo)識符號,用于控制分片及其重組;(6)標(biāo)志和片偏移:同樣用于控制分片及其重組;(7)生存時間:設(shè)置本數(shù)據(jù)報的最大生存時間,以秒為單位;(8)協(xié)議:表示創(chuàng)建本IP數(shù)據(jù)報數(shù)據(jù)區(qū)數(shù)據(jù)的
44、高層協(xié)議的類型,如TCP,UDP等;(9)頭標(biāo)校驗和:用于保證頭標(biāo)數(shù)據(jù)的完整性。 2. TCP 包結(jié)構(gòu)TCP協(xié)議是網(wǎng)絡(luò)中應(yīng)用最為廣泛的協(xié)議,許多的應(yīng)用層協(xié)議都是在建立在TCP協(xié)議之上的。TCP首部的各字段如圖4.2所示4。圖 4.2 TCP 數(shù)據(jù)在 IP 數(shù)據(jù)報中的封裝TCP協(xié)議頭部信息如下:(1)源端口:發(fā)送端TCP端口號;(2)目的端口:接收端TCP端口號;(3)序號:指出段中數(shù)據(jù)在發(fā)送端數(shù)據(jù)流中的位置;(4)確認(rèn)號:指出本機希望下一個接收的字節(jié)的序號;(5)頭標(biāo)長度:以32bit為單位的段頭標(biāo)長度,是針對變長的“選項”域設(shè)計的;(6)碼位:指出段的目的與內(nèi)容,不同的各碼位置位有不同的含義
45、;(7)窗口:用于通告接收端接收緩沖區(qū)的大?。唬?)校驗和:這是可選域,置0表示未選,全1表示校驗和為伍;(9)緊急指針:當(dāng)碼位的URG置位時,指出緊急指針的序號。 3. UDP 包結(jié)構(gòu)UDP協(xié)議是英文User Datagram Protocol的縮寫,即用戶數(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)的域相
46、同。只有校驗和有些不同,除UDP數(shù)據(jù)報本身外,它還覆蓋一個附加的“偽頭標(biāo)”。這個偽頭標(biāo)來自于IP報頭,包括:源IP地址、信宿IP地址、協(xié)議類型、UDP長度及填充域。UDP首部的各字段圖4.3所示。圖 4.3 UDP 首部UDP協(xié)議頭部信息如下:(1)源端口:發(fā)送端UDP端口號;(2)目的端口:接收端UDP端口號;(3)頭標(biāo)校驗和:用于保證頭標(biāo)數(shù)據(jù)的完整性。第五章第五章詳細(xì)設(shè)計詳細(xì)設(shè)計5.1 系統(tǒng)功能模塊設(shè)計通過前面的敘述可以知道,這款軟件具有的功能,那就是能夠分別捕獲局域網(wǎng)中的 TCP 協(xié)議類型數(shù)據(jù),UDP 協(xié)議類型數(shù)據(jù)和從某一特定的 IP 地址發(fā)送出來的 TCP 協(xié)議類型數(shù)據(jù)和 UDP 協(xié)議
47、數(shù)據(jù)類型。并且將這些捕獲出來的數(shù)據(jù)包的基本信息存入到文件中,提供給網(wǎng)絡(luò)管理員使用和進一步的分析。本系統(tǒng)包括三個基本模塊,分別是數(shù)據(jù)包捕獲模塊,數(shù)據(jù)分析模塊和文件存儲模塊。其中數(shù)據(jù)包捕獲模塊的功能是:利用 Jpcap 控件,通過網(wǎng)卡設(shè)備從網(wǎng)絡(luò)中捕獲數(shù)據(jù)包;數(shù)據(jù)分析模塊的功能是:主要實現(xiàn)數(shù)據(jù)的解析,從網(wǎng)絡(luò)適配器中捕獲到的數(shù)據(jù)的為原始數(shù)據(jù)(Raw Data) ,這些原始數(shù)據(jù)為二進制格式,必須轉(zhuǎn)化為能比較好明白的格式,這就要求將這些原始數(shù)據(jù)能按照網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)木唧w格式來保存,主要為了能較好的讀懂相關(guān)的信息,以便使用者分析;文件存儲模塊的功能是:經(jīng)過前兩個模塊處理后的數(shù)據(jù),現(xiàn)在已經(jīng)轉(zhuǎn)化成了對我們有用的信
48、息了,而這些信息不可能一直讓他存放在內(nèi)存中,那么就需要在建立一個文件,把這些信息存貯在硬盤中,以便使用者處理、使用。5.1.1 數(shù)據(jù)捕獲的實現(xiàn)數(shù)據(jù)包捕獲模塊主要用Winpcap軟件實現(xiàn),模塊的設(shè)計思想遵循Winpcap捕獲數(shù)據(jù)包的流程,流程分三步:查找設(shè)備,打開設(shè)備和捕獲數(shù)據(jù)的函數(shù)。利用Jpcap來開發(fā)實現(xiàn)數(shù)據(jù)包捕獲程序。流程如圖5.1所示。圖5.1 數(shù)據(jù)捕獲模塊流程圖下面給出其主要過程:先確定要在其上進行監(jiān)測的網(wǎng)絡(luò)適配器,得到現(xiàn)有的網(wǎng)絡(luò)適配器的列表和他們的描述,從而獲得該NIC的相關(guān)信息7。 devices = JpcapCaptor.getDeviceList(); if(devices
49、= null) JOptionPane.showMessageDialog(frame,沒有找到網(wǎng)卡);dispose(); 接下來打開所獲得的網(wǎng)絡(luò)適配器,其中openDevice函數(shù)的參數(shù)1為上面獲得的NIC名稱,參數(shù)2定義了網(wǎng)絡(luò)監(jiān)測程序所捕捉的最大字節(jié)數(shù)。參數(shù)3指示是否將網(wǎng)絡(luò)適配器設(shè)為混雜模式,CheckBox.isSelected()表示工作方式為混雜模式。參數(shù)4為捕獲時間限制,單位為毫秒。該函數(shù)負(fù)責(zé)按照用戶指定參數(shù)和其它系統(tǒng)默認(rèn)值初始化Winpcap,并返回會話句柄。/打開設(shè)備jpcap=JpcapCaptor.openDevice(devicesnetJComboBox.getSel
50、ectedIndex(),caplen,CheckBox.isSelected(),50); 當(dāng)網(wǎng)卡已打“打開”并且具體配置好后,就可以進入捕獲了。代碼如下所示8:private void startCaptureThread() if(captureThread != null) return; captureThread = new Thread(new Runnable() public void run() while(captureThread != null) cessPacket(1, handler); ); captureThread.setPriority
51、(Thread.MIN_PRIORITY); captureThread.start(); 5.1.2 數(shù)據(jù)分析的實現(xiàn)數(shù)據(jù)分析模塊的設(shè)計思想是將 Winpcap 捕獲到的數(shù)據(jù)對應(yīng)網(wǎng)絡(luò)數(shù)據(jù)包的格式進行初始化,取得具體的值。并輸出到界面。數(shù)據(jù)分析模塊的主要實現(xiàn)數(shù)據(jù)的解析。從網(wǎng)絡(luò)適配器中捕獲數(shù)據(jù)的為原始數(shù)據(jù)(Raw Data) ,這些原始數(shù)據(jù)為二進制格式,必須轉(zhuǎn)化為能比較好明白的格式,這就要求將這些原始數(shù)據(jù)能按照網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)木唧w格式來保存,主要為了能較好的讀懂相關(guān)的信息,以便使用者分析9。數(shù)據(jù)分析模塊實現(xiàn)時,本系統(tǒng)提取的數(shù)據(jù)包中主要的一些信息,如 IP 數(shù)據(jù)包中的 IP 地址,端口信息等。具體代碼
52、下:public void dealPacket( Packet packet ) try Vector r=new Vector(); String strtmp; Timestamp timestamp = new Timestamp(packet.sec * 1000) + (packet.usec/ 1000); r.addElement( timestamp.toString() ); /數(shù)據(jù)報時間 r.addElement(IPPacket)packet).src_ip.toString(); /源IP地址 r.addElement(IPPacket)packet).dst_ip.
53、toString(); /目的IP地址 r.addElement( packet.header.length ); /首部長度 r.addElement( packet.data.length ); /數(shù)據(jù)長度 r.addElement( (IPPacket)packet).dont_frag = true ? 分段 : 不分段 ); r.addElement( (IPPacket)packet).offset ); /數(shù)據(jù)長度 strtmp = ; for(int i=0;ipacket.header.length;i+) strtmp += Byte.toString(packet.hea
54、deri); r.addElement(strtmp); /首部內(nèi)容 strtmp = ; for(int i=0;ipacket.data.length;i+) strtmp += Byte.toString(packet.datai); r.addElement(strtmp); /數(shù)據(jù)內(nèi)容 rows.addElement(r); tabledisplay.addNotify(); catch( Exception e) 5.1.3 文件存儲的實現(xiàn)1把捕獲到的數(shù)據(jù)包寫入文件中的操作:相關(guān)數(shù)據(jù)信息捕獲分析完畢后,接下來就是對數(shù)據(jù)的保存。本系統(tǒng)使用的是 TXT 文件保存的方式。代碼如下:public void savefile(Packet packet) try FileWriter fileWriter=new FileWriter(d:Result.txt,true); fileWriter.write( String.valueOf(packet)+rn); fileWriter.flush(); fileWriter.close(); catch(Exception e)5.2 用戶界面設(shè)計5.2.1 配置界面根據(jù)上面三個模塊的分析,直接與用戶相關(guān)聯(lián)的操作有:為 Winpcap 指定一個具體的網(wǎng)絡(luò)適配器,選擇需要過濾的數(shù)據(jù)類型或者想要過濾的特定 IP 地
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 隧道支護結(jié)構(gòu)課程設(shè)計
- 質(zhì)量統(tǒng)計學(xué)課程設(shè)計
- 船舵課程設(shè)計尺寸
- 音樂活動江南課程設(shè)計
- 野餐套餐課程設(shè)計
- 演算公理系統(tǒng)課程設(shè)計
- 鄭州大學(xué)鋼結(jié)構(gòu)課程設(shè)計
- 2024版工程清包合同:工程設(shè)計變更與施工方案調(diào)整
- 2024某企業(yè)與咨詢公司之間的管理咨詢服務(wù)合同
- 2025年度香菇食品產(chǎn)品線擴展與市場拓展合同3篇
- 前列腺增生藥物治療
- 人工智能知識圖譜(歸納導(dǎo)圖)
- 滴滴補貼方案
- 民宿建筑設(shè)計方案
- 干部基本信息審核認(rèn)定表
- 2023年11月外交學(xué)院(中國外交培訓(xùn)學(xué)院)2024年度公開招聘24名工作人員筆試歷年高頻考點-難、易錯點薈萃附答案帶詳解
- 春節(jié)行車安全常識普及
- 電機維護保養(yǎng)專題培訓(xùn)課件
- 汽車租賃行業(yè)利潤分析
- 春節(jié)拜年的由來習(xí)俗來歷故事
- 2021火災(zāi)高危單位消防安全評估導(dǎo)則
評論
0/150
提交評論