WinpCap的工作原理和组件

WinpCap作为Wireshark安装时必须安装的模块,在Wireshark抓包的过程中起到了非常重要的作用。

WinpCap共有3个模块:NPF、packet.dll、Wpcap.dll。工作示意图如下:

Wireshark抓包工作原理

 

模块1:NPF

NPF:Netgroup Packet Filter,内核空间数据包过滤器,专用于协议驱动,用来匹配和筛选数据包,提供捕获(capture)、发送(injection)和分析性能(analysis capabilities)功能;

为了访问网络上传输的原始数据,抓包程序需要绕过操作系统的协议栈。这就需要在操作系统的内核加入一些插件程序,才能与网络接口进行交互。

在WinPcap中,这个NPF与与操作系统密切相关,同时WinPcap还对其他Windows系统,如winxp、win7、win8、win10等不同的系统提供了适用的驱动程序。这些驱动程序提供了数据包捕获与发送的基本功能,同时提供了某些更高级的功能,如一个可编程的数据包过滤系统、一个网络监视引擎等。其中数据包过滤系统可用于限制一个捕获会话,从而只捕获特定的网络数据包(比如,可以只捕获一个特定主机生成的FTP数据包)。网络监视引擎以一种强大且简单的方式来获取网络流量的统计信息(比如,可以获取网络负载或两台主机间所交换数据的数量)。

 

模块2、3:packet.dll和Wpcap.dll

为了让用户层应用程序能够使用内核驱动所提供的功能,数据包捕获系统必须导出相关的接口。对此,WinPcap提供两个不同层次的动态链接库:Packet.dll与wpcap.dll。Packet.dll库提供底层的API,用来直接访问驱动程序的函数,以便提供独立于微软公司不同操作系统的编程接口。wpcap.dll库导出了更强大的、更高层的捕获函数接口,并具有与UNIX捕获库libpcap的兼容性。这两个库可使数据包的捕获独立于底层网络硬件与操作系统。

 

未经允许不得转载:CTO十万个为什么 » WinpCap的工作原理和组件

赞 (0)