2013-10-23 113 views
0

是否有任何方法檢查進程是否與另一個進程通信?如何檢查進程是否與另一進程通信?

例如:

從Windows的CheatEngine和ChessGame。

我需要找到一種方法來檢查cheatengine是否對chessgame做了些什麼。

給出的例子是一個普通的例子,我不是隻爲cheatengine說話。

我只需要知道與棋子「連接」的過程。

+0

這是否與您編寫/控制的兩個進程相關或僅用於進程間通信?你知道多少,如果有的話,他們之間的溝通? – glenatron

+1

有兩種過程可以「連接」的方法很多,另外其中一個過程可能會或可能不知道另一個過程是「做某事」。這個問題太籠統了。 – Jon

+0

任何進程間通信。這兩個進程之間的通信實際上是第二個進程中的讀/寫進程內存。這不是一個「通信」進程,但我找不到另一個詞來解釋 – Alex

回答

0

CheatEngine必須獲得ChessGame進程的句柄才能夠讀取ChessGame的內存,因此一種策略是枚舉所有進程的句柄以查看哪些進程具有ChessGame進程的句柄。對另一個流程有開放的處理本身並不能證明有任何「溝通」發生,但這是第一步。

枚舉進程的句柄是一個相當低級別的操作,但堆棧溢出問題How to enumerate process' handles?有一些信息。您也可以使用像Process Hacker這樣的工具,您可以在用戶界面中搜索手柄。您只需執行「ChessGame」的搜索。

+0

它只能獲得暫時處理該句柄,如果它具有足夠的權限,則注入其選擇的DLL,然後再次關閉該句柄。 –

相關問題