【问题标题】:How could I access the memory of a running program? [closed]如何访问正在运行的程序的内存? [关闭]
【发布时间】:2016-06-01 07:35:40
【问题描述】:

假设我有一个 C 程序:

#include<stdio.h>
#include<time.h>

int main()
{
    int a = rand() % 1000;
    return 0;
}

我怎样才能找到“a”的值而不在控制台上打印它,而是通过使用 linux 终端命令访问它的地址来从中读取值?

或者一般来说,我如何映射二进制文件的所有写入值而不查看其实现(如“黑盒”)?

【问题讨论】:

  • 像调试器一样? ptrace 是您的起点。
  • 好的,做int b =a; printf ("a is %d\n", b);做...
  • @BoBTFish 更像一个黑客 :)) 我必须“解锁”一些密码;谢谢,我会检查你的提示
  • @FlorinaBarbu 请不要向 SO 贡献者寻求不道德/非法活动的帮助。
  • @MartinJames 这是我们在大学玩的游戏,都是合法的

标签: c linux memory-management mmap


【解决方案1】:

内存可以通过/proc/pid/mem访问,索引是/proc/pid/maps,Python原型是how-do-i-read-from-proc-pid-mem-under-linux

【讨论】:

    猜你喜欢
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 2012-03-01
    • 1970-01-01
    相关资源
    最近更新 更多