999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種新的教學(xué)用輕量級網(wǎng)絡(luò)數(shù)據(jù)包抓取方法

2016-08-29 07:08:44田增山
關(guān)鍵詞:方法

何 維, 李 亮, 田增山, 周 牧, 張 毅

(重慶郵電大學(xué) 重慶市移動通信技術(shù)重點(diǎn)實(shí)驗(yàn)室, 重慶 400065)

?

一種新的教學(xué)用輕量級網(wǎng)絡(luò)數(shù)據(jù)包抓取方法

何維, 李亮, 田增山, 周牧, 張毅

(重慶郵電大學(xué) 重慶市移動通信技術(shù)重點(diǎn)實(shí)驗(yàn)室, 重慶400065)

用API攔截和函數(shù)入口指令替換的方法,能夠?qū)W(wǎng)絡(luò)數(shù)據(jù)包方便、快捷地抓取。該方法通過HOOK遠(yuǎn)程注入技術(shù),修改系統(tǒng)程序的運(yùn)行邏輯,使程序跳轉(zhuǎn)到自定義的函數(shù)中運(yùn)行,調(diào)用Windows 部分API實(shí)現(xiàn)網(wǎng)路數(shù)據(jù)包的抓取,不涉及Windows驅(qū)動開發(fā)等專業(yè)知識。該方法主要應(yīng)用于計(jì)算機(jī)相關(guān)專業(yè)的教學(xué)演示,具有技術(shù)實(shí)現(xiàn)簡單、無需驅(qū)動編程的知識、代碼量小、易于學(xué)生理解等特點(diǎn)。

數(shù)據(jù)包抓取; API攔截; 網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué); 互聯(lián)網(wǎng)

由于互聯(lián)網(wǎng)技術(shù)的普及,尤其是近年來移動互聯(lián)網(wǎng)技術(shù)的突起,網(wǎng)絡(luò)通信技術(shù)成為學(xué)生學(xué)習(xí)、研究的熱點(diǎn)。而在網(wǎng)絡(luò)通信技術(shù)中,網(wǎng)絡(luò)協(xié)議起著十分重要的作用,學(xué)習(xí)、分析、研究網(wǎng)絡(luò)協(xié)議成為掌握網(wǎng)絡(luò)通信技術(shù)的重要途徑[1-2]。

在不開源的Windows平臺下,要分析網(wǎng)絡(luò)協(xié)議,首先要解決如何抓取本機(jī)的網(wǎng)絡(luò)通信數(shù)據(jù)包的問題。目前比較成熟的此類商業(yè)軟件有Winpacp和Wireshark等[3],這些軟件產(chǎn)品穩(wěn)定可靠、使用方法簡單,但缺點(diǎn)是不開源,學(xué)生只能知曉如何使用這些軟件抓取網(wǎng)絡(luò)數(shù)據(jù)包,卻無法知曉抓取數(shù)據(jù)包的內(nèi)在方法。在Windows平臺下,要實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的抓取,開源的做法有以下兩種。

其一是采用Windows提供的原始套接字(RAW SOCKET),通過把網(wǎng)卡設(shè)置為混雜模式,抓取經(jīng)過本機(jī)網(wǎng)卡的IP數(shù)據(jù)包[4]。這個(gè)方法的缺點(diǎn)是只能用于Windows 2000及以前的平臺,并不支持后續(xù)平臺。

其二是通過編寫網(wǎng)絡(luò)過濾驅(qū)動(filter driver),通過在套接字接口層與TCP/IP設(shè)備對象層之間或網(wǎng)絡(luò)協(xié)議棧和物理網(wǎng)卡之間加入一層過濾驅(qū)動,來實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的攔截[5]。這個(gè)方法的優(yōu)點(diǎn)是適用所有的Windows平臺,通用性非常好,缺點(diǎn)是需要有Windows驅(qū)動編程的知識和驅(qū)動開發(fā)包。編寫代碼對學(xué)生知識層次要求過高、代碼量大,且稍有不慎,驅(qū)動的不穩(wěn)定即會引起操作系統(tǒng)崩潰。

因此,開發(fā)一個(gè)簡單實(shí)用的網(wǎng)絡(luò)數(shù)據(jù)包抓取方法,在高校關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議的教學(xué)中具有比較重要的實(shí)際意義。對于教學(xué)而言,只有理論是不夠的,在講解理論知識的基礎(chǔ)上,給出一個(gè)可編程實(shí)現(xiàn)的、簡捷的抓包方法,對學(xué)生更有吸引力,更能激發(fā)學(xué)生的創(chuàng)造性。

