【问题标题】:Pie/pic elf binary instrumentationPie/pic elf 二进制检测
【发布时间】:2018-07-31 06:53:11
【问题描述】:

假设我有一个 elf 32 或 64 位二进制可执行文件。此二进制文件已使用 pic/pie 选项编译。

这意味着所有函数都映射到内存中的随机地址。

如果需要对这种二进制文件进行检测或逆向工程,我该怎么办?

有没有办法挂钩 linux 二进制加载器以便始终提供相同的地址?

谢谢

【问题讨论】:

    标签: reverse-engineering elf aslr


    【解决方案1】:

    这意味着所有函数都映射到内存中的随机地址。

    不,它不是那个意思。

    启用地址随机化后,PIE 二进制文件将在每次运行时以随机基地址加载,但所有函数和数据将一起移动

    也就是说,如果&foo == 0x12345600&bar == 0x12345700 在一次执行中,那么它们之间的增量在后续执行中将始终为0x100(直到重新链接二进制文件)。

    有没有办法挂钩 linux 二进制加载器以便始终提供相同的地址?

    有几种方法:

    • 可以通过
      echo 0 > /proc/sys/kernel/randomize_va_space全局禁用地址随机化
    • 使用setarch ... -R a.out
    • 在 GDB 下运行程序,通过personality 系统调用禁用随机化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 2015-01-11
      • 2014-12-27
      • 2013-03-20
      • 2016-11-07
      • 1970-01-01
      相关资源
      最近更新 更多