面向返回的程序是如何反编译/逆向工程的?
任何指向任何论文或报告的指针将不胜感激。
你可能(截屏感兴趣的小工具IDAPython脚本博士在这里,代码在这里)。
这个小 IDAPython 插件有助于编写和分析面向返回的有效负载。它使用 IDA 的自定义查看器来显示称为“项目”的 DWORD 数组,其中项目可以是指向小工具的指针或简单的“值”。
逆向工程 ROP 就像普通的 RE,但我建议做动态分析 ROP 从我的角度来看都是关于 ESP 的,所以你更快地了解 ROP 代码正在做的事情是找到 Pivot(以获得对 ESP 的控制)或开始ROP 在其上放置一个断点并跟踪堆栈,然后您可以轻松了解哪些函数被调用以及 ROP 代码真正在做什么,因此理解 ROP 的关键点是堆栈。