1 數(shù)據(jù)包抓取模型

1.1現(xiàn)有數(shù)據(jù)包抓取模型

由于現(xiàn)有計(jì)算機(jī)大多已不再運(yùn)行Windows 2000及以前的操作系統(tǒng),所以現(xiàn)有主流數(shù)據(jù)包抓取方法多采用過濾驅(qū)動法[6]。過濾驅(qū)動分為傳輸層過濾驅(qū)動和中間層過濾驅(qū)動兩種形式(見圖1)。

圖1 網(wǎng)絡(luò)過濾驅(qū)動模型

傳輸層過濾驅(qū)動使用NDIS(network driver interface specification)技術(shù),又稱為TDI(tran-sport driver interface)編程[7]。Windows 2000和Windows XP操作系統(tǒng)中的TCP/IP協(xié)議作為系統(tǒng)驅(qū)動程序,在系統(tǒng)啟動時(shí)載入系統(tǒng)內(nèi)存,以TCP/IP設(shè)備對象的形式供應(yīng)用程序或其他系統(tǒng)程序調(diào)用。傳輸層過濾驅(qū)動程序創(chuàng)建一個(gè)或多個(gè)設(shè)備對象,并直接掛接到TCP/IP設(shè)備對象之上。

掛接成功后,當(dāng)其他程序使用網(wǎng)絡(luò)傳輸功能,調(diào)用TCP/IP設(shè)備對象時(shí),操作系統(tǒng)首先將該調(diào)用映射到TCP/IP設(shè)備對象所掛接的傳輸層過濾驅(qū)動程序。通過傳輸層過濾驅(qū)動程序,再調(diào)用下層的TCP/IP設(shè)備對象,從而完成網(wǎng)絡(luò)訪問功能。同樣,從TCP/IP層上傳至應(yīng)用程序的網(wǎng)絡(luò)封包,也要經(jīng)傳輸層過濾驅(qū)動程序后,再轉(zhuǎn)發(fā)至目標(biāo)應(yīng)用程序端口。基于此工作原理,可以在傳輸層過濾驅(qū)動程序中實(shí)現(xiàn)網(wǎng)絡(luò)封包截獲。

中間層過濾驅(qū)動與傳輸層過濾驅(qū)動的基本原理一致,也是使用NDIS技術(shù)。主要差別在于,中間層驅(qū)動程序掛接在協(xié)議設(shè)備對象(包括TCP/IP設(shè)備)和網(wǎng)卡設(shè)備對象之間,任何進(jìn)出網(wǎng)卡的網(wǎng)絡(luò)封包均須先經(jīng)過中間層驅(qū)動程序的處理。中間層驅(qū)動程序更像一個(gè)虛擬網(wǎng)卡,該虛擬網(wǎng)卡封裝了物理網(wǎng)卡,對物理網(wǎng)卡的一切網(wǎng)絡(luò)訪問操作,均須先經(jīng)虛擬網(wǎng)卡處理。

1.2新的數(shù)據(jù)包抓取模型

由于現(xiàn)有的數(shù)據(jù)包抓取方法對于學(xué)生的學(xué)習(xí)和實(shí)踐都過于復(fù)雜,本文設(shè)計(jì)了一種輕量級的計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)包抓取方法,其流程如圖2所示。

圖2 網(wǎng)絡(luò)數(shù)據(jù)包抓取實(shí)現(xiàn)流程

輕量級網(wǎng)絡(luò)數(shù)據(jù)包抓取方法是通過HOOK遠(yuǎn)程注入技術(shù)[8],修改系統(tǒng)程序的運(yùn)行邏輯,使得程序跳轉(zhuǎn)到自定義的函數(shù)中運(yùn)行,實(shí)現(xiàn)需要的功能。采用上述方式只需要調(diào)用Windows 部分API即可實(shí)現(xiàn)網(wǎng)路數(shù)據(jù)包的抓取,不涉及Windows驅(qū)動開發(fā)等專業(yè)知識,適合教學(xué)研究。

2 新數(shù)據(jù)包抓取方法的實(shí)現(xiàn)

數(shù)據(jù)包抓取流程的具體實(shí)現(xiàn)方法如下。

首先,利用Windows的HOOK技術(shù),把編寫的抓取網(wǎng)絡(luò)數(shù)據(jù)包功能的動態(tài)鏈接庫(dynamic link library,DLL)程序模塊注入到計(jì)算機(jī)上的每一個(gè)進(jìn)程中[9],并通過枚舉系統(tǒng)的全部進(jìn)程,選擇需要抓包的目標(biāo)進(jìn)程。

