版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
編寫自己的網(wǎng)絡(luò)嗅探器1國(guó)家計(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平臺(tái)上的Sniffer工具,能顯示所捕獲的數(shù)據(jù)包并能做相應(yīng)的分析和統(tǒng)計(jì)。主要內(nèi)容如下:列出監(jiān)測(cè)主機(jī)的所有網(wǎng)卡,選擇一個(gè)網(wǎng)卡,設(shè)置為混雜模式進(jìn)行監(jiān)聽。捕獲所有流經(jīng)網(wǎng)卡的數(shù)據(jù)包,并利用WinPcap函數(shù)庫(kù)設(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簡(jiǎn)介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庫(kù)文件、頭文件、簡(jiǎn)單的示例程序代碼和幫助文件15WinPcap簡(jiǎn)介WinPcap(WindowsPacketCapture)是Windows平臺(tái)下的鏈路層網(wǎng)絡(luò)訪問工具,其目的在于為Windows應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。官方網(wǎng)站:當(dāng)前的版本Stablerelease
WinPcap4.1.2Latestrelease
WinPcap4.1.2
16WinPcap的功能獲得網(wǎng)卡設(shè)備列表及其高級(jí)信息打開一個(gè)網(wǎng)卡適配器并將其設(shè)置成混雜模式捕獲數(shù)據(jù)包設(shè)置過濾器將數(shù)據(jù)包存儲(chǔ)為文件并處理離線文件發(fā)送數(shù)據(jù)包收集網(wǎng)絡(luò)通信流量的統(tǒng)計(jì)信息但是,WinPcap不能修改數(shù)據(jù)包或者攔截?cái)?shù)據(jù)包17WinPcap架構(gòu)NPF,NetgroupPacketFilter,內(nèi)核級(jí)的數(shù)據(jù)報(bào)過濾器packet.dll,底層的動(dòng)態(tài)連接庫(kù)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)鏈接庫(kù),功能包括:安裝、啟動(dòng)和停止NPF驅(qū)動(dòng)設(shè)備對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行嗅探發(fā)送原始的數(shù)據(jù)報(bào)獲取網(wǎng)卡列表和每一個(gè)網(wǎng)絡(luò)的相關(guān)信息對(duì)網(wǎng)卡查詢和設(shè)置底層參數(shù)21WinPcap架構(gòu)之wpcap.dllWpcap.dll是一個(gè)含有WinPcap公共API的動(dòng)態(tài)鏈接庫(kù),它導(dǎo)出一系列函數(shù)供捕獲網(wǎng)絡(luò)數(shù)據(jù)包和分析網(wǎng)絡(luò),功能包括:對(duì)網(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ù)手冊(cè)V4.1.2(anofflineversioncanbefoundinthedeveloper'spack):/docs/docs_412/index.htmlWinPcap中文技術(shù)手冊(cè)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)行講解添加頭文件目錄添加庫(kù)文件目錄增加與WinPcap有關(guān)的預(yù)處理定義添加pcap.h頭文件添加wpcap.lib庫(kù)文件編譯并運(yùn)行測(cè)試代碼添加頭文件目錄添加頭文件目錄:ToolsOptionsDerectoriesIncludefiles添加WinPcap開發(fā)包中的Include目錄26添加庫(kù)文件目錄添加庫(kù)文件目錄: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庫(kù)文件添加wpcap.lib庫(kù)文件Projectsettinglink加入wpcap.lib30編譯并運(yùn)行測(cè)試代碼測(cè)試代碼:/docs/docs_412/html/group__wpcapsamps.html(使用PacketDump代碼)請(qǐng)根據(jù)你所建的工程類型修改這段代碼如果建的是MFCApplication,那么請(qǐng)修改printf等函數(shù)如果建的是ConsoleApplication,那么可以不用修改31編譯并運(yùn)行測(cè)試代碼(續(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對(duì)數(shù)據(jù)包各層協(xié)議的分析:以太網(wǎng)幀格式目的地址:目的MAC地址 6Byte源地址:源MAC地址 6Byte類型:表示上層協(xié)議類型 2Byte0800H:IP0806H:ARP8035H:RARP數(shù)據(jù)字段:用于攜帶上層數(shù)據(jù)
長(zhǎng)度可變CRC:幀校驗(yàn)字段 4Byte42以太網(wǎng)幀格式以下是Wireshark對(duì)數(shù)據(jù)包以太幀頭的分析:43IP數(shù)據(jù)報(bào)格式441:ICMP;6:TCP;17:UDPIP數(shù)據(jù)報(bào)格式以下是Wireshark對(duì)數(shù)據(jù)包的IP數(shù)據(jù)報(bào)頭的分析:45TCP數(shù)據(jù)報(bào)格式46TCP數(shù)據(jù)報(bào)格式以下是Wireshark對(duì)數(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)頁(yè)時(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 競(jìng)聘衛(wèi)生演講稿范文合集7篇
- 國(guó)慶閱兵觀后感
- 小松機(jī)械制造(山東)有限公司HD系列重卡生產(chǎn)項(xiàng)目環(huán)評(píng)報(bào)告表
- 1#隧道土建及預(yù)埋管工程實(shí)施性組織設(shè)計(jì)
- 肥胖的營(yíng)養(yǎng)干預(yù)
- FusionCloud教育行業(yè)桌面云成功案例集
- 2025年金屬壓力及大型容器項(xiàng)目建議書
- 第3課 太平天國(guó)運(yùn)動(dòng)(分層作業(yè))(解析版)
- 地鐵站建設(shè)爆破施工合同模板
- 法律服務(wù)保修承諾書樣本
- 2024下半年軟考信息安全工程師考試真題-及答案-打印
- 項(xiàng)目經(jīng)理或管理招聘面試題與參考回答
- 中華人民共和國(guó)能源法
- 常見急救知識(shí)培訓(xùn)
- 義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2024年版)
- 《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)》初中內(nèi)容解讀
- 產(chǎn)品質(zhì)量檢測(cè)服務(wù)行業(yè)營(yíng)銷策略方案
- 佛吉亞卓越體系知識(shí)手冊(cè)
- 第五單元作文 記述與動(dòng)物的相處 課件七年級(jí)語文上冊(cè)人教版2024
- 互聯(lián)網(wǎng)新聞信息服務(wù)管理規(guī)定試題
- GB/T 3487-2024乘用車輪輞規(guī)格系列
評(píng)論
0/150
提交評(píng)論