捕获特定应用程序的流量

mel*_*man 16 networking windows-7 sniffing capture wireshark

我有一个与某些服务器通信的应用程序。我想知道这个服务器的IP是什么。如何捕获来自特定应用程序的所有流量,而不仅仅是像 Wireshark 那样的所有流量?

PF4*_*lic 10

通过拦截 Windows Sockets API 调用,可以捕获给定应用程序的所有网络流量。这些是可能有帮助的工具。

  1. Proxocket由 Luigi Auriemma 编写。它拦截 API 调用并将捕获的流量保存为 tcpdump 格式的 Wireshark-ready .cap 文件。没有什么比 Luigi 自己提供的图像更能说明问题了:截屏

  2. NirSoft 有SocketSniff应用程序,它允许捕获特定进程的流量。一张图片也值一千个字:截屏

遗憾的是,上述工具可能不支持 64 位应用程序。但是,可以使用支持 32 位和 64 位 API 的mhook库编写自定义拦截器。

  • +1 表示 NirSoft 免费软件工具非常好,通常可移植(单个 .exe)且体积小(< 500 KB)。那里非常有才华的开发人员! (2认同)

Jam*_*ley 0

在 Windows 上,TCPView应该可以满足您的需要:它可以向您显示特定程序已打开的所有 TCP 和 UDP 连接。

然而,我认为这只有在程序打开连接并保持打开状态时才有用;他们不会向您显示特定程序的所有网络流量。例如,它有可能在加载时进行一次非常简短的回拨电话,但在您运行 TCPView 时连接就消失了。

进程监视器可能有助于获取更多详细信息,但我没有使用过它,所以我不确定它捕获了多少有关网络套接字的信息。

  • TCPView 只会帮助建立连接。我需要查看甚至不成功的 TCP 连接尝试。 (4认同)
  • 在这种情况下,我没有主意了。不过,可能值得将其添加到问题中。 (2认同)