然后,在DLL中通過攔截進(jìn)程對操作系統(tǒng)套接字函數(shù)接口(SOCKET API)的調(diào)用,并利用Windows運(yùn)行時(shí)動態(tài)裝載技術(shù)[10],獲取套接字函數(shù)接口的地址。主要代碼如下:

(1) HMODULE hWsock = LoadLibrary(L“Ws2_32.dll” );

(2) g_pBind = ( DWORD )GetProcAddress( hWsock, “bind” );

(3) g_pConnect = ( DWORD )GetProcAddress( hWsock, “connect” );

(4) g_Send = ( DWORD )GetProcAddress( hWsock, “send” );

執(zhí)行以上第一行代碼,實(shí)現(xiàn)動態(tài)裝載Windows套接字接口32位API庫模塊[11]的功能;執(zhí)行第二行代碼,獲取套接字接口中的Bind函數(shù)接口的地址[12];執(zhí)行第三行代碼,獲取套接字接口中Connect函數(shù)接口的地址,這個(gè)函數(shù)用于建立客戶端和服務(wù)器端的TCP協(xié)議邏輯連接;執(zhí)行第四行代碼,可獲取套接字接口中Send函數(shù)接口的地址,這個(gè)函數(shù)用于發(fā)送TCP協(xié)議數(shù)據(jù)包,根據(jù)協(xié)議分析的需求,可以獲取需要攔截的每一個(gè)套接字函數(shù)的接口地址。

經(jīng)過上述的過程后,還需讀取函數(shù)接口地址的指令,為以后恢復(fù)原始調(diào)用做準(zhǔn)備,并且在待攔截套接字函數(shù)地址入口處寫入自己構(gòu)造的匯編指令。構(gòu)造的匯編指令為MOV EAX, JMP EAX。查找X86架構(gòu)CPU的匯編手冊[13],可以很容易得到如上兩條匯編語句的機(jī)器指令,其十六進(jìn)制代碼為:0xB8 0x00 0x00 0x40 0x00 0xFF 0xE0 0x5F,其中斜體部分地址用自定義函數(shù)接口地址替代即可。

如此,當(dāng)進(jìn)程調(diào)用正常的套接字函數(shù)接口時(shí),會自動轉(zhuǎn)到自定義的函數(shù)體中執(zhí)行,直接拷貝函數(shù)的接收/發(fā)送緩沖區(qū)參數(shù)即可得到相應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)包;然后利用前面所保存的信息恢復(fù)原套接字函數(shù)入口指令,并調(diào)用該套接字函數(shù),執(zhí)行正常的函數(shù)功能,并再次修改該套接字函數(shù)的入口指令,為下次攔截做好準(zhǔn)備。

在自定義函數(shù)中,當(dāng)攔截到進(jìn)程對套接字函數(shù)接口的調(diào)用時(shí),截獲這些函數(shù)參數(shù)中緩沖區(qū)字段參數(shù),即可獲得網(wǎng)絡(luò)數(shù)據(jù)包。例如攔截到對Send函數(shù)的調(diào)用,即可抓取出本機(jī)通過網(wǎng)卡發(fā)出的TCP協(xié)議網(wǎng)絡(luò)數(shù)據(jù)包;攔截到Recv函數(shù)調(diào)用,即可抓取到本機(jī)通過網(wǎng)卡接收到的TCP協(xié)議網(wǎng)絡(luò)數(shù)據(jù)包;攔截到Sendto函數(shù)的調(diào)用,即可抓取到本機(jī)通過網(wǎng)卡發(fā)出的UDP協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包;攔截到Recvfrom函數(shù)調(diào)用,即可抓取到本機(jī)通過網(wǎng)卡接收到的UDP協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包。

在抓取相應(yīng)網(wǎng)絡(luò)數(shù)據(jù)包之后,恢復(fù)函數(shù)入口指令,然后調(diào)用原API函數(shù),即恢復(fù)原始調(diào)用。最后在待攔截套接字函數(shù)地址入口處再次寫入自己構(gòu)造的匯編指令,即可為下次攔截做好準(zhǔn)備。

3 新數(shù)據(jù)包抓取方法的優(yōu)勢

