我有两个在同一台机器上运行的应用程序(.exe)(Windows XP x86),我知道正在相互通信(我不知道如何,我没有写它们)。我想找到一种方法来嗅探应用程序之间的通信。有没有办法做到这一点?
我已经完成了一些与ProMon的混乱,我可以从那里弄清楚,但我想知道是否有一些更具体的目的。 ProMon可能有点令人生畏。
答案 0 :(得分:3)
首先,您可以使用系统调用跟踪器StraceNT(或see this question)来观察您的两个应用程序。幸运的是,您应该能够确定进程是通过本地套接字,TCP连接(毫无疑问地通过localhost
),管道,命名文件或共享内存进行通信。
您还可以在应用程序运行时运行netstat
,以查看它们是否正在打开任何网络端口。
一旦您知道自己在寻找什么,就可以选择更具体的监控工具。如果是网络通信(甚至通过环回接口),您可以尝试使用类似WinDump的数据来捕获数据。如果通过共享内存进行通信,则可以将调试器连接到两个进程之一并定期检查共享内存。