编辑其他进程内存的程序如何工作,例如作弊引擎和 iHaxGamez ?我的理解是,从另一个进程的内存中读取(更不用说写入)的过程是分段错误的直接原因。
答案 0 :(得分:5)
获取对linux下其他进程内存的访问权限相当简单(假设您有足够的用户权限)。
例如,文件/dev/mem
将提供对cpu的整个内存空间的访问。有关单个流程映射的详细信息,请参阅/proc/<pid>/maps
。
另一个例子是here。
答案 1 :(得分:2)
操作系统的硬件抽象层通常提供操作其他进程的内存的函数。在Windows中,相应的功能是ReadProcessMemory和WriteProcessMemory。
答案 2 :(得分:2)
没有理由分段; OS(内核,...)API用于编写。 当进程尝试以错误的方式访问它自己的内存(char []溢出)时,会从操作系统发生(发出信号)。
关于游戏:好吧,如果某个值存储在某个地址,并且有时会被读取,那么可以在下次读取之前对其进行修改。
答案 3 :(得分:0)
您可以使用WinAPI WriteProcessMemory
写入其他进程的内存空间。
另请阅读一些PE / COFF文档,并使用VirtualQueryEx
和ReadProcessMemory
来了解写作内容和位置。