筆者所設(shè)計(jì)的計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)包抓取方法,是一個(gè)簡單、簡捷的網(wǎng)絡(luò)數(shù)據(jù)包抓取方法。該方法的技術(shù)實(shí)現(xiàn)門檻低,只需普通Windows API調(diào)用,無需專業(yè)的驅(qū)動開發(fā)知識,適合教學(xué)研究。該方法改變了計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議教學(xué)中只能使用專業(yè)不開源軟件抓取網(wǎng)絡(luò)數(shù)據(jù)包的限制,學(xué)生可以深入到程序內(nèi)部,甚至自己編寫抓包程序,關(guān)鍵代碼甚至不超過50行。

此方法還可以配合Windows路由表設(shè)置,用于多網(wǎng)卡主機(jī)平臺上的網(wǎng)卡負(fù)載均衡調(diào)度,即實(shí)現(xiàn)進(jìn)程與不同網(wǎng)卡的綁定。目前,在多網(wǎng)卡Windows主機(jī)環(huán)境下,不依賴三方軟件無法控制網(wǎng)卡之間的負(fù)載均衡,即:假設(shè)某張網(wǎng)卡上即使在負(fù)載過大、而其他網(wǎng)卡閑置的情況下,Windows也不會主動去調(diào)度其他網(wǎng)卡分擔(dān)負(fù)荷;而用輕量級網(wǎng)絡(luò)數(shù)據(jù)包抓取方法,攔截到目標(biāo)進(jìn)程通信的目的地址后,在Windows的路由表中添加該目的地址的輸出路由表,即可將不同的進(jìn)程的原IP地址綁定到不同的網(wǎng)卡上,從而實(shí)現(xiàn)多網(wǎng)卡之間的負(fù)載均衡調(diào)度。

4 結(jié)語

本文所設(shè)計(jì)的輕量級計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)包抓取方法,在教學(xué)領(lǐng)域具有普遍意義。本方法利用API攔截和函數(shù)入口指令替換實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)包的抓取,技術(shù)實(shí)現(xiàn)簡單,完全克服了現(xiàn)有網(wǎng)絡(luò)數(shù)據(jù)包抓取方法不開源的缺點(diǎn),學(xué)生可深入程序內(nèi)部,了解其抓包原理。本方法還可以實(shí)現(xiàn)多網(wǎng)卡之間的負(fù)載均衡調(diào)度,從而提高計(jì)算機(jī)網(wǎng)絡(luò)通信效率。

References)

[1] 廖敏,吳文慶.Windows平臺下網(wǎng)絡(luò)數(shù)據(jù)包捕獲的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識與技術(shù),2008(4):28-30.

[2] 王維頎.局域網(wǎng)數(shù)據(jù)包抓取與分析器的設(shè)計(jì)[J].科技資訊,2011(32):15.

[3] 張昊.計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)包捕獲技術(shù)淺析[J].合肥學(xué)院學(xué)報(bào):自然科學(xué)版,2009,19(2):46-48.

[4] 李浪,徐雨明,魏書堤.數(shù)據(jù)包截獲仿真實(shí)驗(yàn)平臺研究與實(shí)現(xiàn)[J].衡陽師范學(xué)院學(xué)報(bào),2008,29(3):97-101.

[5] 楊曉勇.計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)管理及信息傳輸環(huán)節(jié)安全性探討[J].信息通信,2013(10):128.

[6] 朱莉,曾慧,代杰.基于Tcpdump命令網(wǎng)絡(luò)抓包腳本工具的設(shè)計(jì)[J].指揮信息系統(tǒng)與技術(shù),2011(3):53-57.

[7] 劉捷,朱程榮,熊齊邦.分布式網(wǎng)絡(luò)自動抓包管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(22):5091-5093.

[8] 何杰惠.網(wǎng)絡(luò)數(shù)據(jù)捕獲技術(shù)的探究[J].電子制作,2013(22):141.

