編寫自己的網絡嗅探器_第1頁
編寫自己的網絡嗅探器_第2頁
編寫自己的網絡嗅探器_第3頁
編寫自己的網絡嗅探器_第4頁
編寫自己的網絡嗅探器_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

編寫自己的網絡嗅探器1國家計算機網絡入侵防范中心陳深龍、劉奇旭主要內容2實驗介紹開發(fā)前準備工作配置開發(fā)環(huán)境用WinPcap捕獲數(shù)據包分析數(shù)據包實驗過程中可能遇到的問題實驗要求一、實驗介紹3實驗目的實驗內容當前流行的嗅探器以前學生開發(fā)的嗅探器實驗目的通過開發(fā)基于WinPcap的嗅探器,掌握嗅探器的工作原理,熟悉WinPcap的使用,掌握基于WinPcap網絡嗅探器的開發(fā)過程。4實驗內容開發(fā)出一個Windows平臺上的Sniffer工具,能顯示所捕獲的數(shù)據包并能做相應的分析和統(tǒng)計。主要內容如下:列出監(jiān)測主機的所有網卡,選擇一個網卡,設置為混雜模式進行監(jiān)聽。捕獲所有流經網卡的數(shù)據包,并利用WinPcap函數(shù)庫設置過濾規(guī)則。分析捕獲到的數(shù)據包的包頭和數(shù)據,按照各種協(xié)議的格式進行格式化顯示。將所開發(fā)工具的捕獲和分析結果與常用的Sniffer進行比較,完善程序代碼。5當前流行的嗅探器當前公認的比較好的嗅探器有WiresharkSniffer

Pro6Wireshark主界面7控制列封包總覽封包內容十六進制碼Sniffer

Pro主界面8控制列封包總覽封包內容十六進制碼以前學生的嗅探器優(yōu)秀作品1主界面設置過濾器優(yōu)秀作品29優(yōu)秀作品1—主界面10優(yōu)秀作品1—設置過濾器11作秀作品212數(shù)據包統(tǒng)計信息數(shù)據包分析十六進制碼數(shù)據包列表二、開發(fā)前準備工作13開發(fā)工具不可或缺的環(huán)境WinPcap簡介WinPcap功能WinPcap架構WinPcap入門參考資源WinPcap經典論文開發(fā)工具開發(fā)語言:C++集成開發(fā)環(huán)境vc6.02003~201014不可或缺的環(huán)境WinPcapV4.1.2:/install/bin/WinPcap_4_1_2.exe驅動程序、Dll文件WinPcapV4.1.2Developer’sPack:/install/bin/WpdPack_4_1_2.zip庫文件、頭文件、簡單的示例程序代碼和幫助文件15WinPcap簡介WinPcap(WindowsPacketCapture)是Windows平臺下的鏈路層網絡訪問工具,其目的在于為Windows應用程序提供訪問網絡底層的能力。官方網站:當前的版本Stablerelease

WinPcap4.1.2Latestrelease

WinPcap4.1.2

16WinPcap的功能獲得網卡設備列表及其高級信息打開一個網卡適配器并將其設置成混雜模式捕獲數(shù)據包設置過濾器將數(shù)據包存儲為文件并處理離線文件發(fā)送數(shù)據包收集網絡通信流量的統(tǒng)計信息但是,WinPcap不能修改數(shù)據包或者攔截數(shù)據包17WinPcap架構NPF,NetgroupPacketFilter,內核級的數(shù)據報過濾器packet.dll,底層的動態(tài)連接庫wpcap.dll,架構在packet.dll之上,提供了更方便、更直接的編程方法18架構圖

