freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設計:一個網(wǎng)絡嗅探工具的開發(fā)-資料下載頁

2024-12-03 17:50本頁面

【導讀】隨著網(wǎng)絡技術的飛速發(fā)展,網(wǎng)絡安全問題越來越被人重視。嗅探技術作為網(wǎng)絡安全。攻防中最基礎的技術,既可以用于獲取網(wǎng)絡中傳輸?shù)拇罅棵舾行畔ⅲ部捎糜诰W(wǎng)絡管理。通過獲取網(wǎng)絡數(shù)據(jù)包的流向和內(nèi)容等信息,可以進行網(wǎng)絡安全分析和網(wǎng)絡威脅應對。此對網(wǎng)絡嗅探器的研究具有重要意義。思想進行設計并實現(xiàn)了一個網(wǎng)絡嗅探工具。該嗅探工具的總體架構劃分為5個部分,分。的圖形化用戶界面。關信息以供用戶參考決策。

  

【正文】 節(jié)為單位 。 lpStartAddress 是 函數(shù)指針,這個函數(shù)將被這個線程執(zhí)行,表示了線程的起始地址,相當于線程的入口函數(shù) ,函數(shù)原型是 DWORD WINAPI ThreadProc(LPVOID lpParameter)。 lpParameter 是 傳遞給線程的參數(shù); dwCreationFlags 是 控制這個線程創(chuàng)建的附加標記。若該值被指定,線程創(chuàng)建后處于暫停狀態(tài),直到調(diào)用了 ResumeThread 才被執(zhí)行。為 0 時,線程創(chuàng)建后立即運行。 lpThreadId 是 線程的標示符。 接收線程只負責接收數(shù)據(jù)、建立數(shù)據(jù)鏈表和判斷是否存在工作線程,若存在則繼續(xù)接收下一數(shù)據(jù)包,否則建立工作線程。寫線程僅負責在有新數(shù)據(jù)時解析并顯示,沒有新數(shù)據(jù)時自動結束。這樣做的好處是,數(shù)據(jù)接收與數(shù)據(jù)顯示完全分離。接收線程只完 成最少的工作量,不必等待顯示,最大程度上降低了漏包的概率。寫線程處理協(xié)議解析和屏幕顯示,寫屏速度僅僅受限于計算機的處理速度。 接收及寫線程流程如下圖 所示。 圖 接受線程流程 是 否 收到 是 超時返回 否 申請內(nèi)存并加入鏈表 接受線程開始 接受數(shù)據(jù)包 寫線程存在 創(chuàng)建寫線程 一個網(wǎng)絡嗅探工具的開發(fā) 第 22 頁 共 47 頁 圖 工作線程流程 至于顯示速度不能完全與接收速度同步 , 是因為在網(wǎng)絡流量較大時,封包截獲的速度遠大于協(xié)議解析和寫屏的速度,即接收線程建立數(shù)據(jù)鏈表遠快于工作線程對鏈表的處理,這時,封包信息的顯示會稍有 延遲。計算機處理速度越快,延遲越小。在嗅探器的正常工作中,通常需要根據(jù)一定的條件對接收的數(shù)據(jù)包進行過濾,這樣可以極大的提高顯示效率,達到基本同步。 過濾 模塊設計 WinPcap 最強大的特性之一,就是擁有過濾數(shù)據(jù)包的引擎。它提供非常有效的方法去獲取網(wǎng)絡流量中的某些數(shù)據(jù)包,這也是 WinPcap 捕獲機制中的一個重要組成部分。 在緒論章節(jié)到過, WinPcap 的過濾引擎直接源自 BPF,所以 WinPcap 的過濾機制與 BPF 的過濾機制 是一致的 。 本程序基于 WinPcap 庫建立,自然繼承 WinPcap 最強大的封 包過濾功能。程序接受符合 預定義語法的過濾表達式,對捕獲數(shù)據(jù)進行過濾。相關 規(guī)則函數(shù) (1)int pcap_setfilter(pcap_t *p,struct bpf_program *fp) 此函數(shù)的功能是設置 BFP 過濾規(guī)則,由參數(shù) fp 確定。 (2)int pcap_pile(pcap_t *p,struct bfp_program *program,char *buf, int optimize,bpf_u_int32 mask) 此函數(shù)的功能是編譯 BPF 過濾規(guī)則。 (3)int pcap_pile_nopcap(int snaplen_arg,int linktype_arg, strcut bpf_program *program,char *buf,int optimize,bpf_u_int 32 mask) 是 否 寫線程開始 有新數(shù)據(jù) 寫線程結束 協(xié)議解析、寫屏 一個網(wǎng)絡嗅探工具的開發(fā) 第 23 頁 共 47 頁 此函數(shù)的功能也是編譯 BPF過濾規(guī)則。 (4)void pcap_freecode(struct bpf_program *program) 此函數(shù)的功能是釋放過濾規(guī)則的內(nèi)存。 下圖 相關 函數(shù)調(diào)用關系 圖 。 圖 過 濾器函數(shù)調(diào)用關系 由于 WinPcap的強大過濾功能,使得 用戶只需簡單的設置一系列過濾條件,最終便能獲得滿足條件的數(shù)據(jù)包。 具體過濾規(guī)則見本程序的幫助文檔中的規(guī)則說明,下面舉例介紹過濾條件的設置。 (1)dst host and tcp or udp 僅獲取目的主機為 “ host” 的 TCP 幀或 UDP 幀。 應用程序 設置過濾器 pcap_pile pcap_freecode 系統(tǒng)調(diào)用 NPF 測試過濾器 釋放過濾器 pcap_pile_nopcap pcap_setfilter pcap_setfilter_win32_npf pcap_open_dead pcap_pile pcap_close PacketSetBpf DeviceIoConctrol NPF_IoConctrol NPF_tap bpf_validate NPF_jitter NPF_ResetBuffer_Contents NPFtoX86 bpf_filter_with_2_buffers NPFtoX86 一個網(wǎng)絡嗅探工具的開發(fā) 第 24 頁 共 47 頁 (2)tcp[tcpflags]amp。 (tcpsyn | tcpack) != 0 僅獲取 SYN 標志位或 ACK 標志位為 1 的 TCP 幀。預定義關鍵字方便了對相應的協(xié)議標志位的判斷。 (3)tcp and less 60 總長度小于 60 字節(jié)的 TCP 幀。 (4)tcp dst port 80 到達本機 TCP端口 80的幀 。這 是語法中最強大的部分,可以完全自定義過濾幀。 捕獲模塊設計 在以太網(wǎng)中有兩種基本的監(jiān)聽技術,即被動監(jiān)聽和主動監(jiān)聽,被動監(jiān)聽的原理就是把網(wǎng)卡置于混雜模式,然后捕獲數(shù)據(jù)包。本系統(tǒng) 中 數(shù)據(jù)捕獲模塊的設計 是 利用現(xiàn)有的開發(fā)包 WinPcap,采取被動監(jiān)聽方式實現(xiàn)的 。 WinPcap 提供 2 種抓包方法 : pcap_loop()方法和 pcap_next_ex()方法。前者是基于回調(diào)的原理 來捕獲數(shù)據(jù)包,用戶在 pacp_loop()函數(shù)中寫希望執(zhí)行的代碼,系統(tǒng)會記錄下這個函數(shù)的地址作為系統(tǒng)的一個接口。當有數(shù)據(jù)包流過網(wǎng)卡時,系統(tǒng)會自動調(diào)用這個接口函數(shù)執(zhí)行相應的功能。 而 后者不同,它是被程序員顯示調(diào)用的,即只有當編程人員使用了 pcap_next_ex()函數(shù)才能收到數(shù)據(jù)包 ,它 每次捕獲一個數(shù)據(jù)包。 設置好過濾器后,就調(diào)用函數(shù) pcap_loop 進行循環(huán)監(jiān)聽。該函數(shù)對進行報文協(xié)議分析的入口通過回調(diào)函數(shù)的形式進行指定,啟動網(wǎng)絡報文截取組件進行網(wǎng)絡報文截取,通過回調(diào)機制(非阻塞模式)對截取到的報文進行處理。 具 體到編程實現(xiàn)上 , 相關函數(shù)及其說明如下 : (1)int pcap_loop(pcap_t *p,int t,pcap_handler callback,u_char *user) 此函數(shù)是循環(huán)捕獲網(wǎng)絡數(shù)據(jù)包,直到遇到錯誤或滿足退出條件。每捕獲一個數(shù)據(jù)包就調(diào)用 callback 只是的回調(diào)函數(shù)。所以,可以在回調(diào)函數(shù)中對捕獲到的數(shù)據(jù)包進行操作。 (2)int pcap_dispatch(pcap_t *p,int t,pcap_handler callback, u_char *user) 此函數(shù)的功能是捕獲網(wǎng)路數(shù)據(jù)包。 一個網(wǎng)絡嗅探工具的開發(fā) 第 25 頁 共 47 頁 (3)const u_char *pcap_next(pcap_t *p,struct pcap_pkthdr *h) 此函數(shù)的功能是捕獲 下 一個網(wǎng)絡數(shù)據(jù)包,然后返回此數(shù)據(jù)包。 (4)int pcap_next_ex(pcap_t *p,struct pcap_pkthdr **pkt_header, const u_char **pkt_data) 此函數(shù)的功能是捕獲一個網(wǎng)絡數(shù)據(jù)包。 (5)void pcap_breakloop(pcap_t *p) 此函數(shù)的功能是退出循環(huán)捕 獲數(shù)據(jù)包狀態(tài) (6)pcap_t *pcap_open_dead(int linktype,int snaplen) 此函數(shù)的功能是構造一個 Libpcap 句柄。 (7)void pcap_open_offline(const char *fname,char *errbuf) 此函數(shù)的功能是打開一個文件,此文件的內(nèi)容是網(wǎng)絡數(shù)據(jù)包。 (8)void pcap_close(pcap_t *p) 此函數(shù)的功能是關閉 Libpcap 操作,并銷毀相應的資源。 分析模塊設計 以太網(wǎng)幀是 OSI 參考模型數(shù)據(jù)鏈路層的封 裝,網(wǎng)絡層的數(shù)據(jù)包被加上幀頭和幀尾,構成可由數(shù)據(jù)鏈路層識別的數(shù)據(jù)幀。雖然幀頭和幀尾所用的字節(jié)數(shù)是固定不變的,但根據(jù)被封裝數(shù)據(jù)包大小的不同,以太網(wǎng)幀的長度也隨之變化,變化的范圍是 641518 字節(jié)(不包括 8字節(jié)的前導碼)。 常用的以太網(wǎng) MAC幀格式有兩種標準: DIX Ether V2 標準和 IEEE 的 標準。現(xiàn)在使用最多的是以太網(wǎng) V2 的 MAC 幀格式。該標準由 5 個字段組成:目的地址、源地址、類型、數(shù)據(jù) 報 、效驗碼,如 表 51所示 。 表 51 Ether_II的幀結構 前導碼 目的地址 源地址 類 型 數(shù)據(jù) 報 校驗碼 8 字節(jié) 6字節(jié) 6 字節(jié) 2字節(jié) 46~1500 字節(jié) 4 字節(jié) 前導碼:包括同步碼(用來使局域網(wǎng)中的所有節(jié)點同步, 7字節(jié)長)和幀標志(幀的起始標志, 1 字節(jié))兩部分; 目的地址:接收端的 MAC 地址, 6 字節(jié)長; 一個網(wǎng)絡嗅探工具的開發(fā) 第 26 頁 共 47 頁 源地址:發(fā)送端的 MAC地址, 6字節(jié)長; 類型:數(shù)據(jù)包的類型(即上層協(xié)議的類型), 2 字節(jié)長; 數(shù)據(jù):被封裝的數(shù)據(jù)包, 46- 1500 字節(jié)長; 校驗碼:錯誤檢驗, 4字節(jié)長。 分析每一幀可以得到此數(shù)據(jù)包的源 MAC 地址和目的 MAC地址,并且可以得到 IP 數(shù)據(jù)報的完整內(nèi)容。 IP 數(shù)據(jù)報的第 4至 7位是 IP 首部長度,該字段可以用來準確定位上層協(xié)議的起始位置 。 第 10 字節(jié)是協(xié)議字段,指出該 IP 數(shù)據(jù)報攜帶的數(shù)據(jù)使用何種協(xié)議,常用的協(xié)議字段如 表 52: 表 52 常用的 IP協(xié)議和相應的字段值 協(xié)議名 ICMP IGMP TCP EGP IGP UDP IPv6 OSPF 協(xié)議字段值 1 3 6 8 9 17 41 89 常見類型協(xié)議,如 TCP協(xié)議、 UDP 協(xié)議、 ICMP 協(xié)議、 ARP 協(xié)議等,其 數(shù)據(jù)包結構如下所示,有助于編程實現(xiàn)數(shù)據(jù)包的解析功能。 數(shù)據(jù)包的總體結構 如 表 53所示,因為數(shù)據(jù)發(fā)送時從協(xié)議棧的高層到底層, 會在每一層根據(jù)所使用的不同協(xié)議添加不同的數(shù)據(jù)頭,所以通常在底層直接截獲得到的數(shù)據(jù)包內(nèi),會有不止一個的協(xié)議頭。 由于這些數(shù)據(jù)經(jīng)過了網(wǎng)絡層和傳輸層的打包,因此需要根據(jù)其附加的幀頭對數(shù)據(jù)包進行分析 。 表 53 數(shù)據(jù)包總體結構 數(shù)據(jù)包 IP 頭 信息頭(如 TCP 頭、 UDP 頭等) 數(shù)據(jù) 太網(wǎng) V2標準 的主要特點是通過類型域標識了封裝在幀里的數(shù)據(jù)包所采用的協(xié)議,類型域是一個有效的指針,通過它,數(shù)據(jù)鏈路層就可以承載多個上層(網(wǎng)絡層)協(xié)議。但是, 它 的缺點是沒有標識幀長度的字段。 根據(jù)前面的設計思路 , 對網(wǎng)絡數(shù)據(jù)包的解碼分析,必 須從鏈路層開始分析。本系統(tǒng)只對幾種協(xié)議進行了解碼,先是分析鏈路層,然后分析網(wǎng)絡層 ,再分析傳輸層,最后分析應用層。這是因為捕獲到的網(wǎng)絡數(shù)據(jù)包是一個數(shù)據(jù)幀,其中最外層的協(xié)議是鏈路層協(xié)議,然后分別是網(wǎng)絡層,傳輸層和應用層。對于鏈路層本程序只分析了以太網(wǎng)協(xié)議,去掉以太網(wǎng)協(xié)議部分,就是 IP 協(xié)議頭;再分析 IP 頭,去掉 IP 頭部分,剩下的是 TCP 或 一個網(wǎng)絡嗅探工具的開發(fā) 第 27 頁 共 47 頁 UDP協(xié)議頭,再分析 TCP 或 UDP 傳輸層協(xié)議頭,去掉傳輸層協(xié)議頭,剩下的是應用層協(xié)議,最后分析應用層協(xié)議。 其流程圖如 圖 : 圖 數(shù)據(jù)包分析模塊流程圖 其它 模塊設計 作為一個完整的程序,必需有相關的幫助說明。在本設計中,采用調(diào)用一個 CHM 文檔 的方式來實現(xiàn)這個功能。 其具體步驟如下: (1)用 Word 編輯好幫助文檔,并保存為網(wǎng)頁格式, 當然,也可以用其它軟件來編輯網(wǎng)頁 。 (2)用 EasyCHM 這個免費 軟件生成 CHM 文檔。 (3)在 MFC 中添加一個 幫助 菜單, 并 加 如 相應的響應函數(shù)。 (4)用 ShellExecute 函數(shù) 實現(xiàn)調(diào)用功能,函數(shù)原型如下: ShellExecute(NULL,open,.\\,NULL,NULL,SW_SHOWMAXIMIZED)。 其中“ \\” 為文件路途和文件名, “ \\”表示 為當前目錄 。 分析以太網(wǎng)協(xié)議 以太網(wǎng)類型字段 其它 ARP 類包 TCP/IP 結束 分析 IP協(xié)議 分析 ARP 協(xié)議 IP 協(xié)議類型字段 1 6 17 分析 TCP 協(xié)議 分析 UDP 協(xié)議 分析 ICMP 協(xié)議 根據(jù)端口號判斷應用層協(xié)議類型 根據(jù)端口號判斷應用層
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1