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

正文內(nèi)容

網(wǎng)絡(luò)抓包與協(xié)議分析軟件的設(shè)計(jì)與開(kāi)發(fā)_畢業(yè)設(shè)計(jì)論文(參考版)

2024-08-30 09:17本頁(yè)面
  

【正文】 30 參考文獻(xiàn) [1]劉文濤 .網(wǎng)絡(luò)安全開(kāi)發(fā)包詳解 [M].北京電子工業(yè)出版社 .2020年. [2 [3 [4 [5 [6 [7]胡曉元 ,史 浩山 .WinPcap包截獲系統(tǒng)的分析及其應(yīng)用 .西北工業(yè)大學(xué)電子信息學(xué)院 .2020年 1月 [8] :The Protocals[M].機(jī)械工業(yè)出版社 [9]許愛(ài)軍 ,謝娟 ,張華 .基于 WinPcap 的網(wǎng)絡(luò)數(shù)據(jù)解析及其實(shí)現(xiàn) .廣州鐵路職業(yè)技術(shù)學(xué)院 .2020年 。是我今后學(xué)習(xí)的榜樣。 畢業(yè)設(shè)計(jì)是一次綜合性的訓(xùn)練,是對(duì)大學(xué)里過(guò)去四年學(xué)習(xí)的總結(jié)、應(yīng)用以及檢驗(yàn)。我的畢業(yè)論文是在鄒復(fù)民老師的指導(dǎo)幫助下完成的。通過(guò)研究這方面的課題,可以更深刻地理解網(wǎng)絡(luò)各層通訊協(xié)議的機(jī)理,也加強(qiáng)了網(wǎng)絡(luò)編程的技巧。 這次課題取得的工作如下: 1) 基于 WinPcap 捕獲網(wǎng)絡(luò)數(shù)據(jù)包; 2) 對(duì)捕獲取的數(shù)據(jù)包進(jìn)行具體的分析,如本文中例舉的對(duì) UDP 數(shù)據(jù)包的分析; 3)對(duì)網(wǎng)絡(luò)安全或者網(wǎng)絡(luò)流量有個(gè)初步了解,如某主機(jī)在短時(shí)間內(nèi) 發(fā)送了大量數(shù)據(jù)包,可能這主機(jī)感染了病毒;捕獲的數(shù)據(jù)包無(wú)法正確解讀或者在數(shù)據(jù)內(nèi)容的固定位置出現(xiàn)迅雷、 BT、電驢等數(shù)據(jù)包的特征碼,管理員可以采取相應(yīng)的手段進(jìn)行控制。 28 5 總結(jié)和展望 本文主要工作 這次課題 針對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲和協(xié)議分析進(jìn)行了設(shè)計(jì)并實(shí)現(xiàn)。根據(jù)前面介紹的 IP數(shù)據(jù)報(bào)的格式及各種協(xié)議數(shù)據(jù)報(bào)的格式,對(duì)余下的數(shù)字進(jìn)行分析。運(yùn)行結(jié)果如圖 47所示: 圖 47 程序運(yùn)行后的界面 圖 47 所示的包的數(shù)據(jù),一個(gè)數(shù)字相當(dāng)于 4個(gè)比特,一對(duì)數(shù)字就是一個(gè)字節(jié)。 3)開(kāi)始抓包 點(diǎn)擊工具欄 上的 按鈕,就可以開(kāi)始抓包了,點(diǎn)擊 可以停止抓包 。 2)包過(guò)濾器 點(diǎn)擊工具欄 上的 ,彈出如圖 46窗口 : 圖 46 包過(guò)濾器選擇界面 程序會(huì)抓取勾選的數(shù)據(jù)包,可復(fù)選。 工具 欄 1)網(wǎng)卡接口列表 點(diǎn)擊工具欄 上的 按鈕,彈出如圖 45所示窗口 : 25 圖 45 獲取網(wǎng)卡列表界面 圖 45 窗口中的“ Network adapter 39。 問(wèn)題的解決 上網(wǎng)查找資料后才得知, winpcap 開(kāi)發(fā)包在 vc++6 環(huán)境下編譯會(huì)出現(xiàn)這兩個(gè)錯(cuò)誤,原因是 vc++ c++99標(biāo)準(zhǔn),在 64位 cpu中編譯會(huì)有問(wèn)題,將 winpcap開(kāi)發(fā)包換到 版本及以下錯(cuò)誤消失,試著找了 版本的 winpcap 的開(kāi)發(fā)庫(kù),覆蓋原來(lái)的 Include 和 Lib 文件夾后重新編譯,錯(cuò)誤提示不再出現(xiàn)。 } 23 如此就完成 UDP包的分析并顯示在程序界面上了。 sprintf(crc, %d, ntohs(mypacket[mycon].))。 pDCTextOut(7*width, 16*height, dramlen)。 pDCTextOut(0, 16*height, UDP 長(zhǎng)度: )。 sprintf(desport, %d, ntohs(mypacket[mycon].))。 pDCTextOut(7*width, 14*height, srcport)。 pDCTextOut(0, 14*height, 源端口: )。 pDCTextOut(7*width, 11*height, desIP)。 pDCTextOut(0, 11*height, 目的地址: )。 sprintf(srcIP, %d.%d.%d.%d, 22 mypacket[mycon]., mypacket[mycon]., mypacket[mycon]., mypacket[mycon].)。 pDCTextOut(7*width, 9*height, checksum)。 pDCTextOut(0, 9*height, 頭校驗(yàn)和: )。 pDCTextOut(7*width, 8*height, proto)。 pDCTextOut(0, 8*height, 協(xié)議: )。 sprintf(live, %d, int(mypacket[mycon].))。 pDCTextOut(7*width, 6*height, offset)。 sprintf(offset, %d, (char)(ntohs(mypacket[mycon].)) amp。 pDCTextOut(7*width, 5*height, identifier)。 pDCTextOut(0, 5*height, 標(biāo)識(shí): )。 sprintf(szLen, %d, ntohs(mypacket[mycon].)+18)。 pDCTextOut(7*width, 3*height, mypacket[mycon].)。 pDCTextOut(7*width, 2*height, ip_len)。 sprintf(ip_len, %d, (mypacket[mycon]. amp。 pDCTextOut(7*width, height, 4)。 //讀取存放在向量中的包頭的信息,解開(kāi)包的 IP 頭 pDCTextOut(0, 0, IP 頭 )。 //UDP 長(zhǎng)度, 16bits char crc[16] = 。 //UDP 源端口, 16bits char desport[16] = 。 //源 IP, 16bits char desIP[16] = 。 //協(xié)議, 8bits char checksum[16] = 。 //分段偏移, 12bits char live[8] = 。 //總長(zhǎng), 8bits char identifier[16] = 。 } } 分析數(shù)據(jù)包 這里列舉 UDP 包的分析實(shí)現(xiàn)代碼: char ip_len[8] = 。 memcpy(amp。(pktTcpHead), th, sizeof(tcp_header))。 } if(int(ihproto) == 6) //如果是 TCP 包就從解開(kāi) TCP 頭并將其賦給 th 20 { th = (tcp_header *)((u_char*)ih + ip_len)。 memcpy(amp。(pktIpHead), ih, sizeof(ip_header))。 strcpy(pkttimestr, timestr)。 (totallen)。 totallen = ntohs(ihtlen)。 //從包中解開(kāi) IP 頭并將其賦給 ih ip_len = (ihver_ihl amp。 strftime( timestr, sizeof timestr, %H:%M:%S, ltime)。 //把收到的包放到一個(gè)向量 myvector 里面 ltime=localtime(amp。 u_short totallen。 icmp_header *ich。 udp_header *uh。 char timestr[16]。 19 return 0。 } /*不需要網(wǎng)卡列表,釋放空間 */ pcap_freealldevs(alldevs)。 } if(i==0) { printf(\nNo interfaces found! Make sure WinPcap is installed.\n)。 if (ddescription) printf( (%s)\n, ddescription)。d。 exit(1)。 /*未獲取網(wǎng)卡,返回網(wǎng)卡列表, alldevs 指向表頭 */ if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, amp。 int i=0。 獲取網(wǎng)卡信息 include void main() { pcap_if_t *alldevs。實(shí)現(xiàn)流程如圖 41所示。其中內(nèi)核部分負(fù)責(zé)從網(wǎng)絡(luò)中捕獲和過(guò)濾數(shù)據(jù),這可以通過(guò)調(diào)用 WinPcap 豐富的接口函數(shù)實(shí)現(xiàn)。至此 WinPcap 的環(huán)境配置完成。 2) 解壓下載的 WinPcap 開(kāi)發(fā)包,將 Include 文件夾里的文件全部復(fù)制到 VC 目錄下的 Include 文件夾中,同理復(fù)制開(kāi)發(fā)包中 Lib 文件夾中的文件到 VC 目錄下的 Lib 文件夾中。 圖 38 ICMP報(bào)文的格式 其中類型字段表示 ICMP 報(bào)文的類型;代碼字段是為了進(jìn)一步區(qū)分某種類型的幾種不同情況;校驗(yàn)和字段用來(lái)檢驗(yàn)整個(gè) ICMP 報(bào)文,接著的 4個(gè)字節(jié)的內(nèi)容與 ICMP 的類型有關(guān),再后面是數(shù)據(jù)字段,其長(zhǎng)度取決于 ICMP 的類型。 ICMP 報(bào)文只是在前 4個(gè)字節(jié)有統(tǒng)一的格式,共有類型、代碼和校驗(yàn)和 3 個(gè)字段。在網(wǎng)絡(luò)中, ICMP 報(bào)文將作為 IP 層數(shù)據(jù)報(bào)的數(shù)據(jù),封裝在 IP 數(shù)據(jù)報(bào)中進(jìn)行傳輸,如圖 37所示 ,但 ICMP 并不是高層協(xié)議,而仍被視為網(wǎng)絡(luò)層協(xié)議。如果不計(jì)任選字段,它通常是 20個(gè)字節(jié)。偽首部包含 IP首部一 些字段,其目的是讓 UDP 兩次檢查數(shù)據(jù)是否已經(jīng)正確到達(dá)目的地(例如, IP 有沒(méi)有接受地址不是本主機(jī)的數(shù)據(jù)報(bào),以及 IP有沒(méi)有把應(yīng)傳給另一高層的數(shù)據(jù)報(bào)傳送給 UDP)。解決方法是必要時(shí)在最后增加填充字節(jié) 0,這只是為了校驗(yàn)和的計(jì)算(也就是說(shuō),可能增加的填充字節(jié)不被傳送)。 檢驗(yàn)和( Checksum): 2字節(jié),用于校驗(yàn) UDP數(shù)據(jù)報(bào)的數(shù)字段和包含 UDP 數(shù)據(jù)報(bào)首部的“偽首部”。 目的端口( Destination Port ): 2 字節(jié),目的端口號(hào)。 UDP 數(shù)據(jù)包的封裝 UDP 是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議 [8],進(jìn)程的每個(gè)輸出操作都正好產(chǎn)生一個(gè) UDP 數(shù)據(jù)報(bào),并組裝成一份待發(fā)送的 IP 數(shù)據(jù)報(bào)。 源 IP 地址: 32位,發(fā)送 IP 的主機(jī)地址 。當(dāng)收到一份 IP 數(shù)據(jù)報(bào)后,同樣對(duì)首部中每個(gè) 16 bit 進(jìn)行二進(jìn)制反碼的求和。 ICMP, UDP, TCP在它們各自的首部中均含有同時(shí)覆蓋首部和數(shù)據(jù)檢驗(yàn)和碼。協(xié)議可包括 TCP、 UDP、TELNET 等, 1=ICMP,6=TCP,17=UDP。 協(xié)議: 8位。當(dāng) TTL 值為 0時(shí),就丟棄這個(gè)數(shù)據(jù)報(bào)。每經(jīng)過(guò)一個(gè)路由器時(shí),就把 TTL 減去數(shù)據(jù)報(bào)在路由器消耗掉的一段時(shí)間。由發(fā)出數(shù)據(jù)報(bào)的源點(diǎn)設(shè)置這個(gè)字段,其目的是防止無(wú)法交付的數(shù)據(jù)報(bào)無(wú)限制地在因特網(wǎng)中兜圈子,因而白白消耗網(wǎng)絡(luò)資源。片偏移以 8個(gè)字節(jié)為偏移單位,這就是說(shuō),每個(gè)分片的長(zhǎng)度一定是 8 字節(jié)( 64 位)的整數(shù)倍。 片偏移: 13 位。t Fragment),意思是“不能分片”。MF=1 即表示后面“還有分片”的數(shù)據(jù)報(bào); MF=0 表示這已是若干數(shù)據(jù)報(bào)片中的最后一個(gè)。 標(biāo)志: 3 位,但目前只有 2位有意義。相同的標(biāo)識(shí)字段的值使分片后的各數(shù)據(jù)報(bào)片最后能正確地重裝成為原來(lái)的數(shù)據(jù)報(bào)。但這個(gè)“標(biāo)識(shí)”并不是序號(hào),因?yàn)?IP 是無(wú)連接服務(wù),數(shù)據(jù)報(bào)不存在按序接收的問(wèn)題。通常每發(fā)送一份報(bào)文它的值就會(huì)加 1。由于該字段長(zhǎng) 16比特,所以 IP數(shù)據(jù)報(bào) 最長(zhǎng)可達(dá) 65535 字節(jié)。 總長(zhǎng)度: 16 位,總長(zhǎng)度指首部和數(shù)據(jù)之和的長(zhǎng)度,以字節(jié)為單位。如果 4位TOS 子字段均為 0,那么就意味著是一般服務(wù)。 服務(wù)類型: 8 位,其中: 優(yōu)先權(quán): 3位,設(shè)置了數(shù)據(jù)包的重要性,取值越大數(shù)據(jù)越重要,取值范圍為: 0(正常) 7(網(wǎng)絡(luò)控制)。如果選項(xiàng)字段有其它數(shù)據(jù),則這個(gè)值會(huì)大于 5。 11 首部長(zhǎng)度: 4 位,度指的是首部占 32bit 字的數(shù)目,包括任何選項(xiàng)。目前有 IPv IPv6。在這種情況下,要實(shí)現(xiàn)對(duì)數(shù)據(jù)幀的還原,只需要將捕獲的數(shù)據(jù)幀的前 12 個(gè)字節(jié)分別轉(zhuǎn)換為十六進(jìn)制數(shù)據(jù),就可以清楚地看到 MAC 地址,并通過(guò)對(duì)比本機(jī)的 MAC地址,還可以初步判斷出該數(shù)據(jù)幀是本機(jī)發(fā)送的或是接 收到的。 標(biāo)準(zhǔn)的數(shù)據(jù)幀分析與還原 根據(jù) TCP/IP 協(xié)議,機(jī)器接收到一個(gè)以太網(wǎng)數(shù)據(jù)包時(shí),數(shù)據(jù)從協(xié)議棧中由底向上升,同時(shí)去掉各層協(xié)議加上的報(bào)文 首部,每層協(xié)議都要檢查報(bào)文首部的協(xié)議表示,以確定數(shù)據(jù)的上層協(xié)議。 WinPcap 的
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1