Ret2dlresolve
复制本地路径 | 在线编辑
这里不谈太多细节,只说笼统的,如下的步骤:
- 栈迁移,这是必须要做的,我们需要在栈中伪造各个内容,最后调用
_dl_runtime_resolve进行触发。 -
在栈中构造
_dl_runtime_resolve的参数:- 构造对应该参数的
ELF32_Rel类型对象 - 构造对应
ELF32_Rel中r_info的ELF32_sym类型对象 - 构造对应
ELF32_sym中st_name的字符串
- 构造对应该参数的
如下图,该图是 _dl_runtime_resolve 的具体细节。反正就是我们最终栈溢出如下结构:
[old ebp] [_dl_runtime_resolve] [address] [reloc_index]
这里的 address 指向的内容就是我们栈中伪造的几个结构。

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