Answers:
鉴于您正在使用Wireshark,因此端口号不会自动解析为应用程序名称,因此您将需要做更多的工作来完善所需的信息。每个使用TCP / IP进行网络通信的应用程序都将使用端口,以便网络堆栈知道将段传递到哪里(我喜欢将其称为应用程序地址)。
在特定端口上连接到服务器应用程序的客户端将被动态分配动态范围内的端口号。因此,您首先需要找出您的应用程序已打开的TCP / UDP连接:
netstat -b
在命令行中将为您提供连接列表,以及创建该连接的可执行文件的名称。每个可执行文件都有一个或多个连接,列为127.0.0.1:xxxxx,其中X是该连接的本地端口号。
现在在wireshark中,您需要使用以下一个或多个过滤器,告诉它显示源自该端口或发往该端口的数据包:
tcp.port == xxxxx
要么 udp.port == xxxxx
or tcp.port == xxxxx
为您要显示的每个连接添加一个附加项。
这将使您能够查看应用程序已打开的连接的所有通信量,Wireshark将不仅包括原始的TCP / UDP段,而且还将包括使用这些端口号的各种应用程序层协议(例如HTTP)。
如果您的应用程序似乎仅与一台服务器通信,则可以使用该服务器的IP地址来过滤:
ip.addr == x.x.x.x
如果使用Microsoft的Process Monitor,则可以更改筛选器以仅显示来自特定进程的网络通信。它不会为您提供数据包的内容,但可以显示应用程序正在与哪些主机通信。
我发现Microsoft Message Analyzer对于完全相同的目的非常有用。它允许捕获网络流量并按进程树对其进行汇总。
使用系统内部过程监控器获取应用程序进程号,并在以下位置查看其他系统内部工具:
https://docs.microsoft.com/zh-cn/sysinternals/
打开cmd.exe并运行,显示netstat命令行选项,netstat /?。
现在尝试netstat -bo 1 >> c:/test.log。这将使您可以在不断更新的文件中找到特定的应用程序网络连接数据。
请记住,您需要通过在cmd窗口中输入ctl-C来停止netstat -bo >> c:/test.log写入日志。
只需替换My_Application
为您的应用程序PNAME
或PID
netstat-程序| grep“ My_Application”
我没有在Windows 7上对其进行测试,但是它可以在Linux上运行。