gpt4 book ai didi

c++ - C ReadProcessMemory - 如何检查与进程关联的内存区域

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:24:18 26 4
gpt4 key购买 nike

我想读取与特定进程关联的所有内存。我知道 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);

关于c++ - C ReadProcessMemory - 如何检查与进程关联的内存区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com