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

主站蜘蛛池模板: 亚洲综合香蕉| 精品人妻系列无码专区久久| 免费久久一级欧美特大黄| 欧美精品成人一区二区视频一| 国产综合精品日本亚洲777| 91免费精品国偷自产在线在线| 亚洲欧美日韩另类在线一| 日本久久免费| 国产男人天堂| 青青青视频蜜桃一区二区| 午夜丁香婷婷| 不卡午夜视频| 欧美一级夜夜爽www| 播五月综合| 97久久精品人人做人人爽| 91人妻在线视频| 成年A级毛片| 2021国产v亚洲v天堂无码| 日韩东京热无码人妻| yjizz国产在线视频网| 中文字幕欧美日韩高清| 亚洲视频影院| 看看一级毛片| 中文字幕调教一区二区视频| av手机版在线播放| 国产精品无码AⅤ在线观看播放| av无码一区二区三区在线| 就去吻亚洲精品国产欧美| 欧美国产在线看| 思思热在线视频精品| 99热这里只有精品免费国产| 亚洲日韩精品综合在线一区二区| 亚洲精品欧美日本中文字幕| 超清人妻系列无码专区| 亚洲精品色AV无码看| 97国产精品视频自在拍| 国产真实乱人视频| 国产尹人香蕉综合在线电影 | 久久久久久午夜精品| AV天堂资源福利在线观看| 91九色视频网| 日韩精品久久无码中文字幕色欲| 免费在线成人网| 中国毛片网| 久久成人18免费| 中文字幕久久亚洲一区| 国产福利免费在线观看| 无码中文字幕加勒比高清| 韩日无码在线不卡| 人妻21p大胆| 久久永久视频| 国产一级精品毛片基地| 国产小视频免费观看| 成人第一页| 青青青国产视频| 免费高清a毛片| 制服丝袜国产精品| 国产福利在线免费| 国产精品永久不卡免费视频| 久久a级片| 欧美v在线| 久久久久久久久亚洲精品| 亚洲视频四区| 在线国产综合一区二区三区| 成人福利在线看| 国产一级做美女做受视频| 免费播放毛片| 亚洲国产天堂久久九九九| 国产丝袜啪啪| 91久久精品日日躁夜夜躁欧美| 国产一级毛片网站| 91毛片网| 在线日韩一区二区| 国产精品手机在线播放| 91蝌蚪视频在线观看| 99视频在线免费观看| 亚洲欧美激情小说另类| 91 九色视频丝袜| 免费毛片网站在线观看| 四虎精品免费久久| 日本不卡免费高清视频| 综1合AV在线播放|