fla*_*404 1 c c++ visual-studio-2008
我想读取与特定进程相关的所有内存.我知道ReadProcessMemory,但由于我没有使用它的经验,我担心我会得到一堆垃圾(垃圾......).
a)我如何计算,从基指针到结束)我可以读取的总区域b)迭代这个内存区域并打印它的最佳方法/最安全c)如何打印给定我不知道它将包含哪些值,以便我可以查看它?
我还希望能够在输出中包含内存中每个数据的实际位置.
谢谢R.
内存可以以页为单位(通常为4096字节)访问.如果您单独阅读每个页面,您可以知道如果读取失败,该页面将无法读取,您可以跳过它.
#define PAGESIZE 4096
char *base = (char *)0;
do {
char buffer[PAGESIZE];
if (ReadProcessMemory(handle, base, buffer, PAGESIZE, NULL) != 0)
{
// buffer is valid
// the address of buffer[X] is base+X
}
base += PAGESIZE;
// keep looping going until we wrap back around to 0
} while (base != 0);
Run Code Online (Sandbox Code Playgroud)