在旧的好的DOS 5.0中,我使用一些常驻程序来查找(和修改)程序变量的内存位置。通常是生命,或游戏中的弹药(是的,作弊)。它正在把内存快照放到磁盘上,并做一些改变。还可以使用更大、更小的比较来缩小搜索范围。然后它就可以定值了,等等。
如果可能,我如何在当前的Linux(64位)中做类似的事情?有这样的工具吗?我试着用radare2来跟踪呼叫,但是二进制文件被剥离了,我迷路了。
谢谢。
发布于 2015-06-07 01:37:51
可以通过映射/proc/<PID>/maps
伪文件片段来检查和修改Linux进程的内存。通过阅读/proc/<PID>/maps
和其他类似文件,您可以发现流程的不同部分在哪里。
您将面临的问题是,与过去的DOS时代相比,许多事情都发生了变化。在那些时候,你的程序只有几十千字节,全局变量是常态,而且很容易找到。
但现在,随着数百兆字节的增加,大多数程序将使用动态内存、复杂的类层次结构、虚拟函数……这将使你的作弊变得更加困难。
发布于 2017-01-17 05:52:51
此外,pmap命令将显示进程使用的内存位置(起始点和大小)。
例如,如果我有一个id为123的进程:
pmap 123
https://stackoverflow.com/questions/30680951
复制相似问题