999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Raw Socket技術的改進Sniffer

2007-01-01 00:00:00陳烽華張代遠
計算機時代 2007年5期

摘要:闡述了在共享式以太網中用Visual c++6.0實現的基于原始套接字技術的改進網絡嗅探器實現。在設計上,除了捕獲數據包以外,還進一步解析出應用層協議,運用模式匹配的KMP算法截獲相關的數據信息,并保存到本機文件中。

關鍵詞:共享式以太網;Visual C++6.0;原始套接字;網絡嗅探器;KMP算法

0 引言

隨著計算機和網絡的普及,單獨工作、不需要與其他用戶交互的應用程序越來越少了。展望未來的IT產業,網絡將成為核心。而數據安全作為網絡中非常重要的一部分將越來越受到網絡設計人員的重視。本文就數據信息的監控方面作一些探討。

1 Sniffer的設計原理

1.1原始套接字(Raw Socket)

套接字是一種很常用的網絡編程接口,應用程序可以用它進行網絡通信而不需要知道底層的細節。Raw Socket是允許訪問底層傳輸協議的一種套接字類型。原始套接字有兩種類型,第一種是在IP頭中使用預定義的協議,如ICMP;第二種是在IP頭中使用自定義的協議。Raw Socket提供管理下層傳輸的能力,所以它既可以用來進行網絡安全維護,也可能成為黑客竊取信息的有效手段。

1.2網絡嗅探器(Sniffer)

網絡嗅探器是一種常用的收集有用數據的工具,它在網絡安全方面扮演了很重要的角色。使用這種工具,可以監視網絡的狀態、數據流動情況以及網絡上傳輸的信息。因特網安全系統公司ISS給Sniffer下的定義為:Sniffer是利用計算機的網絡接口截獲目的地為其他計算機的數據報文的一種工具。Sniffer只能抓取同一個物理網段內的包,就是說,Sniffer和被監聽的目標中間不能有路由或其他屏蔽廣播包的設備。這一點很重要。

1.3設計原理分析

運行Sniffer的主機要實現網絡監聽必須滿足兩個條件:

其一,該主機的網卡必須工作在混雜模式下。通常的套接字程序只能響應與自己MAC地址相匹配的,或是以廣播形式發出的數據幀,對于其他形式的數據幀網絡接口采取的動作就是直接丟棄。為了使網卡接收所有經過它的數據包,要將其設置為混雜模式。在用戶模式下,對網卡混雜模式的設置是通過原始套接字來實現的。創建原始套接字之后,將它綁定到一個明確的本地地址,然后向套接字發送SIO_RCVALL控制命令,讓它接收所有的IP包,這樣網卡便進入混雜模式了。

其二,傳輸的數據包能夠到達該主機。將以太網內主機連在一起的設備主要有Hub和Switch。Hub是物理層設備,它僅是簡單地將收到的數據廣播到各個物理網線的接口,而不管這個數據包的目的MAC地址是什么。這樣的以太網稱之為共享式以太網。在共享式以太網中,只要將網卡設置為混雜模式就可以捕獲到經過本地網絡地所有數據包了。Switch是數據鏈路層設備,它收到數據包后會檢查數據包的目的MAC地址,然后將該數據包發送到此MAC地址對應的網卡上,其他主機是不會收到的。這樣的以太網稱之為交互式以太網。這時,如果想收到其他機器數據包的話,就要用到ARP欺騙技術。而這項技術涉及面很廣,不屬于本文所要討論的范圍。本文所要做的是在共享式以太網中實現網絡監聽。

2 實現技術的程序設計

2.1程序的總體設計

程序的設計思想:—般的sniffer設計主要是捕獲經過本機的IP包,并進行解包,取出封包中的協議頭,源地址和目的地址等信息,并未捕獲所傳輸的真正數據信息。而本程序設計的目的就是能根據用戶所感興趣的某些關鍵字對某個應用層的協議(如:HTTP、FTP、SMTP等)進行解析,取出用戶所感興趣的信息,并保存到本地機器上。因此本程序所要進行的處理主要有三個:

(1)首先創建原始套接字,將它綁定到一個明確的本地地址,然后設置SIO_RcvALL控制代碼,最后進入無限循環,不斷調用recv函數接收經過本地網卡的IP數據包;

(2)根據接收到的IP包,過濾出用戶感興趣的應用層協議,取出其中的數據信息;

(3)判斷是否有用戶感興趣的信息,如果有,則存儲在某個文件中。

2.2監聽程序的分析

在visual c++6.O中用winsock API函數實現網絡監聽功能的步驟是比較固定的。圖1所示的流程圖是實現上述功能1的主要步驟。該流程圖基本上描述了監聽程序的實現過程,所以本文就省略了具體的實現代碼。

圖1 網絡嗅探器通信流程

2.3協議解析函數的分析

void DecodePacket(char*pData)函數的主要功能就是根據用戶所關心的協議類型解析出相應的數據包,其中pData參數表示所接收到的IP數據包。

以下是關鍵代碼描述:

//IPHeader是一個結構體,描述了lP的頭結構,下面的

TCPHeader類似

IPHeader*plPHdr=(IPHeader*)pData:

//獲得IP的頭部長度,以便可以從JP數據包中取出TCP封包

