Retdecでデコンパイル – その1

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

追記

手順が抜けていました・・詳しくは以下の記事で解説しています。