Skip to content

Ret2dlresolve

复制本地路径 | 在线编辑

这里不谈太多细节,只说笼统的,如下的步骤:

  1. 栈迁移,这是必须要做的,我们需要在栈中伪造各个内容,最后调用 _dl_runtime_resolve 进行触发。
  2. 在栈中构造 _dl_runtime_resolve 的参数:

    • 构造对应该参数的 ELF32_Rel 类型对象
    • 构造对应 ELF32_Relr_infoELF32_sym 类型对象
    • 构造对应 ELF32_symst_name 的字符串

如下图,该图是 _dl_runtime_resolve 的具体细节。反正就是我们最终栈溢出如下结构:

[old ebp] [_dl_runtime_resolve] [address] [reloc_index]

这里的 address 指向的内容就是我们栈中伪造的几个结构。

具体真正看细节的话,需要看这篇文章:https://ltfa1l.top/2024/06/05/system/StackOverflow/ret2dlresolve

Comments