19WinPcap架構之NPFNPF是WinPcap的核心部件,它處理網絡傳輸?shù)臄?shù)據包,并向應用層提供捕捉、發(fā)送和分析數(shù)據包的服務20WinPcap架構之packet.dllpacket.dll是一個提供了一系列底層函數(shù)的動態(tài)鏈接庫,功能包括:安裝、啟動和停止NPF驅動設備對網絡數(shù)據包進行嗅探發(fā)送原始的數(shù)據報獲取網卡列表和每一個網絡的相關信息對網卡查詢和設置底層參數(shù)21WinPcap架構之wpcap.dllWpcap.dll是一個含有WinPcap公共API的動態(tài)鏈接庫,它導出一系列函數(shù)供捕獲網絡數(shù)據包和分析網絡,功能包括:對網絡數(shù)據包進行嗅探發(fā)送原始的數(shù)據報獲取網卡列表和每一個網絡的相關信息將數(shù)據包信息保存到磁盤在更高層上創(chuàng)建包過濾規(guī)則并應用到底層22WinPcap入門參考資源WinPcap技術手冊V4.1.2(anofflineversioncanbefoundinthedeveloper'spack):/docs/docs_412/index.htmlWinPcap中文技術手冊V4.01(翻譯版):/WinPcap/23Winpcap經典論文[1]FulvioRisso,LorisDegioanni,AnArchitectureforHighPerformanceNetworkAnalysis.Proceedingforthe6thIEEESymposiumonComputersandCommunications(ISCC2001).HammmametJuly2001[2]LorisDegioanni,MarioBaldi,FulvioRisso,andGianlucaVarenn.ProfilingandOptimizationofSoftware-BasedNetworkAnalysisApplications24三、配置開發(fā)環(huán)境25在此我們用VC6.0所建的工程為例進行講解添加頭文件目錄添加庫文件目錄增加與WinPcap有關的預處理定義添加pcap.h頭文件添加wpcap.lib庫文件編譯并運行測試代碼添加頭文件目錄添加頭文件目錄:ToolsOptionsDerectoriesIncludefiles添加WinPcap開發(fā)包中的Include目錄26添加庫文件目錄添加庫文件目錄:ToolsOptionsDerectoriesLibraryfiles添加WinPcap開發(fā)包中的Lib目錄27增加與WinPcap有關的預處理定義增加預處理定義:WPCAP和HAVE_REMOTEProjectSettingC/C++Preprocessor28添加pcap.h頭文件在使用WinPcap函數(shù)的所有源文件中添加pcap.h“#include"pcap.h”29添加Wpcap.lib庫文件添加wpcap.lib庫文件Projectsettinglink加入wpcap.lib30編譯并運行測試代碼測試代碼:/docs/docs_412/html/group__wpcapsamps.html(使用PacketDump代碼)請根據你所建的工程類型修改這段代碼如果建的是MFCApplication,那么請修改printf等函數(shù)如果建的是ConsoleApplication,那么可以不用修改31編譯并運行測試代碼(續(xù))在ConsoleApplication下,運行結果如圖所示,這說明環(huán)境已經配置成功。32四、用WinPcap捕獲數(shù)據包33用WinPcap捕獲數(shù)據包的流程打開網絡接口設置過濾器捕獲網絡數(shù)據包釋放該設備列表用WinPcap捕獲數(shù)據包的流程34pcap_freealldevs打開網絡接口35pcap_t*pcap_open_live(constchar*

device,int

snaplen,int

promisc,int

to_ms,char*

ebuf};設置過濾器intpcap_setfilter(

pcap_t*p, structbpf_program*fp )36intpcap_compile(

pcap_t*p, structbpf_program*fp, char*str, intoptimize, bpf_u_int32netmask )捕獲網絡數(shù)據包37intpcap_next_ex( pcap_t*p, structpcap_pkthdr**pkt_header, u_char**pkt_data};釋放該設備列表38voidpcap_freealldevs(pcap_if_t*alldevsp);五、分析數(shù)據包39TCP/IP分層體系結構以太網中數(shù)據包的封裝以太網幀格式IP數(shù)據報格式TCP數(shù)據報格式字節(jié)順序以太網幀和IP數(shù)據報的結構定義例:提取源IP地址和目的IP地址TCP/IP分層體系結構40以太網中數(shù)據包的封裝41Wireshark對數(shù)據包各層協(xié)議的分析:以太網幀格式目的地址:目的MAC地址 6Byte源地址:源MAC地址 6Byte類型:表示上層協(xié)議類型 2Byte0800H:IP0806H:ARP8035H:RARP數(shù)據字段:用于攜帶上層數(shù)據

長度可變CRC:幀校驗字段 4Byte42以太網幀格式以下是Wireshark對數(shù)據包以太幀頭的分析:43IP數(shù)據報格式441:ICMP;6:TCP;17:UDPIP數(shù)據報格式以下是Wireshark對數(shù)據包的IP數(shù)據報頭的分析:45TCP數(shù)據報格式46TCP數(shù)據報格式以下是Wireshark對數(shù)據包的TCP數(shù)據報頭的分析:47以太網幀和IP數(shù)據報的結構定義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ù)據包

FrameHeader_t FrameHeader; IPHeader_t IPHeader;}Data_t;六、實驗過程中可能遇到的問題多線程給窗口發(fā)送消息數(shù)據包分片重組嗅探到網頁時,漢字的顯示問題字節(jié)順序網絡序→主機序u_shortntohs(u_shortnetshort)u_longntohl(u_longnetlong)主機序→網絡序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é)順序網絡序→主機序u_shortntohs(u_shortnetshort)u_longntohl(u_longnetlong)主機序→網絡序u_shorthtons(u_shorthostshort)u_longhtonl(u_longhostlong)51七、實驗要求52程序要求實驗報告要求程序要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論