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

如果你能帮助我解决这个困境。 现在,我知道C \ C ++,我知道ASM,我知道DLL注入,我知道虚拟内存寻址,但我不知道像CheatEngine和其他软件如何pipe理在另一个进程中更改variables的值。

对于那些不知道的人来说,第三方的金手指引擎工具可以扫描程序内存空间的值,并确定具有给定值的variables的位置,并对其进行修改。

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

给定一个地址,如果我要写C代码,我怎么能改变属于另一个进程的那个地址的值而不会得到一个无效的寻址错误?

谢谢。

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

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

在unix上:ptrace()

您不能使用标准C或C ++来执行此操作 – 您必须使用操作系统的特定功能。 所以你需要告诉我们你感兴趣的操作系统。

您也可能对Detours有兴趣:

为打包Win32和应用程序API而打包的软件。