在C中读取进程内存

时间:2012-05-28 09:37:22

标签: c windows

我尝试从我写的进程内存中读取,我的代码是:

 #include <stdio.h>
 void main()
 {
    int x,y;
    scanf("%d",&x);
    scanf("%d",&y);
    x = y;
    scanf("%d",&y);
    printf("%d",x);
    scanf("%d",&y);
 }
好吧,我在Cheat引擎中找到地址,成功编辑等等, 我至少在谷歌搜索了5个小时,找到了很多代码,不能理解它们,我的意思是。有效的代码,即使在进程关闭时运行-_-' 有人可以帮我构建一个从内存中的地址读取值的典型代码吗?

2 个答案:

答案 0 :(得分:3)

由于该平台是Windows,请参阅WINAPI函数ReadProcessMemory()

发布的代码正在从标准输入读取并写入标准输出,它不会尝试读取内存。

答案 1 :(得分:1)

您的代码没有做任何与您在问题文本中所说的内容相似的内容,这使得这非常令人困惑。

在大多数实现virtual memorymemory protection的现代操作系统中,您无法轻松读取其他进程的内存。

即使您有一个进程打印出其中一个变量的地址,该地址也是虚拟,因此如果您的进程尝试访问同一虚拟地址的内存,它将访问相同的物理内存。