有没有办法读取另一个进程内存,好像它的内存是我在C ++ / Windows中的进程内存的一部分(不使用“ReadProcessMemory”)?
“CreateRemoteThread”怎么样?我希望能够读取其他进程的内存,但不仅仅是在我的远程线程和我的应用程序本身。这会完成这项工作吗?
答案 0 :(得分:1)
您可能想要尝试的一件事是创建一个临时文件,然后从两个进程映射文件。这应该会让你共享内存页面。
答案 1 :(得分:1)
MSDN has a sample that explains how to use CreateFileMapping
to share memory between two processes.
基本上,使用页面文件作为后备存储创建具有显式名称的文件映射,然后在第二个进程中使用相同名称打开该文件映射。要在两个进程中映射相同的地址,您必须传递先前商定的内存范围并将其传递给MapViewOfFileEx
。请记住,您无法保证两个进程之间通常不使用任何内存地址,因此您可能不希望您的设计基于两个进程之间具有相同的地址。