2011-12-13 103 views
1

我有兩個應用程序(.exe)在同一臺計算機上運行(Windows XP x86),我知道正在與彼此進行通信(我不知道如何,我沒有寫它們)。我想找到一種方法來嗅探應用程序之間的通信。有沒有辦法做到這一點?Sniff進程間通信

我已經做了一些與ProMon混淆,我可以從那裏弄清楚,但我想知道是否有一些更具體到這個目的。 ProMon可能有點嚇人。

回答

3

首先,您可以使用系統調用跟蹤器(如StraceNT(或see this question))觀看您的兩個應用程序。如果運氣好的話,你應該能夠確定進程是通過本地套接字,TCP連接(無疑是通過localhost),管道,命名文件或共享內存進行通信。

您也可以在運行應用程序時運行netstat以查看它們是否打開任何網絡端口。

一旦你知道你在找什麼,你可以選擇一個更具體的監測工具。如果是網絡通信(即使通過回送接口),您也可以嘗試使用類似WinDump的東西來捕獲數據。如果通信是通過共享內存進行的,則可以將調試器附加到兩個進程之一併定期檢查共享內存。