版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
編寫自己的網(wǎng)絡(luò)嗅探器1國家計(jì)算機(jī)網(wǎng)絡(luò)入侵防范中心陳深龍、劉奇旭主要內(nèi)容2實(shí)驗(yàn)介紹開發(fā)前準(zhǔn)備工作配置開發(fā)環(huán)境用WinPcap捕獲數(shù)據(jù)包分析數(shù)據(jù)包實(shí)驗(yàn)過程中可能遇到的問題實(shí)驗(yàn)要求一、實(shí)驗(yàn)介紹3實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)內(nèi)容當(dāng)前流行的嗅探器以前學(xué)生開發(fā)的嗅探器實(shí)驗(yàn)?zāi)康耐ㄟ^開發(fā)基于WinPcap的嗅探器,掌握嗅探器的工作原理,熟悉WinPcap的使用,掌握基于WinPcap網(wǎng)絡(luò)嗅探器的開發(fā)過程。4實(shí)驗(yàn)內(nèi)容開發(fā)出一個(gè)Windows平臺上的Sniffer工具,能顯示所捕獲的數(shù)據(jù)包并能做相應(yīng)的分析和統(tǒng)計(jì)。主要內(nèi)容如下:列出監(jiān)測主機(jī)的所有網(wǎng)卡,選擇一個(gè)網(wǎng)卡,設(shè)置為混雜模式進(jìn)行監(jiān)聽。捕獲所有流經(jīng)網(wǎng)卡的數(shù)據(jù)包,并利用WinPcap函數(shù)庫設(shè)置過濾規(guī)則。分析捕獲到的數(shù)據(jù)包的包頭和數(shù)據(jù),按照各種協(xié)議的格式進(jìn)行格式化顯示。將所開發(fā)工具的捕獲和分析結(jié)果與常用的Sniffer進(jìn)行比較,完善程序代碼。5當(dāng)前流行的嗅探器當(dāng)前公認(rèn)的比較好的嗅探器有WiresharkSniffer
Pro6Wireshark主界面7控制列封包總覽封包內(nèi)容十六進(jìn)制碼Sniffer
Pro主界面8控制列封包總覽封包內(nèi)容十六進(jìn)制碼以前學(xué)生的嗅探器優(yōu)秀作品1主界面設(shè)置過濾器優(yōu)秀作品29優(yōu)秀作品1—主界面10優(yōu)秀作品1—設(shè)置過濾器11作秀作品212數(shù)據(jù)包統(tǒng)計(jì)信息數(shù)據(jù)包分析十六進(jìn)制碼數(shù)據(jù)包列表二、開發(fā)前準(zhǔn)備工作13開發(fā)工具不可或缺的環(huán)境WinPcap簡介WinPcap功能WinPcap架構(gòu)WinPcap入門參考資源WinPcap經(jīng)典論文開發(fā)工具開發(fā)語言:C++集成開發(fā)環(huán)境vc6.02003~201014不可或缺的環(huán)境WinPcapV4.1.2:/install/bin/WinPcap_4_1_2.exe驅(qū)動(dòng)程序、Dll文件WinPcapV4.1.2Developer’sPack:/install/bin/WpdPack_4_1_2.zip庫文件、頭文件、簡單的示例程序代碼和幫助文件15WinPcap簡介WinPcap(WindowsPacketCapture)是Windows平臺下的鏈路層網(wǎng)絡(luò)訪問工具,其目的在于為Windows應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。官方網(wǎng)站:當(dāng)前的版本Stablerelease
WinPcap4.1.2Latestrelease
WinPcap4.1.2
16WinPcap的功能獲得網(wǎng)卡設(shè)備列表及其高級信息打開一個(gè)網(wǎng)卡適配器并將其設(shè)置成混雜模式捕獲數(shù)據(jù)包設(shè)置過濾器將數(shù)據(jù)包存儲為文件并處理離線文件發(fā)送數(shù)據(jù)包收集網(wǎng)絡(luò)通信流量的統(tǒng)計(jì)信息但是,WinPcap不能修改數(shù)據(jù)包或者攔截?cái)?shù)據(jù)包17WinPcap架構(gòu)NPF,NetgroupPacketFilter,內(nèi)核級的數(shù)據(jù)報(bào)過濾器packet.dll,底層的動(dòng)態(tài)連接庫wpcap.dll,架構(gòu)在packet.dll之上,提供了更方便、更直接的編程方法18架構(gòu)圖
19WinPcap架構(gòu)之NPFNPF是WinPcap的核心部件,它處理網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包,并向應(yīng)用層提供捕捉、發(fā)送和分析數(shù)據(jù)包的服務(wù)20WinPcap架構(gòu)之packet.dllpacket.dll是一個(gè)提供了一系列底層函數(shù)的動(dòng)態(tài)鏈接庫,功能包括:安裝、啟動(dòng)和停止NPF驅(qū)動(dòng)設(shè)備對網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行嗅探發(fā)送原始的數(shù)據(jù)報(bào)獲取網(wǎng)卡列表和每一個(gè)網(wǎng)絡(luò)的相關(guān)信息對網(wǎng)卡查詢和設(shè)置底層參數(shù)21WinPcap架構(gòu)之wpcap.dllWpcap.dll是一個(gè)含有WinPcap公共API的動(dòng)態(tài)鏈接庫,它導(dǎo)出一系列函數(shù)供捕獲網(wǎng)絡(luò)數(shù)據(jù)包和分析網(wǎng)絡(luò),功能包括:對網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行嗅探發(fā)送原始的數(shù)據(jù)報(bào)獲取網(wǎng)卡列表和每一個(gè)網(wǎng)絡(luò)的相關(guān)信息將數(shù)據(jù)包信息保存到磁盤在更高層上創(chuàng)建包過濾規(guī)則并應(yīng)用到底層22WinPcap入門參考資源WinPcap技術(shù)手冊V4.1.2(anofflineversioncanbefoundinthedeveloper'spack):/docs/docs_412/index.htmlWinPcap中文技術(shù)手冊V4.01(翻譯版):/WinPcap/23Winpcap經(jīng)典論文[1]FulvioRisso,LorisDegioanni,AnArchitectureforHighPerformanceNetworkAnalysis.Proceedingforthe6thIEEESymposiumonComputersandCommunications(ISCC2001).HammmametJuly2001[2]LorisDegioanni,MarioBaldi,FulvioRisso,andGianlucaVarenn.ProfilingandOptimizationofSoftware-BasedNetworkAnalysisApplications24三、配置開發(fā)環(huán)境25在此我們用VC6.0所建的工程為例進(jìn)行講解添加頭文件目錄添加庫文件目錄增加與WinPcap有關(guān)的預(yù)處理定義添加pcap.h頭文件添加wpcap.lib庫文件編譯并運(yùn)行測試代碼添加頭文件目錄添加頭文件目錄:ToolsOptionsDerectoriesIncludefiles添加WinPcap開發(fā)包中的Include目錄26添加庫文件目錄添加庫文件目錄:ToolsOptionsDerectoriesLibraryfiles添加WinPcap開發(fā)包中的Lib目錄27增加與WinPcap有關(guān)的預(yù)處理定義增加預(yù)處理定義:WPCAP和HAVE_REMOTEProjectSettingC/C++Preprocessor28添加pcap.h頭文件在使用WinPcap函數(shù)的所有源文件中添加pcap.h“#include"pcap.h”29添加Wpcap.lib庫文件添加wpcap.lib庫文件Projectsettinglink加入wpcap.lib30編譯并運(yùn)行測試代碼測試代碼:/docs/docs_412/html/group__wpcapsamps.html(使用PacketDump代碼)請根據(jù)你所建的工程類型修改這段代碼如果建的是MFCApplication,那么請修改printf等函數(shù)如果建的是ConsoleApplication,那么可以不用修改31編譯并運(yùn)行測試代碼(續(xù))在ConsoleApplication下,運(yùn)行結(jié)果如圖所示,這說明環(huán)境已經(jīng)配置成功。32四、用WinPcap捕獲數(shù)據(jù)包33用WinPcap捕獲數(shù)據(jù)包的流程打開網(wǎng)絡(luò)接口設(shè)置過濾器捕獲網(wǎng)絡(luò)數(shù)據(jù)包釋放該設(shè)備列表用WinPcap捕獲數(shù)據(jù)包的流程34pcap_freealldevs打開網(wǎng)絡(luò)接口35pcap_t*pcap_open_live(constchar*
device,int
snaplen,int
promisc,int
to_ms,char*
ebuf};設(shè)置過濾器intpcap_setfilter(
pcap_t*p, structbpf_program*fp )36intpcap_compile(
pcap_t*p, structbpf_program*fp, char*str, intoptimize, bpf_u_int32netmask )捕獲網(wǎng)絡(luò)數(shù)據(jù)包37intpcap_next_ex( pcap_t*p, structpcap_pkthdr**pkt_header, u_char**pkt_data};釋放該設(shè)備列表38voidpcap_freealldevs(pcap_if_t*alldevsp);五、分析數(shù)據(jù)包39TCP/IP分層體系結(jié)構(gòu)以太網(wǎng)中數(shù)據(jù)包的封裝以太網(wǎng)幀格式IP數(shù)據(jù)報(bào)格式TCP數(shù)據(jù)報(bào)格式字節(jié)順序以太網(wǎng)幀和IP數(shù)據(jù)報(bào)的結(jié)構(gòu)定義例:提取源IP地址和目的IP地址TCP/IP分層體系結(jié)構(gòu)40以太網(wǎng)中數(shù)據(jù)包的封裝41Wireshark對數(shù)據(jù)包各層協(xié)議的分析:以太網(wǎng)幀格式目的地址:目的MAC地址 6Byte源地址:源MAC地址 6Byte類型:表示上層協(xié)議類型 2Byte0800H:IP0806H:ARP8035H:RARP數(shù)據(jù)字段:用于攜帶上層數(shù)據(jù)
長度可變CRC:幀校驗(yàn)字段 4Byte42以太網(wǎng)幀格式以下是Wireshark對數(shù)據(jù)包以太幀頭的分析:43IP數(shù)據(jù)報(bào)格式441:ICMP;6:TCP;17:UDPIP數(shù)據(jù)報(bào)格式以下是Wireshark對數(shù)據(jù)包的IP數(shù)據(jù)報(bào)頭的分析:45TCP數(shù)據(jù)報(bào)格式46TCP數(shù)據(jù)報(bào)格式以下是Wireshark對數(shù)據(jù)包的TCP數(shù)據(jù)報(bào)頭的分析:47以太網(wǎng)幀和IP數(shù)據(jù)報(bào)的結(jié)構(gòu)定義48typedefstructFrameHeader_t{//幀首部
BYTE DesMAC[6]; //目的地址
BYTESrcMAC[6]; //源地址
WORDFrameType; //幀類型}FrameHeader_t;typedefstructIPHeader_t{//IP首部
BYTE Ver_HLen; BYTE TOS; WORD TotalLen; WORD ID; WORD Flag_Segment; BYTE TTL; BYTE Protocol; WORD Checksum; ULONG SrcIP; ULONG DstIP;}IPHeader_t;typedefstructData_t{ //包含幀首部和IP首部的數(shù)據(jù)包
FrameHeader_t FrameHeader; IPHeader_t IPHeader;}Data_t;六、實(shí)驗(yàn)過程中可能遇到的問題多線程給窗口發(fā)送消息數(shù)據(jù)包分片重組嗅探到網(wǎng)頁時(shí),漢字的顯示問題字節(jié)順序網(wǎng)絡(luò)序→主機(jī)序u_shortntohs(u_shortnetshort)u_longntohl(u_longnetlong)主機(jī)序→網(wǎng)絡(luò)序u_shorthtons(u_shorthostshort)u_longhtonl(u_longhostlong)49例:提取源IP地址和目的IP地址50Data_t *IPPacket;ULONG SourceIP,DestinationIP;……IPPacket=(Data_t*)pkt_data;……SourceIP=ntohl(IPPacket->IPHeader.SrcIP);DestinationIP=ntohl(IPPacket->IPHeader.DstIP);……字節(jié)順序網(wǎng)絡(luò)序→主機(jī)序u_shortntohs(u_shortnetshort)u_longntohl(u_longnetlong)主機(jī)序→網(wǎng)絡(luò)序u_shorthtons(u_shorthostshort)u_longhtonl(u_longhostlong)51七、實(shí)驗(yàn)要求52程序要求實(shí)驗(yàn)報(bào)告要求程序要
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程分包補(bǔ)充協(xié)議書范本
- 標(biāo)準(zhǔn)平房租賃合同書
- 磚塊砌體采購合同
- 招標(biāo)方案文件編寫方法
- 熱力管道建設(shè)招標(biāo)預(yù)算
- 短期服務(wù)合同樣本
- 攝影配樂服務(wù)協(xié)議
- 建筑地樁勞務(wù)合作
- 專業(yè)建議潤滑油銷售合同的優(yōu)化建議
- 小學(xué)食堂食材供應(yīng)商招募
- 長安歐尚X70A說明書
- 燃料電池系統(tǒng)增濕器性能測試規(guī)范
- 【溫商精神導(dǎo)論課程論文:溫商精神形成的歷史文化分析3000字】
- 平行檢查記錄范本
- 陳爽-春晚小品爆笑《如此課堂》臺詞
- 趣味運(yùn)動(dòng)會兒童拔河比賽技巧
- 撤場通知書( 模板)
- 2022-2023學(xué)年四川省巴中市巴州區(qū)川教版(三起)四年級上學(xué)期期末英語試卷
- 2023-2024學(xué)年北京市海淀區(qū)八年級上學(xué)期數(shù)學(xué)期末質(zhì)量檢測模擬卷合集2套(含解析)
- 人教版(2023) 選擇性必修第一冊 Unit 2 Looking into the Future Assessing Your Progress教案
- 腦血管意外的護(hù)理常規(guī)課件
評論
0/150
提交評論