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格式閱讀原文。

主站蜘蛛池模板: 欧美精品黑人粗大| 亚洲永久精品ww47国产| 亚洲AV人人澡人人双人| 亚洲欧美自拍视频| 香蕉久人久人青草青草| 亚洲第七页| 国产男女免费视频| 欧美第二区| 国产精品.com| 在线亚洲小视频| 亚洲欧美国产五月天综合| a级毛片免费在线观看| 人人爽人人爽人人片| 99久久国产自偷自偷免费一区| 黄色成年视频| 男女猛烈无遮挡午夜视频| 在线免费看片a| 日韩欧美中文| 玩两个丰满老熟女久久网| 亚洲欧州色色免费AV| 亚洲天堂免费在线视频| 99久久精品无码专区免费| 免费无码网站| 91外围女在线观看| 国产精品亚洲欧美日韩久久| 日韩无码视频专区| 在线观看热码亚洲av每日更新| 精品91视频| 视频二区亚洲精品| 九九香蕉视频| 亚洲第一色视频| 亚洲欧美日韩高清综合678| 精品1区2区3区| 亚洲欧美日韩中文字幕一区二区三区 | 19国产精品麻豆免费观看| 激情综合网址| 人妻丝袜无码视频| 亚洲美女视频一区| 中文成人在线| 国产18页| 精品人妻AV区| 一边摸一边做爽的视频17国产 | 夜色爽爽影院18禁妓女影院| 一级片免费网站| 亚洲综合天堂网| 欧美成人第一页| 亚洲欧美综合另类图片小说区| 97国产精品视频人人做人人爱| 精品无码一区二区在线观看| 国产精品浪潮Av| 亚洲午夜国产片在线观看| 97se亚洲综合| 大陆国产精品视频| 毛片免费网址| 真实国产精品vr专区| 亚洲第一区精品日韩在线播放| 亚洲人成网站色7799在线播放| 久久免费成人| 亚洲综合亚洲国产尤物| A级全黄试看30分钟小视频| 红杏AV在线无码| 亚洲自拍另类| 亚洲AV无码一二区三区在线播放| 欧美黄网站免费观看| 久久99热这里只有精品免费看 | 欧美精品另类| 91美女视频在线观看| 国产在线拍偷自揄观看视频网站| 久久精品国产一区二区小说| a级毛片免费看| 999国内精品视频免费| 国产欧美日韩另类| 国产成人亚洲精品无码电影| 国产成人精品一区二区免费看京| 国产91九色在线播放| 视频一区视频二区中文精品| 国产精品精品视频| 无码AV高清毛片中国一级毛片 | 国产女主播一区| 国产91麻豆视频| 亚洲伊人久久精品影院| 精品国产成人a在线观看|