我尝试从我写的进程内存中读取,我的代码是:
#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个小时,找到了很多代码,不能理解它们,我的意思是。有效的代码,即使在进程关闭时运行-_-'
有人可以帮我构建一个从内存中的地址读取值的典型代码吗?
答案 0 :(得分:3)
由于该平台是Windows,请参阅WINAPI函数ReadProcessMemory()。
发布的代码正在从标准输入读取并写入标准输出,它不会尝试读取内存。
答案 1 :(得分:1)
您的代码没有做任何与您在问题文本中所说的内容相似的内容,这使得这非常令人困惑。
在大多数实现virtual memory和memory protection的现代操作系统中,您无法轻松读取其他进程的内存。
即使您有一个进程打印出其中一个变量的地址,该地址也是虚拟,因此如果您的进程尝试访问同一虚拟地址的内存,它将不访问相同的物理内存。