網(wǎng)絡(luò)嗅探器的設(shè)計(jì)實(shí)現(xiàn)_第1頁
網(wǎng)絡(luò)嗅探器的設(shè)計(jì)實(shí)現(xiàn)_第2頁
網(wǎng)絡(luò)嗅探器的設(shè)計(jì)實(shí)現(xiàn)_第3頁
網(wǎng)絡(luò)嗅探器的設(shè)計(jì)實(shí)現(xiàn)_第4頁
網(wǎng)絡(luò)嗅探器的設(shè)計(jì)實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.z---.--總結(jié)資料?網(wǎng)絡(luò)與信息平安?課程設(shè)計(jì)報(bào)告班級(jí)**:**:題目:評(píng)閱:成績:2011年1月目錄開發(fā)背景1、網(wǎng)絡(luò)平安現(xiàn)狀。2、開發(fā)意義。設(shè)計(jì)分析1、實(shí)現(xiàn)目標(biāo)。2、開發(fā)技術(shù)簡(jiǎn)介。詳細(xì)設(shè)計(jì)1、嗅探原理。2、代碼設(shè)計(jì)。測(cè)試運(yùn)行總結(jié)參考文獻(xiàn)摘要網(wǎng)絡(luò)嗅探器是作用在網(wǎng)絡(luò)上的一種監(jiān)聽程序,它是系統(tǒng)管理員的一個(gè)得力助手,管理員可以用它來分析網(wǎng)絡(luò)。例如當(dāng)網(wǎng)絡(luò)繁忙時(shí)可利用它來查找是哪一段網(wǎng)絡(luò)繁忙,數(shù)據(jù)報(bào)文是屬于哪一種協(xié)議,這樣可以計(jì)算出哪種業(yè)務(wù)受歡迎。但是當(dāng)有黑客使用它時(shí),它又變得很可怕。它可以非法獲取一些**性信息,如**、密碼等,它帶來的負(fù)面破壞是非常大的。作為從事網(wǎng)絡(luò)平安技術(shù)方面的人員來說,要想有效地利用它、防*它就得深入地學(xué)習(xí)、分析網(wǎng)絡(luò)嗅探技術(shù)。本設(shè)計(jì)的根本任務(wù)是設(shè)計(jì)一個(gè)嗅探軟件,實(shí)現(xiàn)對(duì)常用網(wǎng)絡(luò)數(shù)據(jù)包抓取、分析。軟件所要完成對(duì)本機(jī)在網(wǎng)絡(luò)中的通信數(shù)據(jù),比方協(xié)議類型,源、目的地址和端口、數(shù)據(jù)包的大小等加以分析的功能。本設(shè)計(jì)用到的開發(fā)工具為MicrosoftVisualStudio2010開發(fā)環(huán)境為Windows7。程序由韓瑞彬同學(xué)和我共同完成,本人主要負(fù)責(zé)主界面的設(shè)計(jì)和網(wǎng)絡(luò)數(shù)據(jù)包的抓取,韓瑞彬同學(xué)負(fù)責(zé)對(duì)數(shù)據(jù)包的解析設(shè)計(jì)。關(guān)鍵字:嗅探器,平安,黑客,數(shù)據(jù)報(bào)文一、開發(fā)背景1、網(wǎng)絡(luò)平安現(xiàn)狀隨著各種新的網(wǎng)絡(luò)技術(shù)的不斷出現(xiàn)、應(yīng)用和開展,計(jì)算機(jī)網(wǎng)絡(luò)的應(yīng)用越來越廣泛,其作用也越來越重要。但是由于計(jì)算機(jī)系統(tǒng)中軟硬件的脆弱性和計(jì)算機(jī)網(wǎng)絡(luò)的脆弱性以及地理分布的位置、自然環(huán)境、自然破壞以及人為因素的影響,不僅增加了信息存儲(chǔ)、處理的風(fēng)險(xiǎn),也給信息傳送帶來了新的問題。計(jì)算機(jī)網(wǎng)絡(luò)平安問題越來越嚴(yán)重,網(wǎng)絡(luò)破壞所造成的損失越來越大。Internet的平安已經(jīng)成為亟待解決的問題。多數(shù)黑客入侵成功并植入后門后的第一件事就是選擇一個(gè)適宜當(dāng)前網(wǎng)絡(luò)的嗅探器,以獲得更多的受侵者的信息。嗅探器是一種常用的收集有用數(shù)據(jù)的方法,可以作為分析網(wǎng)絡(luò)數(shù)據(jù)包的設(shè)備。網(wǎng)絡(luò)嗅探器就是利用計(jì)算機(jī)的網(wǎng)絡(luò)接口截獲其他計(jì)算機(jī)的數(shù)據(jù)報(bào)文的一種工具,而且它與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器捕獲的則是真實(shí)的網(wǎng)絡(luò)報(bào)文.如果把網(wǎng)絡(luò)嗅探器放置于網(wǎng)絡(luò)節(jié)點(diǎn)處,對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)幀進(jìn)展捕獲的一種被動(dòng)監(jiān)聽手段,是一種常用的收集有用數(shù)據(jù)的方法,可以分析各種信息包并描述出網(wǎng)絡(luò)的構(gòu)造和使用的機(jī)器,由于它接收任何一個(gè)在同一網(wǎng)段上傳輸?shù)臄?shù)據(jù)包,所以也就存在著捕獲密碼、各種信息、秘密文檔等一些沒有加密的信息的可能性。這成為黑客們常用的擴(kuò)大戰(zhàn)果的方法,用來奪取其他主機(jī)的控制權(quán)。當(dāng)然嗅探器的正當(dāng)用處主要是網(wǎng)絡(luò)管理人員分析網(wǎng)絡(luò)的流量,以便找出所關(guān)心的網(wǎng)絡(luò)中潛在的問題。例如,假設(shè)網(wǎng)絡(luò)的*一段運(yùn)行得不是很好,報(bào)文的發(fā)送比較慢,而我們又不知道問題出在什么地方,此時(shí)就可以用嗅探器截獲網(wǎng)絡(luò)中的數(shù)據(jù)包,分析問題的所在。2、開發(fā)意義本次設(shè)計(jì)只是對(duì)抓取到的本機(jī)在網(wǎng)絡(luò)中的通信數(shù)據(jù),比方說協(xié)議類型,源、目的地址和端口、數(shù)據(jù)包的大小等加以分析,而無法做到像Sniffer或者影音神探那種成熟的嗅探器所擁有的強(qiáng)大功能。作為從事網(wǎng)絡(luò)技術(shù)方面的人員來說,要想有效地利用它、防*它,就得深入地學(xué)習(xí)、分析網(wǎng)絡(luò)嗅探技術(shù)。最為重要的是,對(duì)于網(wǎng)絡(luò)嗅探器的設(shè)計(jì)與實(shí)現(xiàn),使我對(duì)網(wǎng)絡(luò)通信,數(shù)據(jù)傳輸和網(wǎng)絡(luò)信息平安等有了切身的體會(huì)與融入,同時(shí)也是對(duì)網(wǎng)絡(luò)平安技術(shù)這門課的學(xué)以致用,不斷提高自我的一種有效途徑。二、設(shè)計(jì)分析1、實(shí)現(xiàn)目標(biāo)〔1〕實(shí)現(xiàn)網(wǎng)絡(luò)嗅探器的界面?!?〕實(shí)現(xiàn)抓取數(shù)據(jù)包的功能?!?〕實(shí)現(xiàn)暫停抓取數(shù)據(jù)包功能。〔4〕實(shí)現(xiàn)清空列表功能。2、開發(fā)技術(shù)簡(jiǎn)介〔1〕TCP/IP協(xié)議分析TCP/IP是供已連接因特網(wǎng)的計(jì)算機(jī)進(jìn)展通信的通信協(xié)議。TCP/IP定義了電子設(shè)備〔比方計(jì)算機(jī)〕如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)。TCP/IP是一個(gè)四層的分層體系構(gòu)造。高層為傳輸控制協(xié)議,它負(fù)責(zé)聚集信息或把文件拆分成更小的包。這些包通過網(wǎng)絡(luò)傳送到接收端的TCP層,接收端的TCP層把包復(fù)原為原始文件。低層是網(wǎng)際協(xié)議,它處理每個(gè)包的地址局部,使這些包正確的到達(dá)目的地。網(wǎng)絡(luò)上的網(wǎng)關(guān)計(jì)算機(jī)根據(jù)信息的地址來進(jìn)展路由選擇。即使來自同一文件的分包路由也有可能不同,但最后會(huì)在目的地集合。TCP/IP使用客戶端/效勞器模式進(jìn)展通信。TCP/IP通信是點(diǎn)對(duì)點(diǎn)的,意思是通信是網(wǎng)絡(luò)中的一臺(tái)主機(jī)與另一臺(tái)主機(jī)之間的。TCP/IP與上層應(yīng)用程序之間可以說是“沒有國籍的〞,因?yàn)槊總€(gè)客戶請(qǐng)求都被看做是與上一個(gè)請(qǐng)求無關(guān)的。正是它們之間的“無國籍的〞釋放了網(wǎng)絡(luò)路徑,才是每個(gè)人都可以連續(xù)不斷的使用網(wǎng)絡(luò)。許多用戶熟悉使用TCP/IP協(xié)議的高層應(yīng)用協(xié)議。眾所周知,如今電腦上因特網(wǎng)都要作TCP/IP協(xié)議設(shè)置,顯然該協(xié)議成了當(dāng)今地球村“人與人〞之間的“牽手協(xié)議〞。通俗而言:TCP負(fù)責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號(hào),要求重新傳輸,直到所有數(shù)據(jù)平安正確地傳輸?shù)侥康牡?。而IP是給因特網(wǎng)的每一臺(tái)電腦規(guī)定一個(gè)地址。1974年12月,卡恩、瑟夫的第一份TCP協(xié)議詳細(xì)說明正式發(fā)表。當(dāng)時(shí)美國國防部與三個(gè)科學(xué)家小組簽定了完成TCP/IP的協(xié)議,結(jié)果由瑟夫領(lǐng)銜的小組捷足先登,首先制定出了通過詳細(xì)定義的TCP/IP協(xié)議標(biāo)準(zhǔn)。當(dāng)時(shí)作了一個(gè)試驗(yàn),將信息包通過點(diǎn)對(duì)點(diǎn)的衛(wèi)星網(wǎng)絡(luò),再通過陸地電纜,再通過衛(wèi)星網(wǎng)絡(luò),再由地面?zhèn)鬏?,貫串歐洲和美國,經(jīng)過各種電腦系統(tǒng),全程9.4萬公里竟然沒有喪失一個(gè)數(shù)據(jù)位,遠(yuǎn)距離的可靠數(shù)據(jù)傳輸證明了TCP/IP協(xié)議的成功。1983年1月1日,運(yùn)行較長時(shí)期曾被人們習(xí)慣了的NCP被停頓使用,TCP/IP協(xié)議作為因特網(wǎng)上所有主機(jī)間的共同協(xié)議,從此以后被作為一種必須遵守的規(guī)則被肯定和應(yīng)用。正是由于TCP/IP協(xié)議,才有今天“地球村〞因特網(wǎng)的巨大開展。以下簡(jiǎn)單介紹TCP/IP中的協(xié)議都具備什么樣的功能,都是如何工作的:IPIP層接收由更低層〔網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動(dòng)程序〕發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因?yàn)镮P并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址〔源地址〕和接收它的主機(jī)的地址〔目的地址〕。高層的TCP和UDP效勞在接收數(shù)據(jù)包時(shí),通常假設(shè)包中的源地址是有效的。也可以這樣說,IP地址形成了許多效勞的認(rèn)證根底,這些效勞相信數(shù)據(jù)包是從一個(gè)有效的主機(jī)發(fā)送來的。IP確認(rèn)包含一個(gè)選項(xiàng),叫做IPsourcerouting,可以用來指定一條源地址和目的地址之間的直接路徑。對(duì)于一些TCP和UDP的效勞來說,使用了該選項(xiàng)的IP包好似是從路徑上的最后一個(gè)系統(tǒng)傳遞過來的,而不是來自于它的真實(shí)地點(diǎn)。這個(gè)選項(xiàng)是為了測(cè)試而存在的,說明了它可以被用來欺騙系統(tǒng)來進(jìn)展平常是被制止的連接。則,許多依靠IP源地址做確認(rèn)的效勞將產(chǎn)生問題并且會(huì)被非法入侵。TCP如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,則IP將把它們向‘上’傳送到TCP層。TCP將包排序并進(jìn)展錯(cuò)誤檢查,同時(shí)實(shí)現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號(hào)和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。TCP將它的信息送到更高層的應(yīng)用程序,例如Telnet的效勞程序和客戶程序。應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動(dòng)程序和物理介質(zhì),最后到接收方。UDPUDP與TCP位于同一層,但它不管數(shù)據(jù)包的順序、錯(cuò)誤或重發(fā)。因此,UDP不被應(yīng)用于那些使用虛電路的面向連接的效勞,UDP主要用于那些面向查詢應(yīng)答的效勞,例如NFS。相對(duì)于FTP或Telnet,這些效勞需要交換的信息量較小。使用UDP的效勞包括NTP〔網(wǎng)絡(luò)時(shí)間協(xié)議〕和DNS〔DNS也使用TCP〕。ICMPICMP與IP位于同一層,它被用來傳送IP的控制信息。它主要是用來提供有關(guān)通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機(jī)通向其他系統(tǒng)的更準(zhǔn)確的路徑,而‘Unreachable’信息則指出路徑有問題。另外,如果路徑不可用,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的效勞。(2)數(shù)據(jù)包簡(jiǎn)介包是TCP/IP協(xié)議通信中的根本的數(shù)據(jù)單位之一,一般也叫數(shù)據(jù)包。必須把內(nèi)裝產(chǎn)品的包裝盒放到一個(gè)郵局指定的專用紙箱里,這樣才能夠郵寄。這里,產(chǎn)品包裝盒相當(dāng)于數(shù)據(jù)包,里面放著的產(chǎn)品相當(dāng)于可用的數(shù)據(jù),而專用紙箱就相當(dāng)于幀,且一個(gè)幀中只有一個(gè)數(shù)據(jù)包?!鞍暵犉饋矸浅3橄螅瑒t是不是不可見的呢.通過一定技術(shù)手段,是可以感知到數(shù)據(jù)包的存在的。通過數(shù)據(jù)包捕獲軟件,也可以將數(shù)據(jù)包捕獲并加以分析。就是用網(wǎng)絡(luò)嗅探器捕獲數(shù)據(jù)包,可以查看捕獲到的數(shù)據(jù)包的MAC地址、IP地址、協(xié)議類型端口號(hào)等細(xì)節(jié)。通過分析這些數(shù)據(jù),網(wǎng)管員就可以知道網(wǎng)絡(luò)中到底有什么樣的數(shù)據(jù)包在活動(dòng)了。數(shù)據(jù)包的構(gòu)造非常復(fù)雜,不是三言兩語能夠說清的,在這里主要了解一下它的關(guān)鍵構(gòu)成就可以了,這對(duì)于理解TCP/IP協(xié)議的通信原理是非常重要的。數(shù)據(jù)包主要由“目的IP地址〞、“源IP地址〞、“凈載數(shù)據(jù)〞等局部構(gòu)成。數(shù)據(jù)包的構(gòu)造與我們平常寫信非常類似,目的IP地址是說明這個(gè)數(shù)據(jù)包是要發(fā)給誰的,相當(dāng)于收信人地址;源IP地址是說明這個(gè)數(shù)據(jù)包是發(fā)自哪里的,相當(dāng)于發(fā)信人地址;而凈載數(shù)據(jù)相當(dāng)于信件的內(nèi)容。正是因?yàn)閿?shù)據(jù)包具有這樣的構(gòu)造,安裝了TCP/IP協(xié)議的計(jì)算機(jī)之間才能相互通信。我們?cè)谑褂没赥CP/IP協(xié)議的網(wǎng)絡(luò)時(shí),網(wǎng)絡(luò)中其實(shí)傳遞的就是數(shù)據(jù)包。比方說當(dāng)你上網(wǎng)翻開網(wǎng)頁,這個(gè)簡(jiǎn)單的動(dòng)作,就是你先發(fā)送數(shù)據(jù)包給,它接收到了之后,根據(jù)你發(fā)送的數(shù)據(jù)包的IP地址,返回給你網(wǎng)頁的數(shù)據(jù)包,也就是說,網(wǎng)頁的瀏覽,實(shí)際上就是數(shù)據(jù)包的交換。理解數(shù)據(jù)包,對(duì)于網(wǎng)絡(luò)管理的網(wǎng)絡(luò)平安具有至關(guān)重要的意義。(3)C*語言簡(jiǎn)介C*是微軟于2000年提出的一種源于C++、類似于Java的面向?qū)ο缶幊陶Z言,適合于分布式環(huán)境中的組件開發(fā)。C*是專門為.NET設(shè)計(jì)的,也是.NET編程的首選語言。C#的產(chǎn)生是因?yàn)槲④浽?NET上需要一種類似Java的語言,而Java本身卻不能勝任這一需求。C#太像C++了,以至于它很難給人帶來體驗(yàn)新事物時(shí)的那種興奮。不過,絕大局部的C++開發(fā)者將會(huì)因?yàn)镃#保存了C++中大局部其喜歡的、強(qiáng)大的、令人沖動(dòng)的功能而選擇使用它。C#通過防止一般的編程錯(cuò)誤和自動(dòng)資源管理,使得C#的穩(wěn)定性得到了極大的增強(qiáng)。另外,C*語言功能強(qiáng)大且可以實(shí)現(xiàn)對(duì)象之間的轉(zhuǎn)換,輕松實(shí)現(xiàn)各種對(duì)象轉(zhuǎn)換成字符串?!?〕嗅探技術(shù)簡(jiǎn)介數(shù)據(jù)在網(wǎng)絡(luò)上是以很小的稱為幀〔Frame〕的單位傳輸?shù)?,幀由幾局部組成,不同的局部執(zhí)行不同的功能。幀通過特定的稱為網(wǎng)絡(luò)驅(qū)動(dòng)程序的軟件進(jìn)展成型,然后通過網(wǎng)卡發(fā)送到網(wǎng)線上,通過網(wǎng)線到達(dá)它們的目的機(jī)器,在目的機(jī)器的一端執(zhí)行相反的過程。接收端機(jī)器的以太網(wǎng)卡捕獲到這些幀,并告訴操作系統(tǒng)幀已到達(dá),然后對(duì)其進(jìn)展存儲(chǔ)。就是在這個(gè)傳輸和接收的過程中,存在平安方面的問題。每一個(gè)在局域網(wǎng)〔LAN〕上的工作站都有其硬件地址,這些地址惟一地表示了網(wǎng)絡(luò)上的機(jī)器〔這一點(diǎn)與Internet地址系統(tǒng)比較相似〕。當(dāng)用戶發(fā)送一個(gè)數(shù)據(jù)包時(shí),這些數(shù)據(jù)包就會(huì)發(fā)送到LAN上所有可用的機(jī)器。在一般情況下,網(wǎng)絡(luò)上所有的機(jī)器都可以“聽〞到通過的流量,但對(duì)不屬于自己的數(shù)據(jù)包則不予響應(yīng)〔換句話說,工作站A不會(huì)捕獲屬于工作站B的數(shù)據(jù),而是簡(jiǎn)單地忽略這些數(shù)據(jù)〕。嗅探器工作在網(wǎng)絡(luò)的底層,在網(wǎng)絡(luò)上監(jiān)聽數(shù)據(jù)包來獲取敏感信息。從原理上來說,在一個(gè)實(shí)際的系統(tǒng)中,數(shù)據(jù)的收發(fā)是由網(wǎng)卡來完成的,網(wǎng)卡接收到傳輸來的數(shù)據(jù),網(wǎng)卡內(nèi)的單片程序接收數(shù)據(jù)幀的目的MAC地址,根據(jù)計(jì)算機(jī)上的網(wǎng)卡驅(qū)動(dòng)程序設(shè)置的接收模式判斷該不該接收,認(rèn)為該接收就接收后產(chǎn)生中斷信號(hào)通知CPU,認(rèn)為不該接收就丟掉不管,所以不該接收的數(shù)據(jù)網(wǎng)卡就截?cái)嗔耍?jì)算機(jī)根本就不知道。對(duì)于網(wǎng)卡來說一般有四種接收模式:a)播送方式:該模式下的網(wǎng)卡能夠接收網(wǎng)絡(luò)中的播送信息。b)組播方式:設(shè)置在該模式下的網(wǎng)卡能夠接收組播數(shù)據(jù)。c)直接方式:在這種模式下,只有目的網(wǎng)卡才能接收該數(shù)據(jù)。d)混雜模式:在這種模式下的網(wǎng)卡能夠接收一切通過它的數(shù)據(jù),而不管該數(shù)據(jù)是否是傳給它的。首先,在以太網(wǎng)中是基于播送方式傳送數(shù)據(jù)的,也就是說,所有的物理信號(hào)都要經(jīng)過我的機(jī)器。其次,如果*個(gè)工作站的網(wǎng)絡(luò)接口處于混雜模式,則它就可以捕獲網(wǎng)絡(luò)上所有的數(shù)據(jù)包和幀。Sniffer程序是一種利用以太網(wǎng)的特性把網(wǎng)絡(luò)適配卡〔NIC,一般為以太網(wǎng)卡〕置為混雜模式狀態(tài)的工具,一旦網(wǎng)卡設(shè)置為這種模式,它就能接收傳輸在網(wǎng)絡(luò)上的每一個(gè)信息包,而不管該數(shù)據(jù)是否傳給它的。三、詳細(xì)設(shè)計(jì)1、嗅探原理要知道在以太網(wǎng)中,所有的通訊都是播送的,也就是說通常在同一個(gè)網(wǎng)段的所有網(wǎng)絡(luò)接口都可以在物理媒體上傳輸?shù)乃袛?shù)據(jù),而每一個(gè)網(wǎng)絡(luò)接口都有一個(gè)唯一的硬件地址,這個(gè)硬件地址也就是網(wǎng)卡的MAC地址,大多數(shù)系統(tǒng)使用48比特的地址,這個(gè)地址用來表示網(wǎng)絡(luò)中的每一個(gè)設(shè)備,一般來說每一塊網(wǎng)卡上的MFC地址都是不同的,每個(gè)網(wǎng)卡廠家得到一段地址,然后用這段地址分配給其生產(chǎn)的每個(gè)網(wǎng)卡一個(gè)地址。在硬件地址和IP地址間使用ARP和RARP協(xié)議進(jìn)展相互轉(zhuǎn)換。在正常的情況下,一個(gè)網(wǎng)絡(luò)接口應(yīng)該只響應(yīng)這樣的兩種數(shù)據(jù)幀:與自己硬件地址相匹配的數(shù)據(jù)幀。發(fā)向所有機(jī)器的播送數(shù)據(jù)幀。我們來看一個(gè)簡(jiǎn)單的例子,如圖一所示,機(jī)器A、B、C與集線器HUB相連接,集線器HUB通過路由器Router外部網(wǎng)絡(luò)。這是一個(gè)很簡(jiǎn)單也很常見的情況,比方說在公司大樓里,我所在的網(wǎng)絡(luò)部辦公室里的幾臺(tái)機(jī)器通過集線器連接,而網(wǎng)絡(luò)部、開發(fā)部、市場(chǎng)部也是同樣如此,幾個(gè)部門的集線器通過路由器連接。還是回到我們的圖一上來,值得注意的一點(diǎn)是機(jī)器A、B、C使用一個(gè)普通的HUB連接的,不是用SWITCH,也不是用ROUTER,使用SWITCH和ROUTER的情況要比這復(fù)雜得多。我們假設(shè)一下機(jī)器A上的管理員為了維護(hù)機(jī)器C,使用了一個(gè)FTP命令向機(jī)器C進(jìn)展遠(yuǎn)程登陸,則在這個(gè)用HUB連接的網(wǎng)絡(luò)里數(shù)據(jù)走向過程是這樣的。首先機(jī)器A上的管理員輸入的登陸機(jī)器C的FTP口令經(jīng)過應(yīng)用層FTP協(xié)議、傳輸層TCP協(xié)議、網(wǎng)絡(luò)層IP協(xié)議、數(shù)據(jù)鏈路層上的以太網(wǎng)驅(qū)動(dòng)程序一層一層的包裹,最后送到了物理層,我們的網(wǎng)線上。接下來數(shù)據(jù)幀送到了HUB上,現(xiàn)在由HUB向每一個(gè)接點(diǎn)播送由機(jī)器A發(fā)出的數(shù)據(jù)幀,機(jī)器B接收到由HUB播送發(fā)出的數(shù)據(jù)幀,并檢查在數(shù)據(jù)幀中的地址是否和自己的地址相匹配,發(fā)現(xiàn)不是發(fā)向自己的后把這數(shù)據(jù)幀丟棄,不予理睬。而機(jī)器C也接收到了數(shù)據(jù)幀,并在比較之后發(fā)現(xiàn)是發(fā)現(xiàn)自己的,接下來他就對(duì)這數(shù)據(jù)幀進(jìn)展分析處理。在上面這個(gè)簡(jiǎn)單的例子中,機(jī)器B上的管理員如果很好奇,他很想知道終究登陸機(jī)器C上FTP口令是什么.則他要做的很簡(jiǎn)單,僅僅需要把自己機(jī)器上的網(wǎng)卡置于混雜模式,并對(duì)接收到的數(shù)據(jù)幀進(jìn)展分析,從而找到包含在數(shù)據(jù)幀中的口令信息。2、代碼設(shè)計(jì)主界面的設(shè)計(jì)對(duì)程序的成敗起著至關(guān)重要的作用,所以在設(shè)計(jì)代碼的時(shí)候要兼顧程序的可擴(kuò)展性和簡(jiǎn)潔性。下面給出主界面局部代碼:staticvoidMain(){ try{ Application.Run(newPacketMonitorForm()); }catch(E*ceptione){ MessageBo*.Show(e.Message,"網(wǎng)絡(luò)嗅探器",MessageBo*Buttons.OK,MessageBo*Icon.Error); } } privatevoidInitialize(){ //取得計(jì)算機(jī)的所有端口,并以列表的形式顯示出來 IPAddress[]hosts=Dns.Resolve(Dns.GetHostName()).AddressList; if(hosts.Length==0) thrownewNotSupportedE*ception("Thisputerdoesnothavenon-loopbackinterfacesinstalled!"); for(inti=0;i<hosts.Length;i++){ HostsMenu.MenuItems.Add(hosts[i].ToString(),newEventHandler(this.OnHostsClick)); } m_PacketMonitors=newPacketMonitor[HostsMenu.MenuItems.Count]; for(inti=0;i<m_PacketMonitors.Length;i++){ m_PacketMonitors[i]=newPacketMonitor(hosts[i]); m_PacketMonitors[i].NewPacket+=newNewPacketEventHandler(this.OnNewPacket); } m_Packets=newArrayList(); } privatevoidPacketMonitormForm_Closing(objectsender,CancelEventArgse){ OnToolBarClick(this,newToolBarButtonClickEventArgs(StopButton)); } publicvoidOnToolBarClick(objectsender,ToolBarButtonClickEventArgse){ if(e.Button==StopButton){//停頓監(jiān)聽所有的端口 for(inti=0;i<m_PacketMonitors.Length;i++){ m_PacketMonitors[i].Stop(); HostsMenu.MenuItems[i].Checked=false; }StatusBar.Te*t="停頓嗅探"+string.Format("數(shù)據(jù)包總量:{0}字節(jié)數(shù):{1}bytes",m_Packets.Count,m_PacketsSize); }elseif(e.Button==StartButton){//開場(chǎng)監(jiān)聽所有的端口 for(inti=0;i<m_PacketMonitors.Length;i++){ try{ m_PacketMonitors[i].Start(); }catch(E*ceptione*){ MessageBo*.Show(this,"界面出現(xiàn)一個(gè)錯(cuò)誤"+m_PacketMonitors[i].IP.ToString()+"\r\n\r\n["+e*.Message+"]","MPacketMonitor",MessageBo*Buttons.OK,MessageBo*Icon.Error); } HostsMenu.MenuItems[i].Checked=true; } StatusBar.Te*t="檢測(cè)所有端口"; }elseif(e.Button==ClearButton){//去除列表 PacketList.Items

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論