Return-oriented programming
Checkowayらによると、x86およびARMアーキテクチャでreturn命令(x86では0xC3)を使わずにReturn-oriented programmingを実行することが可能である。Checkowayらの手法では、マシンのメモリにすでに存在する命令群から、return命令と同様の動作をするものを選択する。return命令には2つの動作がある。まず、スタックの最上位にある4バイトの値を探索して命令ポインタをその値に設定し、次にスタックポインタの値を4増やす(pop命令と同様)。x86アーキテクチャでは、jump命令およびpop命令の組み合わせによりreturn命令を実行することができる。ARMでは、load命令およびbranch命令の組み合わせにより同様のことが行える。
この新しい手法はreturn命令を使わないため、防御がより難しくなる。ただし、防御プログラムがreturn命令だけでなくjump命令も探索する場合、この攻撃は検出されうる。
Structured Exception Handler Overwrite Protection(SEHOP)は、システムを一般的なオーバーフロー攻撃(特に構造化例外処理に対する攻撃)から保護するWindowsの機能である。