




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、網絡作業網絡嗅探器(實驗報告)班級:F0222101 姓名:吳志杰 學號:5012219023² 系統說明1 需求說明實現Sniffer的基本功能。Sniffer 是一種用于監測網絡性能、使用情況的工具。能夠偵聽所有進出本主機的數據包,完整顯示數據包網絡層和傳輸層(ICMP、IP、TCP和UDP)的頭信息。比如,對IP頭而言,需要顯示 版本、頭長度、服務類型、數據包長度、標識、DF/MF標志、段內偏移、生存期、協議類型、源目的IP地址、選項內容。要求顯示數據的實際含義;偵聽來源于指定IP地址的數據,顯示接收到的TCP數據包的全部實際內容。需要考慮一個TCP包劃分為多個IP包傳輸的情況
2、;功能驗證手段:在運行Sniffer的同時,執行標準的Ping、Telnet和瀏覽網頁等操作,檢查Sniffier能否返回預期的結果。2 使用方法(詳見用戶手冊)運行Sniffer.exe,按“Start”按鈕開始接受顯示,“Clear”為清除,“Close”為關閉。在按下“Stop”處于靜止狀態時可選擇接受顯示哪類數據包信息,如果在靜止狀態在“IP address”中輸入IP地址,則可顯示來源于該指定IP地址的數據包信息。3 運行環境本軟件可以在Windows系統之下運行。由于軟件需要某些抓包程序的配合,在運行該軟件之前,需安裝好WinPcap_3_1_beta.exe以獲取其動態鏈接庫的支
3、持。² 概要設計1 編程環境本軟件是在VC環境下編寫,使用WinPcap中定義的頭文件和lib文件為支持,運用WinPcap提供的數據包捕獲程序執行核心操作。2 模塊分析Ø 本軟件使用的主要模塊及其功能如下:1 線程控制模塊2 抓包模塊3 數據包分析模塊開啟線程Ø 模塊間的調用關系如下: 關閉線程抓包解包² 詳細設計Ø 主要數據結構Ø IP協議typedef struct ip_header u_char ver_ihl; / Version (4 bits) + Internet header length (4 bits) u_c
4、har toservice; / Type of service u_short tlength; / Total length u_short identification; / Identification u_short flags_offset; / Flags (3 bits) + Fragment offset (13 bits) u_char longvity; / Time to live u_char protocol; / Protocol u_short checksum; / Header checksum IP_Address sAddress; / Source a
5、ddress IP_Address dAddress; / Destination address u_int opt_padding; / Option + Paddingip_header;Ø UDP協議typedef struct udp_header u_short sPort; / Source port u_short dPort; / Destination port u_short length; / Datagram length u_short checksum; / Checksumudp_header;Ø TCP協議typedef struct tc
6、p_headeru_short sPort; /源端口/u_short dPort; /目的端口/u_int sequence; /序號/u_int affirmNo; /確認號/u_char ipHeadLen; /段頭長度/u_char code; /碼位/u_short winsize; /窗口長度/u_short checksum; /校驗和/u_short epointer; /緊急指針/tcp_header;Ø MAC地址typedef struct MAC_Addressu_int sMac;u_char sMacp;u_int dMac;u_char dMacp;Ma
7、c_Address;Ø IP地址typedef struct IP_Addressu_char byte4;IP_Address;Ø ICMP協議typedef struct icmp_headeru_char type;/報文類型u_char code;/代碼u_short checksum; /校驗和u_int temp4;/其余4個字段icmp_header;Ø 主要代碼描述Ø 查找主機上所有的適配器 if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) =
8、-1) 查找適配器時出錯; for(d=alldevs;d;d=d->next) /顯示所有適配器的描述信息 i+; if(i=0) 主機上無適配器; Ø 打開指定的適配器 inum=所選適配器的索引號; for(d=alldevs, i=0; i< inum-1 ;d=d->next, i+); /循環直到找到選定的適器 adhandle= pcap_open (d->name, 65536, PCAP_OPENFLAG_PROMISCUOUS, 1000,NULL,errbuf); /打開指定的適配器 Ø 開啟線程并循環抓包 AfxBeginTh
9、read(ThreadProc,NULL); /建立一個抓包線程 UINT ThreadProc(LPVOID p) /循環地抓包while(timer=1)pcap_dispatch(adhandle, 0, packet_handler, NULL);/抓包 注:ThreadProc:線程函數,在函數中用到了pcap_findalldevs_ex,pcap_freealldevs,pcap_open,pcap_datalink,pcap_compile,pcap_setfilter和pcap_dispatch幾個庫函數。其中最重要的函數是抓包函數pcap_dispatch。變量timer的
10、作用是通過OnStartSniffer()函數對timer的值的改變來控制線程是運行還是終止。 Ø 解包void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data)用來處理抓包后的一些事情。對IP包的分析(包括tcp,udp,icmp)和顯示的內容的處理都在這個函數內。詳細的代碼見程序。其中:if(ih->protocol=6)/6是TCPcontent9="TCP"else if(ih->protocol=17)/17是UDPc
11、ontent9="UDP"else if(ih->protocol=1)/1是ICMPcontent9="ICMP"elsecontent9.Format("%d",ih->protocol);是對協議類型的處理² 實驗小結Ø 遇到的問題1本項目的一個重點是winpcap中函數的使用。在網上查找了一些文檔后,學會了如何使用其中的庫函數.如:知道了pcap_dispatch是一次抓一個包,而pcap_loop是循環抓包。2ip包的分析曾使我迷茫,主要原因是沒弄清楚IP包的一些字段的實際意義,如校驗和應以1
12、6進制的形式予以顯示,從而造成對一些字段的處理不對了。問題在仔細看了一遍書后得到了解決。3在編碼的過程中多次出現編譯通過,而運行時出現內存錯誤,出現這種情況后,我就一條一條語句的執行并設置breakpoint,找到錯誤的語句,如:在程序中的一些全局函數:threadproc, packet_handler等要用到dlg中的變量,這時需要定義一個全局的dlg的對象,本來我是定義一個對象的,可是總是出錯,后來改成指針,并在dlg的constructor中將this指針賦給它,結果就對了。 Ø 體會在選擇做sniffer前我一直認為這個程序的關鍵是如何用winpcap的庫函數,可是在深入的研究之后,我發現winpcap的研究其實并不是最重要的,因為在網上和在一些書籍中都能找到用法,其本身只是一個工具。最重要的恰恰是ip包的分析和顯示。通過上學期對網絡的學習,我了解了ip包的結構,可那只是膚淺的感性的認識。通過做sniffer后,我真正懂得了ip包的結構,并深深的記住了。另外,通過這次的項目,我還學習了以前不知道的一些關于mfc的知識,如:如何使用listcontrol控件,創造圓形按鈕,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紙質運動裝備材料研究與應用考核試卷
- 冷凍飲品行業企業發展戰略規劃與實施策略研究案例分析考核試卷
- 膠合板產品的用戶滿意度調查考核試卷
- 2025【合同期內鋼筋混凝土鉆孔灌注樁工程勞務分包】
- 2025年試用期內用人單位能否與員工解除勞動合同
- 2025居家保姆服務合同模板
- DB3207T 1038-2023優 質雙早稻麥品種周年綠色高效生產技術規程
- 蘇教版四年級上冊數學教案全冊
- 司機聘用合同書集錦二零二五年
- 適用復雜情況股權轉讓協議
- 雙全日培訓課件
- 甲油膠行業報告
- 醫務人員職業暴露與防護講課
- 山東省萊西市2024-2025學年高一語文下學期3月月考試題含解析
- 康復科人員崗位考核制度(3篇)
- 實驗動物生物樣本質量控制規范
- 智能機器人配送行業現狀分析及未來三至五年行業發展報告
- 炎癥性腸病的外科治療
- 復變函數與積分變換課程教案講義
- BEC商務英語初級考試歷年真題及答案6套
- 消除“艾梅乙”醫療歧視-從我做起
評論
0/150
提交評論