0

我在 Win7 下使用 C++/boost::asio。

我试图通过给定的 TCP/IP 端口“嗅探”流量。因此,我想在那个端口上监听,接收消息,分析它们,但也立即让它们进一步流动,就好像我从未截获它们一样。我希望他们沉入通常在该端口上侦听和连接的程序中。想象一个透明代理,但不是用于 HTTP。

我宁愿找到一个基于代码的解决方案,但除此之外,也许你会建议一个工具?

4

2 回答 2

1

你想要做的基本上是一个防火墙程序。

在 Windows 上有几种方法可以做到这一点,你可以挂钩 winsock。更好的(或不老套的)是使用 TDI 过滤器(你看看这个)或制作一个NDIS 过滤器

微软还引入了新的 API、WPFLSP。我认为您最好使用它,因为 TDI 过滤器和 NDIS 包装器涉及复杂且耗时的驱动程序编程。

于 2010-01-08T09:01:31.757 回答
1

如果这是针对您正在开发的产品,您可能需要查看 WinPcap 库http://www.winpcap.org/,您可以将其嵌入到您自己的程序中。

如果您只需要自己分析,请使用使用 WinPcap 的工具之一,我在 WireShark 上取得了巨大的成功;但请查看 WinPcap 站点以获取其他工具

您不能为此使用boost::asio(或任何其他基于套接字的库),因为它会消耗所有流量。

于 2010-03-16T17:08:48.953 回答