【问题标题】:How to disable the PIE protect by patching the ELF?如何通过修补 ELF 来禁用 PIE 保护?
【发布时间】:2021-11-11 00:21:09
【问题描述】:

从处理的角度来看,禁用ASLR(不是PIE)很简单,在gdb中使用“ASLR OFF”指令,但是对于这种方式,我们只是改变了内核模型而不是elf本身。实际上程序仍然用 PIE 保护进行辩护。 那么是否存在修补 ELF 二进制文件以完全禁用 PIE 保护的方法?

【问题讨论】:

  • 这到底是什么意思?您是否要真正修补二进制文件中与 pc 相关的内存访问指令并将它们全部替换为绝对地址?我认为这通常是不可能的,尤其是在 x86 等具有可变长度指令的架构上。
  • 但我不明白与位置无关的代码本身如何以任何方式“保护”或“保护”程序。 AFAIK 其唯一的安全优势是使其可能 使用 ASLR。如果有一种攻击方法适用于非 PIE 二进制文件,那么它很可能也适用于禁用 ASLR 的 PIE 二进制文件。
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: elf aslr


【解决方案1】:

那么是否存在修补 ELF 二进制文件以完全禁用 PIE 保护的方法?

PIE 二进制文件通常链接在地址 0,并且需要重新定位才能运行。

也许可以通过

禁用特定二进制文件的 ASLR
  1. prelink发送到其他地址并
  2. ElfXXEhdr.e_typeET_DYN 更改为ET_EXEC

【讨论】:

    猜你喜欢
    • 2013-09-05
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 2018-07-26
    • 2021-06-05
    相关资源
    最近更新 更多