在旧的 DOS 5.0 时代,我使用一些驻留程序来查找(和修改)程序变量的内存位置。通常是生命,或游戏中的弹药(是的作弊)。它正在将内存快照保存到磁盘并进行比较。还可以使用更大、更小的比较来缩小搜索范围。然后它能够固定值等等。
如果可能的话,我怎样才能在当前的 Linux(64 位)中做类似的事情?有这样的工具吗?我正在尝试使用 radare2 来跟踪调用,但二进制文件已被删除,我迷路了。
谢谢。
最佳答案
可以通过 /proc/<PID>/maps
的映射片段来检查和修改 Linux 进程的内存。伪文件。您可以通过阅读 /proc/<PID>/maps
来发现流程的不同部分在哪里。和其他类似文件。
您将面临的问题是,自旧的 DOS 时代以来,许多事情都发生了变化。在那个时候,您的程序只有几十 KB,全局变量是常态,而且很容易找到。
但是现在,随着数百兆字节的增加,大多数程序将使用动态内存、复杂的类层次结构、虚函数……这将使您的作弊变得更加困难。
关于linux - 在运行的应用程序中查找内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30680951/