在 Windows 7 上嗅探进程通信

rag*_*gnq 6 windows-7 sniffing process pipe

我有两个本地进程进行通信以让其他进程执行命令。我想知道他们在说什么。

经过一些初步调查,它不是通过Sockets或Loopback,但似乎它们正在使用(named-)pipes(至少两者都打开了其中的一些,不能说它们是否相同)。

如何嗅探这些进程之间的所有通信?

har*_*ymc 6

Wireshark可以嗅探命名管道,如本文所述

在管道之前,Wireshark 可以读取捕获的数据包以从文件(之前创建的)或网络接口(实时)中显示。由于支持管道,Wireshark 还可以从另一个应用程序读取数据包,并实时显示它们。

您应该注意一些限制:

  1. 这仅适用于事实上的标准 libpcap 格式版本 2.4,如 Development/LibpcapFileFormat 中所述。其他一些格式理论上可能有效,但这尚未经过测试。
  2. 从管道捕获不方便,因为您必须先设置管道并将文件头放入管道中,然后才能开始捕获。一些补丁已经邮寄到开发列表可以解决这个问题,所以如果你觉得这个方法不方便,试试补丁。
  3. 命名管道未在下拉界面选择中列出,必须输入到界面框中。在 Windows 上,必须缓慢输入(或粘贴)。

试了下,或者查出是哪个补丁,或者联系了上面文章的作者,仍然存在知道管道名称的问题,被sysinternals奇迹般地(再次)解决了实用程序管道列表

您可能还会发现令人惊讶的是,可以获得系统上定义的命名管道的目录列表。这个事实没有记录,也不可能使用 Win32 API 来做到这一点。

另一种解决方案可能是商业产品I/O Ninja(30 美元,可试用)。

  • 我阅读了文本并且我拒绝了它,因为我知道,***100% 肯定***,你不能使用 Wireshark 来捕获任意本地命名管道流量(***你***应该仔细阅读“这仅适用于事实上的标准 libpcap 格式版本 2.4" 部分!)。而且,自 2011 年以来,唯一改变的是它现在处理 pcap-ng;作为 Wireshark 核心开发人员,我可以 100% 肯定地说明这一点。 (8认同)
  • Wireshark 无法嗅探任意命名管道。它*做*支持的是运行一个程序,该程序将一些看起来像捕获的流量写入管道并从该管道“捕获”流量。这对于观察任意命名管道流量没有用 - 如果流量看起来不像 pcap 或 pcap-ng 文件,Wireshark 无法处理它。 (4认同)
  • 警告表示您的答案不正确;你*不能*使用Wireshark来嗅探任意命名的管道流量,这是提出问题的人想要做的。 (4认同)
  • 大多数 Sysinternals 应用程序都非常神奇。+1 (2认同)