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

标签 linux memory

在旧的 DOS 5.0 时代,我使用一些驻留程序来查找(和修改)程序变量的内存位置。通常是生命,或游戏中的弹药(是的作弊)。它正在将内存快照保存到磁盘并进行比较。还可以使用更大、更小的比较来缩小搜索范围。然后它能够​​固定值等等。

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

谢谢。

最佳答案

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

您将面临的问题是,自旧的 DOS 时代以来,许多事情都发生了变化。在那个时候,您的程序只有几十 KB,全局变量是常态,而且很容易找到。

但是现在,随着数百兆字节的增加,大多数程序将使用动态内存、复杂的类层次结构、虚函数……这将使您的作弊变得更加困难。

关于linux - 在运行的应用程序中查找内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30680951/

相关文章:

c++ - 执行另一个程序,然后自动输入

c - 对 `fprintf(stdout, ...)` 和 `fprintf(stderr, ...)` 的调用是否保证不会与多个线程交错?

linux - 在 Linux 上的 bash 中获取昨天的日期,DST 安全

r - 为什么有些内存地址报告不变,而另一些则发生变化?

java - 调用其他类方法的代码效率

java - 在java中,静态方法返回后对象会发生什么

linux - 如何查看TCP半开连接?

linux - Device::SerialPort 不会发送我的数据,除非我捕获串行端口

c++ - C/C++ Linux : fastest write of a fixed chunk of memory to file (1 Hz)

java - Java 字符串实习的替代方案