
: リバースエンジニアリングにおける心理戦
github.com/xoreaxeaxeax/repsych // domas // @xoreaxeaxeax
REpsych ツールセットは、プログラムの制御フローグラフ (CFG) を通じて画像を生成することを示す概念実証です。
| 一般的な関数の CFG | REpsych で生成された CFG |
|---|---|
![]() | ![]() |
このプロジェクトには特別な目的はありません(できることを示す以外には)が、可能な(非真面目な)応用例は DEF CON プレゼンテーション で概説されています。
このプログラムは、テストされたすべてのバージョンの IDA Pro リバースエンジニアリングツールで確実に動作し、他の CFG ビューア(Hopper、BinNavi、radare2 など)では半ば確実に動作します。
このツールセットは、ソース画像を機能するプログラムに変換し、プログラムの制御フローグラフがソース画像を生成するようにします。
画像から新しいプログラムを生成するには:
2つの機能するプログラム、repsych_v1 と repsych_v2 が作成されます。それぞれが、CFG レンダラーが CFG ノードを正しく配置することを保証するために異なる戦略を使用します。
このツールは、ソース画像の各ピクセルに対して基本ブロック(CFG ノード)を作成します。そのため、小さいソース画像(100x100 以下)を使用するようにし、CFG ビューアで許可されるノード数を増やす必要があるかもしれません。
テキストの画像をツールに入力として使用する場合、まず画像を 2 BPP の白黒ビットマップに変換し、次に 24 BPP ビットマップに変換します。これにより、黒と白以外の色が除去され、制御フローグラフで最良の結果が得られます。





この技術は DEF CON プレゼンテーション で詳しく説明されています。
プレゼンテーションのスライドはこちらから入手できます。
REpsych は Christopher Domas(@xoreaxeaxeax)による概念実証です。