基础知识
嗅探器的英文写法是Sniff,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。简单一点解释:一部电话的窃听装置, 可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。
可是,计算机直接所传送的数据,事实上是大量的二进制数据。因此, 一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据, 嗅探器也就必须能够识别出那个协议对应于这个数据片断,只有这样才能够进行正确的解码。
计算机的嗅探器比起电话窃听器,有他独特的优势: 很多的计算机网络采用的是“共享媒体"。也就是说,你不必中断他的通讯,并且配置特别的线路,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。我们称这种窃听方式为“基于混杂模式的嗅探”(promiscuous mode) 。 尽管如此,这种“共享” 的技术发展的很快,慢慢转向“交换” 技术,这种技术会长期内会继续使用下去, 它可以实现有目的选择的收发数据。
工作原理
SNIFF,嗅探器,它工作在网络的底层,在网络上监听数据包来获取信息。在一个实际的网络系统中,数据的收发是有网卡来完成的。网卡接收到传输来的数据,网卡内的单片程序接收数据帧的MAC地址信息,根据计算机上的网卡驱动程序设置的接收模式来判断该不该接收。认为该接收,就接收后产生中断信号通知CPU;认为不该接收,就丢掉不管。所以不该接收的数据网卡就截断了,CPU根本就不知道。
对于网卡来说,一般由四种接收模式:
1、广播方式:该模式下的网卡能接收网络中的广播信息。
2、组播方式:该模式下的网卡能接收网络中的组播信息。
3、直接方式:在这种模式下,只有目的网卡才能接收数据。
4、混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管这些数据是否是传给它的。