如何扫描另一个进程内存以查找特定字符串后面的内容?

Tho*_*ini 2 c++ windows winapi

我想通过另一个进程扫描当前运行的本机应用程序的整个堆.

例如,我想知道在这个进程内存中ASCII序列"test"的所有实例后面是什么(在这种情况下,我会扫描"test"并继续读取它).

我试图谷歌获取更多信息,但没有找到太多:我发现ReadProcessMemory看起来很有趣,但我怎么知道进程分配的内存地址?

Tim*_*son 6

试试VirtualQueryEx.

如果您发现在其他进程中访问了大量内存,请考虑使用CreateRemoveThread(示例代码).这将允许您将自己的DLL注入其他进程并直接在那里运行代码.一旦您在其他进程中运行代码,您将能够正常访问内存,而无需使用ReadProcessMemory.(您仍然需要VirtualQuery确定进程的内存布局.)