复返导向编程(return-oriented programming,简称ROP)被平凡用于软件瑕疵应用袭击中,用来构造袭击代码.通过更新ROP构造时期,说明了图灵完备的纯ROP袭击代码在软件模块中是大齐可罢了的.ROP构造功能代码的难点是罢了要求升沉逻辑.通过真切分析要求升沉机器教唆的推论落魄文发现,对这些教唆的传统瓦解存在一定的局限性.事实上,在已有代码中存在一丝的要求升沉教唆黑丝吧,它们的两个分支的初始部分齐是可复用的代码片断(称为gadgets),何况这两个gadgets会从不同的内存单位中得到下一个gadget的地址,因此,以这些要求升沉教唆初始的代码片断不错匡助ROP罢了要求升沉逻辑.把这种代码片断称为if-gadget.在Linux和Windows系统上的履行效果标明,if-gadget大齐存在,即使在代码量很小的平淡可推论设施中也存在.在Binutils设施集上的履行效果标明,引入if-gadget后,构造图灵完备的ROP代码要比用传统门径容易得多.在Ubuntu这么的主流操作系统上,由于可推论设施上默许莫得实施细心ROP袭击的保护机制,因此,袭击者不错在这些软件模块中构造纯ROP袭击代码来发动袭击.由此可见,ROP对系统安全的恫吓比原本以为的严重得多.