Windows中的包过滤(XP,7等)

时间:2011-02-12 14:59:15

标签: windows winapi packet-sniffers

如何在Windows中过滤(允许,拒绝等)传出数据包?我想搜索TCP或UDP数据包类型以在数据段中查找例如“387602304fd236e048125453b1fa10c980e9dad4fa7f3f5dd2497c2e8b2b”并删除/阻止/拒绝数据包(如果它与搜索十六进制字符串匹配)。 我已经尝试过WIPFW和PKTFILTER但它们只提供IP源,目的地,端口等过滤。他们不检查数据包的数据。 我认为伯克利数据包过滤器就是那个工作,但它适用于unix ......

3 个答案:

答案 0 :(得分:2)

以下是在Windows中过滤数据包的一些内容:

WinDivert免费的开源项目工作在Windows 7,2008或更高版本上。网络层。

WinpkFilter 3.0商业版,Windows XP版和上层版。数据链接层

pcausa,商业。数据链接层

Windows Filtering Platform Packet Modification Sample 要创建WinDivert使用的callout驱动程序的示例,您现在应该实现内核驱动程序。网络层。

答案 1 :(得分:0)

您可以在Windows中使用SmartSniff

从版本1.10开始,您可以在捕获过程(捕获过滤器)期间或显示捕获的TCP / IP数据(显示过滤器)时过滤不需要的TCP / IP活动

答案 2 :(得分:0)

您希望应用程序级别过滤,(只需更改有效负载)。如果你想能够丢弃,我知道你可以挂钩到Winsock,这将允许你在外出时捕获数据包并在那里设置过滤器。 Windows 7也添加到防火墙中,因此您可以使用该API来获取出站数据包;不过,我不确定它是否会允许你专门改变有效载荷数据。