2015-06-01 87 views
3

我試圖在某個進程上使用ReadProcessMemory,但它使用ObRegisterCallbacks來阻止另一個進程在其上創建句柄(OpenProcess)。我聽說有人在C#中創建自己的內存讀取實用程序,沒有ReadProcessMemoryOpenProcess。如果有人能夠告訴我如何創建這樣一個令人驚歎的庫(或者如果我可以鏈接到現有的庫)。C#ReadProcessMemory替代方案

這是嚴格的讀取存儲,我不需要寫內存的過程

回答

0

ReadProcessMemoryOpenProcess是正式的Windows API的一部分。這些實際稱爲其他操作系統功能,例如ZwReadVirtualMemory/NtReadVirtualMemoryZwOpenProcess/NtOpenProcess。問題是這些功能只能由驅動程序訪問。但是,您可以創建一個軟件驅動程序(通過在Visual Studio中創建內核模式驅動程序(KMDF)或Windows驅動程序模型(WDM))。缺點是這是所有的C++和困難。

你可能想看看一個名爲WhiteMagic的開源C#庫。這將一個DLL注入一個進程,並允許從應用程序內部讀取/寫入內存。這使用OpenProcess注入DLL,但是也可以用替代方法替換注入方法,例如:https://github.com/dwendt/UniversalInject