在运行的应用程序中查找内存位置

时间:2015-06-06 09:05:12

标签: linux memory

在旧的DOS 5.0次中,我使用一些常驻程序来查找(和修改)程序变量的内存位置。通常是游戏中的生命或弹药(是作弊)。它正在将内存快照写入磁盘并进行差异化处理。人们还可以使用更大,更小的比较来缩小搜索范围。然后它能够​​修复价值等等。

如果有可能,我如何在当前的Linux(64位)中做类似的事情?有这样的工具吗?我正在尝试使用radare2来跟踪呼叫,但是二进制文件被删除了,我迷路了。

感谢。

2 个答案:

答案 0 :(得分:1)

可以通过映射/proc/<PID>/maps伪文件的片段来检查和修改Linux进程的内存。您可以通过阅读/proc/<PID>/maps和其他类似文件来了解流程的不同部分。

你要面对的问题是,自从旧的DOS时代以来,许多事情都发生了变化。在那些时候,只有几十千字节的程序,全局变量是常态,而且很容易找到。

但现在,有数百兆字节,大多数程序将使用动态内存,复杂的类层次结构,虚函数......这将使你的作弊更加困难。

答案 1 :(得分:0)

此外,pmap命令将显示进程使用的内存位置(起始点和大小)。

例如,如果我有一个ID为123的进程:

pmap 123