[9] 于杰,朱有忠.簡單實(shí)用的網(wǎng)絡(luò)嗅探器的設(shè)計(jì)與實(shí)現(xiàn)[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2010,28(4):423-427.

[10] 唐小婕.一種網(wǎng)絡(luò)數(shù)據(jù)包分析工具的設(shè)計(jì)與實(shí)現(xiàn)[J].科技信息,2013(26):298-299.

[11] 李延會,岳彩祥,徐金艷,等.基于Winpcap的數(shù)據(jù)包捕獲和協(xié)議分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國科技信息,2009(10):123-124.

[12] 翟佩超.網(wǎng)絡(luò)數(shù)據(jù)包的截取及解析[J].太原城市職業(yè)技術(shù)學(xué)院學(xué)報(bào),2013(10):167-168.

[13] 李革新.網(wǎng)絡(luò)數(shù)據(jù)包捕獲工具的開發(fā)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(8):1834-1836.

A new teaching method for data packet capture based on lightweight computer network

He Wei, Li Liang, Tian Zengshan, Zhou Mu, Zhang Yi

(Chongqing Key Laboratory of Mobile Communications Technology, Chongqing University of Posts and Telecommunications, Chongqing 400065, China)

This paper uses API interception technology and function entry instruction replacement technology to achieve computer network data packet capture. This method through the HOOK remote injection technology modifies the system running logic, so that the program can jump to a custom function to operate. Calling part of the Windows API to achieve the capture of network data packets does not involve Windows driver development and other professional knowledge. This method is mainly used in teaching demonstration in the field of computer teaching. It features simple technology, it is not necessary to drive programming knowledge, its code amount is small and it is easy to understand for students.

data packet capture; API interception; network experimental teaching; Internet

DOI:10.16791/j.cnki.sjg.2016.04.037

2015- 09- 04

重慶市教改項(xiàng)目“運(yùn)用計(jì)算機(jī)虛擬技術(shù)構(gòu)建通信系統(tǒng)實(shí)踐教學(xué)新模式”(133017);重慶郵電大學(xué)教改項(xiàng)目“移動通信系統(tǒng)仿真平臺的設(shè)計(jì)與實(shí)現(xiàn)”(XJG1302)

何維(1980—),男,重慶,碩士,講師,主要從事移動通信、通信軟件等領(lǐng)域的研究開發(fā).

E-mail:380624653@qq.com

TP393

A

1002-4956(2016)4- 0135- 03

猜你喜歡
方法
中醫(yī)特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數(shù)學(xué)教學(xué)改革的方法
化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學(xué)習(xí)方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 97色婷婷成人综合在线观看| 日本欧美中文字幕精品亚洲| 婷婷中文在线| 国产高清国内精品福利| 人妻丰满熟妇αv无码| a毛片在线播放| 久久久亚洲色| 免费可以看的无遮挡av无码| 思思99思思久久最新精品| 91在线激情在线观看| 亚洲欧美综合在线观看| 国产成人精品在线| 91精品国产一区自在线拍| 在线中文字幕日韩| 欧洲精品视频在线观看| 国产精品男人的天堂| 久久免费观看视频| 成人韩免费网站| 亚洲精品亚洲人成在线| 精品国产欧美精品v| 99热免费在线| 99re在线视频观看| 色婷婷在线影院| h网址在线观看| 亚洲日本www| 99久久99视频| 激情无码字幕综合| 国产黄色爱视频| 国产h视频在线观看视频| 亚洲女同一区二区| 国产H片无码不卡在线视频| 色老二精品视频在线观看| 国产极品美女在线观看| 伊人网址在线| 曰AV在线无码| 国产国语一级毛片在线视频| 亚洲人视频在线观看| 久久成人免费| 中文字幕欧美日韩| 视频一区视频二区中文精品| 亚洲综合18p| 伊人五月丁香综合AⅤ| 欧洲极品无码一区二区三区| 国产欧美精品一区二区| 亚洲日韩精品欧美中文字幕| 欧美成a人片在线观看| 久青草国产高清在线视频| 国产亚洲视频免费播放| 97影院午夜在线观看视频| 欧美色图第一页| 国产精品浪潮Av| 国产成年无码AⅤ片在线| 亚洲视频一区| 欧美一区二区三区欧美日韩亚洲| 日本一区高清| 无码 在线 在线| 欧美三级不卡在线观看视频| 中文无码影院| 毛片网站观看| 国产亚洲视频在线观看| 久久综合色播五月男人的天堂| 亚洲国产成人麻豆精品| 欧美中文一区| 2020国产免费久久精品99| 午夜视频www| 美女扒开下面流白浆在线试听 | 国产自在自线午夜精品视频| 精品无码日韩国产不卡av | 精品久久综合1区2区3区激情| 中国成人在线视频| 日韩无码黄色| 噜噜噜久久| 久操线在视频在线观看| 亚洲天堂.com| 国产青榴视频在线观看网站| 国产一区二区免费播放| 亚洲国产天堂在线观看| 婷婷成人综合| 91尤物国产尤物福利在线| 国产丝袜第一页| 国产大全韩国亚洲一区二区三区| 亚洲嫩模喷白浆|