ROP 中的即时小工具 - 面向返回编程中的安全漏洞利用技术到底是什么?
我正在阅读一些关于 ROP 的理论,并且对于即时小工具只是编写的,我们有一个指向代码序列的指针:
pop %ebx ; ret
指令
pop %ebx
将下一个 dword 加载到 %ebx 中。
但我不明白为什么这会有用?如果您正在从某个库中加载某些内容,那么您正在尝试获取一些有用的小工具,为什么会有"即时"?
由于您可以在执行此小工具时控制堆栈上的值,因此您可以使用它将任意值存储到ebx
寄存器中。
您需要做的就是将所需的值写入堆栈上的正确位置并运行此小工具。
因此,此小工具允许您执行等效于"立即加载"movl
指令的操作:
movl $1, %ebx
使用任意即时值(上面的$1
只是一个示例)。
免责声明:我不是漏洞利用作家,所以请验证我的想法