Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия | |||
| reverseenengineering:soft_ghidra [2025/06/23 23:58] – ↷ Имя страницы reverseenengineering:ghidra изменено на reverseenengineering:soft_ghidra Lex | reverseenengineering:soft_ghidra [2025/07/18 12:37] (текущий) – Lex | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== | + | ====== |
| + | |||
| + | **Ghidra** — это мощный набор инструментов для обратной разработки (reverse engineering), | ||
| + | |||
| + | ===== Основные возможности ===== | ||
| + | |||
| + | * Дизассемблирование (disassembly) и декомпиляция (decompilation) широкого спектра архитектур | ||
| + | * Поддержка множества форматов файлов: | ||
| + | * Визуализация графов вызовов (call graphs), переходов (control flow), зависимостей и др. | ||
| + | * Интерактивный анализ кода: переименование функций, | ||
| + | * Встроенный декомпилятор с возможностью вывода в C-подобный код | ||
| + | * Расширяемость через скрипты (Python, Java) и собственные плагины | ||
| + | * Многофайловый анализ (Project-based), | ||
| + | * Поддержка отладки через интеграцию Ghidra Debugger (GDB, WinDbg, и др.) | ||
| + | * Совместная работа над проектом (многопользовательский режим) | ||
| + | |||
| + | ===== Поддерживаемые архитектуры ===== | ||
| + | |||
| + | * x86 (32-bit и 64-bit) | ||
| + | * ARM, AARCH64 | ||
| + | * PowerPC | ||
| + | * MIPS | ||
| + | * SPARC | ||
| + | * 68000, Z80, и др. | ||
| + | * Возможность добавления собственных процессоров (через Sleigh DSL) | ||
| + | |||
| + | ===== Системные требования ===== | ||
| + | |||
| + | * **Платформы: | ||
| + | * **Java Runtime:** требуется Java 17+ | ||
| + | * **Аппаратные требования: | ||
| + | |||
| + | ===== Установка и запуск ===== | ||
| + | |||
| + | 1. Загрузить с официального сайта: https:// | ||
| + | 2. Распаковать архив (установка не требуется) | ||
| + | 3. Убедиться в наличии Java 17+ | ||
| + | 4. Запустить `ghidraRun` (Linux/ | ||
| + | 5. Создать новый проект и импортировать бинарный файл для анализа | ||
| + | |||
| + | ===== Интерфейс и компоненты ===== | ||
| + | |||
| + | * **CodeBrowser** — основной интерфейс анализа и декомпиляции | ||
| + | * **Decompiler Window** — просмотр C-подобного кода | ||
| + | * **Symbol Tree** — дерево символов, | ||
| + | * **Listing View** — дизассемблер с аннотациями | ||
| + | * **Data Type Manager** — редактирование структур, | ||
| + | * **Script Manager** — запуск и написание пользовательских скриптов | ||
| + | * **Function Graph** — граф вызовов функции | ||
| + | * **Debugger** — подключение к внешнему процессу или образу памяти | ||
| + | |||
| + | ===== Расширяемость и скрипты ===== | ||
| + | |||
| + | * Поддержка скриптов на: | ||
| + | - Java (основной язык Ghidra) | ||
| + | - Jython (Python 2.7) | ||
| + | - Python 3 (через интеграцию с Ghidra 10+) | ||
| + | - JavaScript, BeanShell и др. | ||
| + | * Возможность автоматизации задач: автокомментарии, | ||
| + | * Ghidra Extension Manager — установка плагинов | ||
| + | * Ghidra API позволяет писать собственные плагины и GUI-инструменты | ||
| + | |||
| + | ===== Применение ===== | ||
| + | |||
| + | * Анализ вредоносного ПО (malware analysis) | ||
| + | * Реверс-инжиниринг проприетарных форматов | ||
| + | * Изучение уязвимостей и эксплойтов | ||
| + | * Исследование бинарей закрытых программ | ||
| + | * Создание сигнатур, | ||
| + | * Анализ прошивок и встраиваемых систем | ||
| + | |||
| + | ===== Сравнение с аналогами ===== | ||
| + | |||
| + | ^ Инструмент | ||
| + | | **Ghidra** | ||
| + | | IDA Free / Pro | Проприетарная| Да | Да (Pro) | Да | $$$ | | ||
| + | | Radare2 / Cutter | ||
| + | | Binary Ninja | Проприетарная| Да | Да | Да | $$ | | ||
| + | |||
| + | ===== Юридические аспекты ===== | ||
| + | |||
| + | * Ghidra распространяется под **лицензией Apache 2.0**, с открытым исходным кодом. | ||
| + | * Разработка осуществляется NSA и активно поддерживается сообществом. | ||
| + | * Использование разрешено в коммерческих и исследовательских целях. | ||
| + | * Исходный код доступен на GitHub: https:// | ||
| + | |||
| + | ===== Полезные ссылки ===== | ||
| + | |||
| + | * [Официальный сайт](https:// | ||
| + | * [Документация](https:// | ||
| + | * [Форум и обсуждения](https:// | ||
| + | * [YouTube-видеоуроки](https:// | ||
| + | |||
| + | ===== Заключение ===== | ||
| + | |||
| + | **Ghidra** — это универсальный, | ||
| + | |||