オンラインサービスの逆アセンブラ Retargetable Decompiler がヤバイ
ほんとこういうのが出現するなんて、スゴイ時代になりましたなぁ。。
CTFなんかで、ELFファイルを逆アセンブル・解析する時
- IDA Proで・・・
- OllyDbgで・・・
- pedaで・・・
そんなふうに考えていた時期が俺にもありました。
今日、新しい選択肢が1つ増えました。
オンラインサービスでの逆アセンブラがございました。
Retargetable Decompiler
https://retdec.com/decompilation/
とりあえずコイツを見てくれ
①…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ボタンを押して、しばらく待つと結果が出てきます。
こんな感じ。
では、デコンパイル・逆アセンブル結果を参照してみます。
⑤の所をクリックすると
おぉ・・・左がアセンブラ、右がC言語ですね。鼻血出そう。
次はCall Graphを見てみる。
⑥の所をクリック
グレートですよ・・・こいつぁ・・・
各関数ごとにこれが参照できます。しかもSVGとかPNGでダウンロードできる!writeup書くのすごく捗りそう。
ちなみに⑦の所クリックで全部ダウンロードできる。
キマシタワー(n'∀')η゚・*゚・*
コメント
kanata が8年以上前に追加
ちなみに、このデコンパイルしたC言語のソースコードをコンパイルして実行したら動かなかった。
ソースの中にメモリアドレスを直接代入している箇所があったから、当たり前っちゃー当たり前です。
世の中そんなに甘くない。でも、動作を把握するのには十分使えると思う。
kanata が8年以上前に追加
オンラインでアップロードするタイプのサービスなので、提供している側に情報を渡すことになるよ。
他者に渡っても問題無いバイナリだけにしてね。
(VirusTotalで話題になったけど、うっかり秘密情報込みでアップロードしてしまうのに注意)
kanata がほぼ7年前に追加
オープンソース化されたようだよ!!
アバストが自社のマシンコード逆コンパイラをオープンソース化
https://blog.avast.com/jp/avast-open-sources-its-machine-code-decompiler-0