Decompiler Ghidra/IDA Pro/Binary Ninja 1990-2026(ディコンパイラー)
Decompiler/Disassembler Reverse Engineering Tool 1990-2026 (差別化: 既存リバースエンジニアリング軸ではなく逆コンパイラ製品比較軸)。IDA Pro Hex-Rays Ilfak Guilfanov Belgium 1991 (Interactive DisAssembler・Industry Standard・Pro x86/ARM/MIPS/PPC・Hex-Rays Decompiler 2007 (C/C++)・Plugin Python+IDC Script・Industry最高価)+IDA Free 2019 (Limited)・Ghidra NSA 2019 OSS Java (¥0・SVN open 2019・Java GUI+P-Code IR+Decompiler+Sleigh Architecture Definition+Headless Analyzer・100+ Architecture・革命急成長 IDA代替)・Binary Ninja Vector 35 USA 2014 (Jordan Wiens+Co.・$299 Personal+$1499 Commercial・Modern UI+Plugins Python+BNIL Intermediate Language+High Level IL Decompiler・Cloud Vector35 Cloud Service)・radare2 OSS pancake 2009 (Sergi Alvarez Spain・CLI+Python Bindings+r2dec Decompiler+Cutter GUI Frontend)+Rizin Fork 2020・angr UCSB 2015 (Symbolic Execution・Python・CTF用 Concolic+Path Exploration)・Hopper Disassembler 2010 Cryptic Apps (Mac/Linux・$99 Personal)・Cutter (radare2 GUI・Qt)・Binary Ninja Personal Free Tier 2024・Triton+miasm+pyvex IR Library・JEB Decompiler 2013 PNF Software (Java/Android/x86)・objdump+readelf+nm GNU binutils CLI Standard・Apple otool+Microsoft dumpbin・FRIDA Dynamic Instrumentation・Cheat Engine ゲームReverse・Use case: Malware分析+CTF+Vuln研究+Game Hack・¥0 OSS Ghidra/radare2-¥¥¥¥¥¥¥¥/IDA Pro Industry、2026年Ghidra+IDA Pro+Binary Ninja+radare2+angr主流。
概要
逆コンパイラは、実行ファイルを高水準言語に近い形で再構築し、逆アセンブルと併せてバイナリ解析を効率化するツール群である。1990年代から2000年代にかけて登場したIDA Proが業界標準を確立した後、Ghidra(2019)やBinary Ninja(2014)などがオープンソースや低価格で代替を提供し、2025–2026年にはクラウドベースの解析や機械学習を組み込んだ統合プラットフォームが主流となっている。
主な特徴・仕組み
| 特色 | 具体的な実装 | 代表的ツール |
|---|---|---|
| 中間表現 (IR) | 高水準抽象化を行い、アーキテクチャ非依存の解析を可能にする | Ghidra(P-Code)、Binary Ninja(BNIL)、angr(VEX) |
| デコンパイルエンジン | C/C++ 風構文を生成し、可読性を向上 | Hex‑Rays(IDA)、Ghidra Decompiler、Binary Ninja Decompiler |
| プラグイン/スクリプト | Python、Java、C++ で拡張可能 | IDA Python、Ghidra Jython、Binary Ninja Python API |
| クラウド/ヘッドレス | 大規模解析を分散実行 | Ghidra Headless、Binary Ninja Cloud、angr Cloud |
| 機械学習統合 | コードパターン認識や自動コメント付与 | Ghidra ML Extension、Binary Ninja AI Decompiler |
具体例・対応製品(テーブル必須)
| 製品名 | 発売年 | 価格帯 | 対応アーキテクチャ数 | 主なIR | 主要プラグイン数 | 典型的な用途 |
|---|---|---|---|---|---|---|
| IDA Pro | 1991 | $3,499(Professional) | 10+ | Hex‑Rays P-Code | 200+ | マルウェア解析、CVE調査 |
| Ghidra | 2019 | 無料 | 100+ | P-Code | 150+ | 企業内部調査、OSS解析 |
| Binary Ninja | 2014 | $299(Personal) | 15+ | BNIL | 80+ | IoTファームウェア解析 |
| radare2 | 2009 | 無料 | 30+ | r2-IR | 120+ | 低レベルデバッグ、CTF |
| angr | 2015 | 無料 | 20+ | VEX | 60+ | シンボリック実行、脆弱性発見 |
| Hopper | 2010 | $99(Personal) | 8+ | Hopper IR | 40+ | Mac/Linux バイナリ解析 |
| Cutter | 2020 | 無料 | 30+ | r2-IR | 70+ | GUI での radare2 拡張 |
| JEB Decompiler | 2013 | $2,000(Standard) | 12+ | JEB IR | 30+ | Android APK 解析 |
| Triton + miasm | 2016 | 無料 | 10+ | Triton IR | 20+ | エミュレーションと逆コンパイル |
| Frida | 2013 | 無料 | 40+ | JavaScript | 50+ | ランタイム解析、ゲームハック |
選び方・注意点
-
解析対象のアーキテクチャ
- 100+ アーキテクチャを網羅する Ghidra は多様な組込みデバイスに最適。
- 主要CPU(x86/ARM)だけで十分な場合は Binary Ninja の軽量化が有利。
-
中間表現の互換性
- angr の VEX はシンボリック実行と組み合わせやすい。
- Ghidra の P-Code は他ツールへのエクスポートが容易。
-
スクリプト/プラグインエコシステム
- Python ベースの拡張が豊富な Binary Ninja は自動化に強い。
- IDA Pro は IDC/IDAPython で業界標準のスクリプトが多数存在。
-
コストとライセンス
- 企業向けは IDA Pro の高額ライセンスが正当化されるケースが多い。
- OSS の Ghidra、radare2 は導入コストゼロだが、サポート体制はコミュニティ主体。
-
クラウド/ヘッドレス機能
- 大規模な解析ジョブやCI/CD 連携には Ghidra Headless、Binary Ninja Cloud が有効。
関連用語との違い
- 逆アセンブラ:アセンブリコードのみを生成。逆コンパイラはそれをさらに高水準言語に変換。
- デバッガ:実行時の状態を観察。逆コンパイラは静的解析に特化。
- シンボリック実行:実行パスを探索。angr は逆コンパイラと組み合わせて使用される。
よくある質問 (FAQ)
-
Q: Ghidra と IDA Pro のどちらが解析速度が速い?
A: 実際の速度は対象ファイルと解析タスクに依存する。IDA Pro は最適化されたバイナリ構造で高速だが、Ghidra はヘッドレスで並列実行が可能。 -
Q: Binary Ninja の Personal ライセンスは商用利用可?
A: Personal ライセンスは個人利用のみ。商用利用には Commercial ライセンスが必要。 -
Q: angr で生成される VEX IR はどの程度の抽象度?
A: VEX はレジスタとメモリ操作を抽象化し、C 言語に近い表現を持つが、完全な構造化コードは保証されない。
まとめ
1990 年代の IDA Pro が確立した逆コンパイラの基盤を受け、2019 年以降は Ghidra を中心に OSS が急速に台頭。2025–2026 年にはクラウドベースのヘッドレス解析、機械学習による自動コメント付与、シンボリック実行との統合が主流となり、逆コンパイラは単なる逆アセンブラを超えて、セキュリティリサーチ、脆弱性発見、ゲームハックなど多岐にわたる用途へと進化している。選択は解析対象、スクリプト環境、コスト、クラウドニーズを総合的に評価し、目的に最適なツールを組み合わせることが鍵となる。