在旧的DOS 5.0次中,我使用一些常驻程序来查找(和修改)程序变量的内存位置。通常是游戏中的生命或弹药(是作弊)。它正在将内存快照写入磁盘并进行差异化处理。人们还可以使用更大,更小的比较来缩小搜索范围。然后它能够修复价值等等。
如果有可能,我如何在当前的Linux(64位)中做类似的事情?有这样的工具吗?我正在尝试使用radare2来跟踪呼叫,但是二进制文件被删除了,我迷路了。
感谢。
答案 0 :(得分:1)
可以通过映射/proc/<PID>/maps
伪文件的片段来检查和修改Linux进程的内存。您可以通过阅读/proc/<PID>/maps
和其他类似文件来了解流程的不同部分。
你要面对的问题是,自从旧的DOS时代以来,许多事情都发生了变化。在那些时候,只有几十千字节的程序,全局变量是常态,而且很容易找到。
但现在,有数百兆字节,大多数程序将使用动态内存,复杂的类层次结构,虚函数......这将使你的作弊更加困难。
答案 1 :(得分:0)
此外,pmap命令将显示进程使用的内存位置(起始点和大小)。
例如,如果我有一个ID为123的进程:
pmap 123