我試圖在某個進程上使用ReadProcessMemory
,但它使用ObRegisterCallbacks
來阻止另一個進程在其上創建句柄(OpenProcess
)。我聽說有人在C#中創建自己的內存讀取實用程序,沒有ReadProcessMemory
或OpenProcess
。如果有人能夠告訴我如何創建這樣一個令人驚歎的庫(或者如果我可以鏈接到現有的庫)。C#ReadProcessMemory替代方案
這是嚴格的讀取存儲,我不需要寫內存的過程
我試圖在某個進程上使用ReadProcessMemory
,但它使用ObRegisterCallbacks
來阻止另一個進程在其上創建句柄(OpenProcess
)。我聽說有人在C#中創建自己的內存讀取實用程序,沒有ReadProcessMemory
或OpenProcess
。如果有人能夠告訴我如何創建這樣一個令人驚歎的庫(或者如果我可以鏈接到現有的庫)。C#ReadProcessMemory替代方案
這是嚴格的讀取存儲,我不需要寫內存的過程
ReadProcessMemory
和OpenProcess
是正式的Windows API的一部分。這些實際稱爲其他操作系統功能,例如ZwReadVirtualMemory
/NtReadVirtualMemory
和ZwOpenProcess
/NtOpenProcess
。問題是這些功能只能由驅動程序訪問。但是,您可以創建一個軟件驅動程序(通過在Visual Studio中創建內核模式驅動程序(KMDF)或Windows驅動程序模型(WDM))。缺點是這是所有的C++和困難。
你可能想看看一個名爲WhiteMagic的開源C#庫。這將一個DLL注入一個進程,並允許從應用程序內部讀取/寫入內存。這使用OpenProcess
注入DLL,但是也可以用替代方法替換注入方法,例如:https://github.com/dwendt/UniversalInject。