Retdecとは!?
Retargetable Decompiler (RetDec)はavastがOSSとして公開したデコンパイルツールである
現在の対象は以下
- ファイル形式:ELF、PE、Mach-O、COFF、AR(アーカイブ)、Intel HEX、raw machine code
- アーキテクチャ(32bitのみ):Intel x86、ARM、MIPS、PIC32、PowerPC
過去のRetDecはIDAのプラグインだけで動いたっぽい。
APIを使用して、RetDecサーバー側でデコンパイルし、結果をIDAで見れたよう。
今は、ローカル環境にRetDecを構築する必要があったので、まとめます。
RetDec v3.2のインストール
IDAProの環境がwindowsのため、windowsに構築する。
(筆者のwindowns環境はwin7 sp1 64bit)
事前にPython3.4以上とGraphvizをインストールしておく。
Pygmentsが必要とマニュアルに記載があったのでこれもインストールしておく。
pip install Pygments
ここからビルドされているRetdecをダウンロード。展開すると、3.8GBもある・・
動作test
C:\retdec-v3.2-windows-64b\retdec\bin>python retdec-decompiler.py C:\Users\user\Desktop\bof.elf
解析対象とディレクトリにデコンパイルされたソーズコード達が生成されているのがわかる。
でもちょっと見にくいので、IDAでみれるようにする
IDA proにプラグイン
現状、32bit版にしか対応していない。
筆者の場合、以下のフォルダに、ここから落としてきたretdec.dllをコピー
C:\Program Files\IDA 7.0\plugins\
IDAを起動させ、[option] – [RetDec plugin options…]を選択
この後、謎のエラーが発生。ポップアップに何も表示されていおらず・・
Visual Studio 2015 の Visual C++ 再頒布可能パッケージ(x86)をアンインストールし、Visual Studio 2015 の Visual C++ 再頒布可能パッケージ(x64)をインストール後、再起動するも変わらず・・
また今度にする。w
追記
手順が抜けていました・・詳しくは以下の記事で解説しています。