Ghidra
From Wikipedia, the free encyclopedia
Ghidra(ギドラ、 [ˈɡiːdrə][3])は、アメリカ国家安全保障局(NSA)によって開発されたオープンソースのリバースエンジニアリングツールである。実行バイナリは2019年3月の RSAカンファレンスで公開され、ソースコードは1か月後にGitHubで公開された[4]。Ghidraは多くのセキュリティ研究者によってIDA Proの競合相手とみなされている[5]。また、GUI用のSwingを使用してJavaで作成されている。逆コンパイラの部分はC++で記述されているため、スタンドアロン形式で使用できる[注釈 1]。
|
| |
|
Ghidra でのファイルの逆アセンブルの様子 | |
| 作者 | アメリカ国家安全保障局 |
|---|---|
| 初版 | 2019年3月5日 |
| 最新版 |
12.0.4[1]
/ 2026年3月4日 |
| リポジトリ |
github |
| プログラミング 言語 | Java, C++ |
| プラットフォーム | クロスプラットフォーム |
| ライセンス | Apache License 2.0 / Public domain[2] |
| 公式サイト |
ghidra-sre |
Ghidraを使用して自動分析を実行するスクリプトは、JavaまたはPython(Jython経由)で作成できる[6][7]。ただし、この機能は拡張可能であり、コミュニティプラグインを介して他のプログラミング言語でも作成できる[8]。Ghidraに新しい機能を追加するプラグインは、Javaベースの拡張フレームワークを使用して開発できる[9]。
歴史
Ghidraの存在は2017年3月にVault 7を通じて初めて公開されたが[10]、ソフトウェア自体は2年後に機密解除され、正式リリースまで利用できないままだった[4]。ソースコード内のコメントから、1999年頃から存在していたことが判明した[11]。
| バージョン | 年 | 主な変更点 |
|---|---|---|
| 1.0 | 2003 | 概念実証 |
| 2.0 | 2004 | データベース、ドッキングウィンドウ |
| 3.0 | 2006 | SLEIGH、逆コンパイラ、バージョン管理 |
| 4.0 | 2007 | スクリプト、バージョントラッキング |
| 5.0 | 2010 | ファイルシステムブラウザ |
| 6.0 | 2014 | 非機密バージョン |
| 9.0 | 2019 | 公開バージョン |
| 9.2 | 2020 | グラフ可視化、新たなPDBパーサー |
| 10.0 | 2021 | デバッガー |
| 11.0 | 2023 | RustとGoバイナリのサポート、BSim |
| 11.1 | 2024 | SwiftとDWARF 5のサポート、 Mach-Oの改善 |
2019年6月、corebootはGhidraのソフトウェアスイートをオープンソースで公開した後、ファームウェア固有の問題に対するリバースエンジニアリングの取り組みにGhidraの使用を開始した[14]。
Ghidra 10.0以降、正式にデバッガとして使用できるようになった[15][16]。Ghidraのデバッガは、WinDbg経由のユーザーモードWindowsプログラムとGDB経由のLinuxプログラムのデバッグをサポートしている[17]。
対応アーキテクチャ
次のアーキテクチャまたはバイナリ形式に対応している[18][19]。
- x86 16、32、64
- ARM、AArch64
- PowerPC 32/64 and VLE
- MIPS 16/32/64
- microMIPS
- 68xxx
- Java、DEX bytecode
- PA-RISC
- RISC-V
- eBPF
- BPF
- Tricore
- PIC 12/16/17/18/24
- SPARC 32/64
- CR16C
- Z80
- 6502
- MC6805/6809, HC05/HC08/HC12
- 8048, 8051, 8085
- CP1600
- MSP430
- AVR8, AVR32
- SuperH
- V850
- Loongson
- Xtensa