我正在尝试对第三方 TCP 客户端/服务器 Windows XP、SP 3 应用程序进行逆向工程,但我没有可用的源代码。我的主要攻击线是使用 WireShark 捕获 TCP 流量。
当我在客户端发出某个 GUI 命令时,客户端会创建与服务器的 TCP 连接,发送一些数据,然后断开连接。服务器端口为 1234,客户端端口由操作系统分配,因此有所不同。
WireShark 显示与我发出的 GUI 命令相对应的消息被发送了两次。这两条消息具有不同的源端口,但它们具有相同的目标端口(1234,如前所述)。
客户端实际上由几个进程组成,我想确定哪些进程正在发送这些消息。这些过程是长期存在的,因此它们的 PID 是稳定且已知的。然而,所涉及的 TCP 连接是短暂的,仅持续几毫秒左右。尽管我已经在 WireShark 中捕获了客户端端口号,并且虽然我知道所涉及的所有 PID,但连接是瞬态的这一事实使得很难确定哪个 PID 打开了端口。(如果连接是长期存在的,我可以使用 netstat 将端口号映射到 PID。)有人对我如何确定哪些进程正在创建这些临时连接有任何建议吗?