3

我正在尝试ReadProcessMemory在某个进程上,但它用于ObRegisterCallbacks防止另一个进程在其上创建句柄(OpenProcess)。ReadProcessMemory我听说有人在没有or的情况下在 C# 中创建自己的内存读取工具OpenProcess。如果有人能告诉我如何创建这样一个很棒的库(或者如果我可以链接到现有的库)。

这是严格的读取内存,我不需要将内存写入进程

4

1 回答 1

1

ReadProcessMemory并且OpenProcess是官方 Windows API 的一部分。这些实际上调用其他操作系统函数,例如ZwReadVirtualMemory/NtReadVirtualMemoryZwOpenProcess/ NtOpenProcess。问题是这些功能只能由驱动程序访问。但是,您可以创建软件驱动程序(通过在 Visual Studio 中创建内核模式驱动程序 (KMDF) 或 Windows 驱动程序模型 (WDM))。不利的一面是这都是 C++ 并且很难。

您可能想研究一个名为 WhiteMagic 的开源 C# 库。这会将 DLL 注入进程,并允许从应用程序本身内部读取/写入内存。这用于OpenProcess注入 DLL,但是可以将注入方法替换为替代方法,例如:https ://github.com/dwendt/UniversalInject 。

于 2017-01-03T05:41:27.290 回答