4

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

4

3 回答 3

2

以下是一些在 Windows 中过滤数据包的方法:

WinDivert免费开源项目可在 Windows 7、2008 或更高版本上运行。网络层。

WinpkFilter 3.0商业版、Windows XP 及更高版本。数据链路层

pcausa,商业。数据链路层

Windows 过滤平台数据包修改示例 创建 WinDivert 使用的标注驱动程序的示例,您现在应该实现内核驱动程序。网络层。

于 2012-01-24T23:53:39.827 回答
0

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

于 2011-02-28T00:27:11.807 回答
0

您可以在 Windows中使用SmartSniff 。

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

于 2011-02-12T15:07:11.097 回答