返回導向編程

返回導向編程 ( 縮寫 ： ） 是計算機安全中的一種漏洞利用技術 ， 該技術允許攻擊者在程序啓用了安全保護技術 （ 如堆棧不可執行 ） 的情況下控制程序執行流 ， 執行惡意代碼 。 其核心思想是通過棧緩衝區溢出等方式控制堆棧調用以劫持程序控制流並執行鍼對性的機器語言指令序列 （ 稱爲Gadgets ） 。 所謂 gadgets 就是以 ret 結尾的指令序列 ， 通過這些指令序列 ， 我們可以修改某些地址的內容 ， 方便控制程序的執行流程 。