如何更改另一个进程的内存空间中的值

flo*_*nau 13 c c++ linux windows memory-management

如果你能帮助我解决这个困境.现在,我知道C\C++,我知道asm,我知道dll注入,我知道虚拟内存寻址,但我无法弄清楚CheatEngine等软件如何设法在另一个进程中更改变量的值.

对于那些不知道的人,第三方作弊引擎工具可以扫描程序存储空间中的值,并识别具有给定值的变量的位置并进行更改.

我的问题是,他们是如何做到的?

给定一个地址,如果我要编写C代码,如何在不得到无效寻址错误的情况下更改属于另一个进程的该地址的值?

谢谢.

i_a*_*orf 12

我很确定那些程序假装是调试器.在Windows上,我将从DebugActiveProcess()开始并从那里开始.

哦,非常有用的ReadProcessMemory()函数(和WriteProcessMemory()).


Tho*_*mas 5

在 unix 上:ptrace()