Ghidra
Ghidra (произносится ги́дра;[3] /ˈɡiːdrə/) — свободный инструмент для реверс-инжиниринга, разработанный Агентством национальной безопасности США (NSA). Исполняемые файлы были выпущены на RSA Conference в марте 2019 года; исходные коды опубликованы месяцем позже на GitHub[4]. Компонент декомпилятора реализован на C++, благодаря чему может использоваться отдельно[5].
Скрипты для автоматизированного анализа в Ghidra могут быть написаны на Java или Python (через Jython),[6][7] однако эта возможность расширяема, и поддержка других языков программирования реализуется через плагины сообщества[8]. Плагины, добавляющие новые функции в саму Ghidra, могут разрабатываться с использованием расширяемой Java-платформы.[9]
Общие сведения
| Ghidra | |
|---|---|
| Тип | компьютерная программа |
| Автор | NSA |
| Написана на | Java, C++ |
| Первый выпуск | 5 марта 2019 |
| Последняя версия | 11.3.2[1] (15 апреля 2025) |
| Репозиторий | github.com/NationalSecur… |
| Лицензия | Apache License 2.0 / общественное достояние[2] |
| Сайт | ghidra-sre.org |
История
О существовании Ghidra впервые стало известно благодаря публикациям Vault 7 в марте 2017 года[10], однако само программное обеспечение оставалось недоступным до рассекречивания и официального релиза два года спустя[4]. Некоторые комментарии в исходном коде указывают, что проект существовал уже в 1999 году.
| Версия | Год | Основные изменения |
|---|---|---|
| 1.0 | 2003 | Proof of concept |
| 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 года проект coreboot начал использовать Ghidra для задач реверс-инжиниринга прошивок после выхода открытой версии программного комплекса Ghidra[12].
Официально,[13][14] начиная с версии Ghidra 10.0, программа может использоваться как отладчик. Отладчик Ghidra поддерживает отладку пользовательских программ Windows через WinDbg, а также программ Linux через GDB[15].
Поддерживаемые архитектуры
Поддерживаются следующие архитектуры и форматы бинарных файлов[16]:
- x86 16, 32 и 64 бит
- ARM и AARCH64
- PowerPC 32/64 и 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
- LoongArch
- Xtensa