我有两个本地进程,它们进行通信以让对方执行命令。我想知道它们在谈论什么。
经过初步调查后,发现问题不在于套接字或环回,但似乎它们正在使用(named-)pipes
(至少两者都打开了其中几个,不能说它们是否相同)。
我怎样才能嗅探这些进程之间的所有通信?
答案1
在管道出现之前,Wireshark 可以从文件(之前创建的)或网络接口(实时)读取捕获的数据包并显示。由于支持管道,Wireshark 还可以从其他应用程序读取数据包并实时显示它们。
您应该注意一些限制:
- 这只适用于事实上的标准 libpcap 格式版本 2.4,如 Development/LibpcapFileFormat 中所述。其他一些格式在理论上可能有效,但尚未经过测试。
- 从管道捕获数据不太方便,因为您必须先设置管道并将文件头放入管道中,然后才能开始捕获数据。一些补丁已发送到开发列表,可以解决此问题,因此如果您发现此方法不方便,请尝试这些补丁。
- 命名管道未在下拉接口选择中列出,必须将其输入到接口框中。在 Windows 上,必须慢慢输入(或粘贴)。
在尝试之后,或者找出所提到的补丁,或者与上述文章的作者取得联系之后,仍然存在知道管道名称的问题,这个问题被 sysinternals 实用程序奇迹般地解决了(再次)。管道清单:
您可能还会感到惊讶的是,可以获取系统上定义的命名管道的目录列表。这一事实没有记录,也不可能使用 Win32 API 来实现这一点。
另一个解决方案可能是商业产品输入/输出忍者(30 美元,可试用)。