我在Win7下使用C ++ / boost :: asio。
我试图在给定的TCP / IP端口上“嗅探”交通。因此,我想听那个端口,接收消息,分析它们,但也要让它们进一步流动,好像我从未拦截过它们。我希望它们沉入通常在该端口上侦听和连接的程序中。想象一下透明代理,但不适用于HTTP。
我宁愿找到一个基于代码的解决方案,但除此之外,也许你会推荐一个工具?
答案 0 :(得分:1)
您要做的事情基本上是防火墙程序。
在Windows上有几种方法可以做到这一点,你可以挂钩winsock。更好(或不是hacky)是使用TDI过滤器(你看一下this)或制作一个NDIS filter。
Microsoft还推出了新的API,WPF和LSP。我认为你最好使用它,因为TDI过滤器和NDIS包装器涉及复杂且耗时的驱动程序编程。
答案 1 :(得分:1)
如果这是针对您正在开发的产品,您可能需要查看可以嵌入到您自己的程序中的WinPcap库http://www.winpcap.org/。
如果你只是需要自己分析,使用其中一个使用WinPcap的工具,我在WireShark上取得了很大的成功;但请查看WinPcap网站以获取其他工具
您不能使用boost::asio
(或任何其他基于套接字的库),因为它会消耗所有流量。