
ROPエンコードされたシェルコードをPEにパッチする
C(Win32)で記述されたツール。任意のシェルコードをROPに変換し、指定されたポータブル実行可能ファイル(PE)にパッチを適用します。32ビットのターゲットPEとx86命令セットのみをサポートします。
Blackhat USA 2015で発表:「ROPInjector: Using Return Oriented Programming for Polymorphism and Antivirus Evasion」 詳細情報:
ropinjector <file-to-infect> <shellcode-file> <output-file>* [options]*
(* はオプション引数を示します)
例:
ropinjector.exe firefox.exe revshell.txt
file-to-infect : 任意の32ビット、非パックPE
shellcode-file : PEファイルにパッチするシェルコード
output-file (オプション) : 出力ファイルの名前。指定しない場合、 ROPInjectorは実行されたインジェクションの種類を示す適切なファイル名を選択します。
options :
text シェルコードファイルをテキストファイルとして強制的に読み取ります。テキスト形式のシェルコードは
\xHH\xHH\xHH 形式である必要があります。
norop シェルコードをROPに変換しません。
nounroll SIBのアンロールを行いません。
noinj 不足しているガジェットを注入しません。
getpc シェルコード内のgetPC構成要素を置き換えません。
entry シェルコードを元のPEコードの前に実行します。このオプションがない場合、
ROPInjectorはExitProcess()、exit()などへのフックを試み、シェルコードがプロセス終了直前に
最後に実行されるようにします。
-d<secs> シェルコードを実行する前にSleep()する秒数。
このオプションが指定されると、「entry」も暗黙的に使用されます。
ROPInjectorは最後にカンマ区切りの統計情報を出力します。これらは(表示順に):