是否有任何方法檢查進程是否與另一個進程通信?如何檢查進程是否與另一進程通信?
例如:
從Windows的CheatEngine和ChessGame。
我需要找到一種方法來檢查cheatengine是否對chessgame做了些什麼。
給出的例子是一個普通的例子,我不是隻爲cheatengine說話。
我只需要知道與棋子「連接」的過程。
是否有任何方法檢查進程是否與另一個進程通信?如何檢查進程是否與另一進程通信?
例如:
從Windows的CheatEngine和ChessGame。
我需要找到一種方法來檢查cheatengine是否對chessgame做了些什麼。
給出的例子是一個普通的例子,我不是隻爲cheatengine說話。
我只需要知道與棋子「連接」的過程。
CheatEngine必須獲得ChessGame進程的句柄才能夠讀取ChessGame的內存,因此一種策略是枚舉所有進程的句柄以查看哪些進程具有ChessGame進程的句柄。對另一個流程有開放的處理本身並不能證明有任何「溝通」發生,但這是第一步。
枚舉進程的句柄是一個相當低級別的操作,但堆棧溢出問題How to enumerate process' handles?有一些信息。您也可以使用像Process Hacker這樣的工具,您可以在用戶界面中搜索手柄。您只需執行「ChessGame」的搜索。
它只能獲得暫時處理該句柄,如果它具有足夠的權限,則注入其選擇的DLL,然後再次關閉該句柄。 –
這是否與您編寫/控制的兩個進程相關或僅用於進程間通信?你知道多少,如果有的話,他們之間的溝通? – glenatron
有兩種過程可以「連接」的方法很多,另外其中一個過程可能會或可能不知道另一個過程是「做某事」。這個問題太籠統了。 – Jon
任何進程間通信。這兩個進程之間的通信實際上是第二個進程中的讀/寫進程內存。這不是一個「通信」進程,但我找不到另一個詞來解釋 – Alex