我有一个与某些服务器通信的应用程序。我想知道该服务器的IP是什么。如何捕获特定应用程序的所有流量,而不仅仅是Wireshark的所有流量?
我有一个与某些服务器通信的应用程序。我想知道该服务器的IP是什么。如何捕获特定应用程序的所有流量,而不仅仅是Wireshark的所有流量?
Answers:
通过拦截Windows套接字API调用,可以捕获给定应用程序的所有网络流量。这些是可能有用的工具。
Proxocket由Luigi奥列马写的。它拦截API调用,并将捕获的流量以tcpdump格式保存为Wireshark就绪的.cap文件。没有什么比路易吉本人提供的图像更具解释性了:
NirSoft具有SocketSniff应用程序,该应用程序可以捕获特定进程的流量。一幅图片也值一千个字:
可悲的是,上述工具可能不支持64位应用程序。但是,可以使用支持32位和64位API的mhook库编写自定义拦截器。
strace
可能会有所帮助。看到这里:askubuntu.com/a/12465/505090
Fiddler 2是最容易使用的工具。它是一种调试器,可让您使用PC上的任何应用程序查看HTTP,HTTPS和FTP(如果已配置)请求。
安装后,要针对特定的应用程序,只需单击并按住菜单项“ Any Process ”,然后将光标拖到打开的窗口中并释放它。它只会显示目标应用程序,直到您右键单击现在以红色文本读取目标进程以将其释放的菜单项。
在Windows上,TCPView应该执行您需要的操作:它可以向您显示特定程序已打开的所有TCP和UDP连接。
但是,我认为这仅在程序打开连接并使其保持打开状态时才有用。他们不会通过特定程序向您显示所有网络流量。例如,它可能在加载时进行非常简短的电话家庭电话,但在运行TCPView时连接已消失。
Process Monitor可能有助于获得更多详细信息,但是我没有使用过它,因此我不确定它捕获了多少关于网络套接字的信息。