有没有办法读取另一个进程内存,就好像它的内存是我在 C++/Windows 中的进程内存的一部分(不使用“ReadProcessMemory”)?
“创建远程线程”呢?我希望能够读取其他进程的内存,但不仅仅是在我的远程线程和我的应用程序本身中。这会做这项工作吗?
有没有办法读取另一个进程内存,就好像它的内存是我在 C++/Windows 中的进程内存的一部分(不使用“ReadProcessMemory”)?
“创建远程线程”呢?我希望能够读取其他进程的内存,但不仅仅是在我的远程线程和我的应用程序本身中。这会做这项工作吗?
您可能想尝试的一件事是创建一个临时文件,然后从两个进程映射该文件。那应该让你共享内存页面。
MSDN 有一个示例,解释了如何CreateFileMapping
在两个进程之间共享内存。
基本上,您使用页面文件作为后备存储创建具有显式名称的文件映射,然后在第二个进程中使用相同名称打开该文件映射。要在两个进程中映射相同的地址,您必须传递先前商定的内存范围并将其传递给MapViewOfFileEx
. 请记住,您不能保证通常在两个进程之间没有使用任何内存地址,因此您可能不希望将您的设计建立在两个进程之间具有相同地址的基础上。