Return-oriented Programming (ROP) でDEPを回避してみる

Return-to-libcによるDEP回避では、libc内の関数を呼び出すことでシェル起動を行った。 そして連続して関数を呼び出すために、pop命令+ret命令の先頭にジャンプしてスタックを操作するということを行った。 この手法を発展させ、ret命令で終わる命令列の先頭へのジャンプを繰り返すことで、任意の命令列を実行させること…