jnt nHeaderLen=(plPHdr->iphVerLen Oxf)*sizeof(ULONG):

//根據IP報頭的協議部分判斷出上層是什么協議

switch(plPHdr->ipProtoc01)

{ case IPPROTO TCP://這里只以TCP為例,其他協議的實現

類似

//取出TCP封包,以做進一步解析

{TCPHeader*pTCPHdr=(TCPHeader)(pData+nHeaderLen):

//根據端口號判斷應用層協議類型

switch(::ntohs(pTCPHdr->destinationPort))

{ case 80://這里只以HTTP協議為例,其他協議的實現類似

//Checklnf0函數是用于搜索關鍵字的,主要用了模式匹配

的KMP算法

CheckInfo((char*)pTCPHdr+sizeof(TCPHeader),

szSourcelP,szDestlP):

……∥其他端口號的操作

}

}

}

2.4搜索關鍵字函數的分析

該函數的形參分別為應用層數據的封包,源IP地址,目標IP地址,當封包中有和關鍵字相匹配的信息時,就將上述三個參數的信息寫入指定的文件中。而對封包信息進行檢查主要是運用了模式匹配的KMP算法,下面是一些主要的實現代碼。

void CheckInfo(char*pData,char*szSourceIP,charszDestlP)

{//szDest為需要監視的關鍵字,pData為在網絡上傳輸的信息

int nDestLen=strlen(szDest,):int nSourceLen=strlen(pData);

//初始化源串和關鍵字比較的位置

int nSourcePos=0:Int nDestPos=0:

while(nSourcePos

{if(nDestPos==0llpData[nSourcePos]==szDest[nDestPos])

{++nSourcePos;++nDestPos;)

Else

//當匹配失敗時,源串下次比較的位置不變,而關鍵字下次要

比較的位置則由next

//數組中對應的數值來決定。next值表達的就是T關鍵字自

身部分匹配的性質。

//這里省略了next數組的實現,其實現類似與本函數的實現。

{nDestPos=next[nDestPos.1:}

}

if(nDestPos>=nDestLen)

{……}//匹配成功,將所獲得的數據信息寫入到本地文件中

return 0:

}

3 結束語

互聯網上大量使用的許多協議(如:HTTP、FTP、SMTP等)都是不加密的,本文正是基于這樣的一個事實,利用一些相關的技術實現對網絡信息的監視。在網絡安全非常重要的今天,網絡監聽軟件所扮演的角色越來越不容忽視。

sniffcr既可以作為網絡故障的診斷工具,也可以被黑客作為嗅探和監聽網絡的工具。所以,sniffer技術是一把雙刃劍,在了解了它的特性的基礎上,利用好它,可以給我們帶來方便。

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 国产精品理论片| 国产精品久久久久久久久久久久| 天堂成人在线| 欧美精品不卡| 白浆免费视频国产精品视频| 在线一级毛片| 色综合激情网| 国产真实二区一区在线亚洲| 97国产一区二区精品久久呦| 欧美区在线播放| 亚洲视频免费在线| 久久综合干| 全午夜免费一级毛片| 91娇喘视频| 漂亮人妻被中出中文字幕久久| 国产亚洲第一页| 亚洲成人动漫在线观看| 欧美一区二区三区国产精品| 精品少妇三级亚洲| 国产成本人片免费a∨短片| 欧美人与动牲交a欧美精品| 日韩激情成人| 国内精自线i品一区202| 亚洲天堂成人在线观看| 欧美日韩国产一级| 色老头综合网| 国产精品视频白浆免费视频| 正在播放久久| 97久久人人超碰国产精品| 亚洲成AV人手机在线观看网站| 国产成人91精品免费网址在线| 在线亚洲精品自拍| 日韩精品一区二区三区swag| 国产成人综合亚洲欧美在| 国产91九色在线播放| 国产自视频| 免费A级毛片无码无遮挡| 欧美国产日韩另类| jizz在线免费播放| 亚洲天堂区| 国产丰满大乳无码免费播放| 精品国产毛片| 国产一区免费在线观看| 91精品日韩人妻无码久久| 欧美人人干| 午夜精品区| 成人在线第一页| 在线色国产| 国产成人成人一区二区| 亚洲成年网站在线观看| 亚洲精品无码成人片在线观看| 亚洲狠狠婷婷综合久久久久| 人妻无码AⅤ中文字| 久久亚洲精少妇毛片午夜无码| 亚洲日本中文字幕天堂网| 香蕉eeww99国产在线观看| 亚洲一级毛片在线播放| 免费日韩在线视频| 99久久99这里只有免费的精品| 在线观看精品国产入口| 无码区日韩专区免费系列 | 欧美精品黑人粗大| 亚洲欧洲日产国码无码av喷潮| 成人一级免费视频| 免费又爽又刺激高潮网址 | 曰AV在线无码| a亚洲视频| 2020国产在线视精品在| 中文字幕日韩丝袜一区| 中文字幕免费播放| 自慰网址在线观看| 热99re99首页精品亚洲五月天| 美女亚洲一区| 国产乱码精品一区二区三区中文| 国产黄视频网站| 国产欧美日韩91| 欧美成人精品在线| 日本日韩欧美| 亚洲欧洲日产国产无码AV| 波多野一区| 亚洲天堂高清| 国产区精品高清在线观看|