用户空间内存编辑程序

时间:2010-11-02 22:50:13

标签: linux memory operating-system

编辑其他进程内存的程序如何工作,例如作弊引擎 iHaxGamez ?我的理解是,从另一个进程的内存中读取(更不用说写入)的过程是分段错误的直接原因。

4 个答案:

答案 0 :(得分:5)

获取对linux下其他进程内存的访问权限相当简单(假设您有足够的用户权限)。

例如,文件/dev/mem将提供对cpu的整个内存空间的访问。有关单个流程映射的详细信息,请参阅/proc/<pid>/maps

另一个例子是here

答案 1 :(得分:2)

操作系统的硬件抽象层通常提供操作其他进程的内存的函数。在Windows中,相应的功能是ReadProcessMemoryWriteProcessMemory

答案 2 :(得分:2)

没有理由分段; OS(内核,...)API用于编写。 当进程尝试以错误的方式访问它自己的内存(char []溢出)时,会从操作系统发生(发出信号)。

关于游戏:好吧,如果某个值存储在某个地址,并且有时会被读取,那么可以在下次读取之前对其进行修改。

答案 3 :(得分:0)

您可以使用WinAPI WriteProcessMemory写入其他进程的内存空间。

另请阅读一些PE / COFF文档,并使用VirtualQueryExReadProcessMemory来了解写作内容和位置。