WinPcap, NDIS和NPF
八卦
bbin糖果派对
admin
2020-03-15 04:47

  WinPcap(windows packet capture)是windows平台下一个收费,公共的收集访问系统。Winpcap是针对Win32平台上的抓包和收集剖析的一个架构。它包罗一个中间态的包过滤器NPF,一个底层的静态链接库(packet.dll)和一个高层的不依附于系统的库(wpcap.dll)。

  为甚么应用“architecture”(架构)而不是“library”(库)呢?因为抓包是一个请求与收集适配器(网卡)和操作系统交互的底层机制,而且与收集的实施也有亲密关系,所以仅用“library”不能充沛表达WinPcap的感化。

  起首,抓包系统必须绕过操作系统的协定栈来访问在收集上传输的原始数据包(raw packet),这就请求一局部运转在操作系统中间外部,直接与收集接口驱动交互。这个局部是系统依附(system dependent)的,在Winpcap的处理计划里它被认为是一个装备驱动,称作NPF(Netgroup Packet Filter)。Winpcap开辟小组针对Windows95,Windows98,WindowsME,Windows NT 4,Windows2000和WindowsXP供给了分歧版本的驱动。这些驱动不只供给了基本的特点(例如抓包和injection),还有更低级的特点(例如可编程的过滤器系统和监督引擎)。前者可以被用来束缚一个抓包会话只针对收集通信中的一个子集(例如,仅仅捕捉特别主机发生的ftp通信的数据包),后者供给了一个弱小而复杂的统计收集通信量的机制(例如,取得收集负载或两个主机间的数据交换量)。

  其次,抓包系统必须有效户级的依次接口,经过这些接口,用户依次可以应用内核驱动供给的低级特点。Winpcap供给了两个分歧的库:packet.dll和wpcap.dll。前者供给了一个底层API,随同着一个自力于Microsoft操作系统的编程接口,这些API可以直接用来访问驱动的函数;后者导出了一组更弱小的与libpcap不合的高层抓包函数库(capture primitives)。这些函数使得数据包的捕捉以一种与收集硬件和操作系统有关的方法停止。

  NDIS(NetworkDriverInterfaceSpecification)是收集驱动依次接口规范的简称。它横跨传输层、收集层和数据链路层,定义了网卡或网卡驱动依次与下层协定驱动依次之间的通信接口规范,樊篱了底层物理硬件的分歧,使下层的协定驱动依次可以和底层任何型号的网卡通信。

  NDIS的主要目标就 是为NIC(收集接口卡,Netwok Interface Cards)制订出规范的API接口。MAC(介质访问控制,Media Access Controller)装备驱动封装了一切的NIC硬件 完成,如许一来一切的应用相反介质的NIC便可以经过通用的编程接口被访问。 NDIS同时也供给一个函数库(又时也称作wrapper),这个库中的函数可以被MAC驱动调用,也能够被高层的协定(例如TCP/IP)驱动调用。这些wrapper函数使得MAC驱动和协定驱动的开辟变得越发轻易。