如何对面向收益的程序进行反编译/反向工程?

任何指向任何论文或报告的指针都将受到赞赏。

评论

我认为如果您在问题中直接包含了一些有关面向收益的程序的知识,那将是有帮助的。我想,至少您可以在bochs中调试这样的程序...似乎在小工具中遵循以下程序流程并不容易,但是我对此可能是错误的...

#1 楼

您可能对Dr. Gadget IDAPython脚本(此处的屏幕截图,此处的代码)感兴趣。


这个小IDAPython插件有助于编写和分析面向返回的负载。它使用IDA的自定义查看器来显示称为“项”的DWORD数组,其中的项可以是指向小工具的指针或简单的“值”。


评论


感谢您的指点:我不了解Gadget博士,但一定会检查一下。

–debray
13年6月21日在18:17

#2 楼

逆向工程ROP就像普通的RE一样,但我建议做动态分析ROP从我的角度来说都是关于ESP的,因此您可以更快地了解ROP代码正在做什么的方法是找到Pivot(以控制ESP)或ROP在其上放置一个断点并跟踪堆栈,然后您可以轻松地了解正在调用哪些函数以及ROP代码实际上在做什么,因此了解ROP的关键点是堆栈。

评论


我只是指出这一点,但这只是x86上的一个有效答案。当然,大多数此类软件是x86,但也可以在ARM上进行ROP。

–cb88
13年6月21日在12:20

感谢大家的回答。我本人倾向于动态分析(如n00b所建议),但是我一定会查看Rolf提到的Dr. Gadget脚本。

–debray
13年6月21日在18:16

@ cb88这只是特定于x86的,因为他提到了ESP。

–乔纳森·莱因哈特(Jonathon Reinhart)
13年6月28日在5:54