基礎知識
嗅探器的英文寫法是Sniff,可以理解為一個安裝在計算機上的竊聽設備它可以用來竊聽計算機在網絡上所産生的衆多的信息。簡單一點解釋:一部電話的竊聽裝置, 可以用來竊聽雙方通話的内容,而計算機網絡嗅探器則可以竊聽計算機程序在網絡上發送和接收到的數據。
可是,計算機直接所傳送的數據,事實上是大量的二進制數據。因此, 一個網絡竊聽程序必須也使用特定的網絡協議來分解嗅探到的數據, 嗅探器也就必須能夠識别出那個協議對應于這個數據片斷,隻有這樣才能夠進行正确的解碼。
計算機的嗅探器比起電話竊聽器,有他獨特的優勢: 很多的計算機網絡采用的是“共享媒體"。也就是說,你不必中斷他的通訊,并且配置特别的線路,再安裝嗅探器,你幾乎可以在任何連接着的網絡上直接竊聽到你同一掩碼範圍内的計算機網絡數據。我們稱這種竊聽方式為“基于混雜模式的嗅探”(promiscuous mode) 。 盡管如此,這種“共享” 的技術發展的很快,慢慢轉向“交換” 技術,這種技術會長期内會繼續使用下去, 它可以實現有目的選擇的收發數據。
工作原理
SNIFF,嗅探器,它工作在網絡的底層,在網絡上監聽數據包來獲取信息。在一個實際的網絡系統中,數據的收發是有網卡來完成的。網卡接收到傳輸來的數據,網卡内的單片程序接收數據幀的MAC地址信息,根據計算機上的網卡驅動程序設置的接收模式來判斷該不該接收。認為該接收,就接收後産生中斷信号通知CPU;認為不該接收,就丢掉不管。所以不該接收的數據網卡就截斷了,CPU根本就不知道。
對于網卡來說,一般由四種接收模式:
1、廣播方式:該模式下的網卡能接收網絡中的廣播信息。
2、組播方式:該模式下的網卡能接收網絡中的組播信息。
3、直接方式:在這種模式下,隻有目的網卡才能接收數據。
4、混雜模式:在這種模式下的網卡能夠接收一切通過它的數據,而不管這些數據是否是傳給它的。