在C中读取进程内存

问题描述 投票:0回答:2

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

 #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个小时,找到了很多代码,无法理解它们,我的意思是。有效的代码,即使在进程关闭时运行-_-'有人可以帮助我构建一个从内存中的地址读取值的典型代码吗?

c windows
2个回答
3
投票

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

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


1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.