オンラインサービスの逆アセンブラ Retargetable Decompiler がヤバイ

ほんとこういうのが出現するなんて、スゴイ時代になりましたなぁ。。
kanata約8年前に追加

CTFなんかで、ELFファイルを逆アセンブル・解析する時

  • IDA Proで・・・
  • OllyDbgで・・・
  • pedaで・・・

そんなふうに考えていた時期が俺にもありました。

今日、新しい選択肢が1つ増えました。

オンラインサービスでの逆アセンブラがございました。

Retargetable Decompiler
https://retdec.com/decompilation/

とりあえずコイツを見てくれ

20160410_RetargetableDecompiler_fig1.png

①…ELF形式だけじゃなく、PEやCOFFまで対応
②…対象のCPUアーキテクチャは、Intel x86, ARM, ARM+Thumb, MIPS, PIC32, PowerPC が対象っ・・・!
③…なんと、C言語かPythonのコードで逆コンパイルしてくれるッ!
④…後述のCall GraphがSVGかPNGかPDFで出力可能!!!1

もぅこの時点で結構高機能。

ちょっと解析してみますか。

解析対象として、SECCON2015オンライン予選の問題 Individual Elebin で出されたELFファイルを利用します。

Decompileボタンを押して、しばらく待つと結果が出てきます。
こんな感じ。

20160410_RetargetableDecompiler_fig2.png

では、デコンパイル・逆アセンブル結果を参照してみます。
⑤の所をクリックすると

20160410_RetargetableDecompiler_fig3.png

おぉ・・・左がアセンブラ、右がC言語ですね。鼻血出そう。
次はCall Graphを見てみる。
⑥の所をクリック

20160410_RetargetableDecompiler_fig4.png

グレートですよ・・・こいつぁ・・・
各関数ごとにこれが参照できます。しかもSVGとかPNGでダウンロードできる!writeup書くのすごく捗りそう。

ちなみに⑦の所クリックで全部ダウンロードできる。

20160410_RetargetableDecompiler_fig5.png

キマシタワー(n'∀')η゚・*゚・*

20160410_RetargetableDecompiler_fig2.png (39.709 KB) kanata, 2016/04/10 10:44

20160410_RetargetableDecompiler_fig1.png (97.781 KB) kanata, 2016/04/10 10:44

20160410_RetargetableDecompiler_fig4.png (31.628 KB) kanata, 2016/04/10 10:44

20160410_RetargetableDecompiler_fig3.png (240.856 KB) kanata, 2016/04/10 10:44

20160410_RetargetableDecompiler_fig5.png (14.528 KB) kanata, 2016/04/10 10:44


コメント

kanata約8年前に追加

ちなみに、このデコンパイルしたC言語のソースコードをコンパイルして実行したら動かなかった。
ソースの中にメモリアドレスを直接代入している箇所があったから、当たり前っちゃー当たり前です。
世の中そんなに甘くない。でも、動作を把握するのには十分使えると思う。

kanata約8年前に追加

オンラインでアップロードするタイプのサービスなので、提供している側に情報を渡すことになるよ。
他者に渡っても問題無いバイナリだけにしてね。
(VirusTotal話題になったけど、うっかり秘密情報込みでアップロードしてしまうのに注意)

kanata約6年前に追加

オープンソース化されたようだよ!!

アバストが自社のマシンコード逆コンパイラをオープンソース化
https://blog.avast.com/jp/avast-open-sources-its-machine-code-decompiler-0

クリップボードから画像を追加 (サイズの上限: 100 MB)