Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Ghidrathon — Открытое расширение команды FLARE для добавления скриптов на Python 3 в Ghidra. | Kitploit
Инструменты/GitHubGitHub/mandiant/ghidrathon
Обратная инженерияСкриптинг и автоматизацияАнализ вредоносных программАнализ Бинарных ФайловArchived
GitHubmandiant/ghidrathon

Ghidrathon

Открытое расширение команды FLARE для добавления скриптов на Python 3 в Ghidra.

Репозиторий
7886552 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Ghidrathon

GitHub Release GitHub Downloads (all assets, latest release) CI License

Ghidrathon — это расширение Ghidra, добавляющее возможности написания скриптов на Python 3 в Ghidra. Зачем? Ghidra изначально поддерживает написание скриптов на Java и Jython. К сожалению, многие инструменты анализа с открытым исходным кодом, такие как capa, Unicorn Engine, angr и другие, написаны на Python 3, что затрудняет, а в некоторых случаях делает невозможным использование этих инструментов в Ghidra. Более того, сообщество специалистов по безопасности выпустило несколько отличных плагинов для других фреймворков обратной разработки, таких как IDA Pro и Binary Ninja, но и здесь, поскольку многие из этих плагинов используют Python 3, их сложно перенести в Ghidra. Ghidrathon помогает вам использовать существующие и разрабатывать новые инструменты на Python 3 в Ghidra, а также писать скрипты для Ghidra на современном Python, тесно интегрируясь с пользовательским интерфейсом Ghidra. Он заменяет существующее расширение Python 2.7, реализованное через Jython. Это включает интерактивное окно интерпретатора, интеграцию с Ghidra Script Manager и выполнение скриптов в headless-режиме Ghidra.

example

Пожалуйста, посмотрите наш пример скрипта Ghidra на Python 3 здесь, чтобы подробнее ознакомиться с написанием скриптов на Python 3 для Ghidra.

Ознакомьтесь:

  • Обзор в нашем первом посте в блоге о Ghidrathon

Установка Ghidrathon

Требования

Выполните следующие шаги для установки Ghidrathon в ваше окружение Ghidra:

  1. Загрузите и распакуйте последний релиз Ghidrathon.
  2. Выполните следующие команды, используя тот интерпретатор Python, который вы хотите использовать с Ghidrathon (requirements.txt и ghidrathon_configure.py включены в релиз):
root@kitploit:~
$ python -m pip install -r requirements.txt
$ python ghidrathon_configure.py <absolute_path_to_ghidra_install_dir>

Примечание: ghidrathon_configure.py по умолчанию пытается записать файл с именем ghidrathon.save в <absolute_path_to_ghidra_install_dir>. Вы можете указать путь, куда будет записан этот файл, установив переменную окружения GHIDRATHON_SAVE_PATH перед запуском ghidrathon_configure.py и Ghidra:

root@kitploit:~
$ export GHIDRATHON_SAVE_PATH="/path/to/custom/dir" # Linux/MacOS
$ set GHIDRATHON_SAVE_PATH="C:\path\to\custom\dir"  # Windows

Примечание: вас могут попросить установить переменную окружения с именем JAVA_HOME. Она должна указывать на абсолютный путь к JDK, который вы настроили для вашей установки Ghidra.

  1. Установите расширение Ghidrathon (.zip) в Ghidra:
    • Используя пользовательский интерфейс Ghidra:
      • Перейдите в File > Install Extensions...
      • Нажмите зелёную кнопку +
      • Перейдите к расширению Ghidrathon (.zip)
      • Нажмите Ok
      • Необязательно
        • Выберите Install Anyway, если появится окно Extension Version Mismatch
    • Используя ограниченное окружение:
      • Извлеките расширение Ghidrathon (.zip) в <absolute_path_to_ghidra_install_dir>\Ghidra\Extensions

Переключение интерпретаторов Python

Вы можете переключить Ghidrathon на использование другого интерпретатора Python, выполнив шаг 2 с новым интерпретатором Python.

Использование виртуальных окружений Python

Вы можете использовать виртуальное окружение Python с Ghidrathon, выполнив шаг 2 из виртуального окружения. Чтобы переключиться на другое виртуальное окружение, просто выполните шаг 2 из нового виртуального окружения.

Использование Ghidrathon

Окно интерпретатора Python 3

Окно интерпретатора предоставляет интерактивный доступ к вашему интерпретатору Python 3. Нажмите "Window" и выберите "Ghidrathon", чтобы открыть окно интерпретатора.

example

Интеграция с Ghidra Script Manager

Ghidrathon интегрируется напрямую с Ghidra Script Manager, позволяя вам создавать, редактировать и выполнять скрипты на Python 3 внутри Ghidra. Нажмите "Create New Script" и выберите "Python 3", чтобы создать новый скрипт на Python 3. Нажмите "Run Script" или "Run Editor's Script", чтобы выполнить ваш скрипт на Python 3, и проверьте окно Ghidra Console для вывода скрипта.

example

Headless-режим Ghidra

Ghidrathon помогает вам выполнять скрипты на Python 3 в headless-режиме Ghidra. Выполните скрипт analyzeHeadless, расположенный в папке установки Ghidra, укажите ваш скрипт на Python 3 и проверьте окно консоли для вывода скрипта.

root@kitploit:~
$ analyzeHeadless C:\Users\wampus example -process example.o -postScript ghidrathon_example.py
[...]
INFO  SCRIPT: C:\Users\wampus\.ghidra\.ghidra_10.0.3_PUBLIC\Extensions\Ghidrathon-master\ghidra_scripts\ghidrathon_example.py (HeadlessAnalyzer)
Function _init @ 0x101000: 3 blocks, 8 instructions
Function FUN_00101020 @ 0x101020: 1 blocks, 2 instructions
Function __cxa_finalize @ 0x101040: 1 blocks, 2 instructions
Function printf @ 0x101050: 1 blocks, 2 instructions
Function _start @ 0x101060: 1 blocks, 13 instructions
Function deregister_tm_clones @ 0x101090: 4 blocks, 9 instructions
Function register_tm_clones @ 0x1010c0: 4 blocks, 14 instructions
Function __do_global_dtors_aux @ 0x101100: 5 blocks, 14 instructions
[...]
INFO  REPORT: Post-analysis succeeded for file: /example.o (HeadlessAnalyzer)
INFO  REPORT: Save succeeded for processed file: /example.o (HeadlessAnalyzer)

Для получения дополнительной информации о запуске Ghidra в headless-режиме смотрите <absolute_path_to_ghidra_install_dir>/support/analyzeHeadlessREADME.html.

Сторонние модули Python

Одной из наших главных мотиваций при разработке Ghidrathon была возможность использования сторонних модулей Python 3 в Ghidra. Вы можете установить модуль и начать использовать его внутри Ghidra точно так же, как в типичной настройке Python. Это также относится к модулям, которые вы установили ранее. Например, мы можем установить и использовать Unicorn для эмуляции кода ARM внутри Ghidra.

example

Написание скриптов Ghidra на Python 3

Ghidrathon предоставляет опыт написания скриптов, который во многом повторяет расширения Ghidra для Java и Jython, включая предоставление переменных состояния GhidraScript, например currentProgram, и методов FlatProgramAPI, например findBytes, в области видимости встроенных (builtins) функций Python. Это означает, что все модули Python, импортируемые вашим кодом, имеют доступ к этим переменным и методам. Ghidrathon немного отличается от расширений Ghidra для Java и Jython тем, что предоставляет переменные состояния GhidraScript как вызовы функций Python, а не как прямой доступ, например, ваш код на Python 3 должен обращаться к currentProgram через вызов функции currentProgram(). Это небольшое изменение гарантирует, что вашему коду на Python 3 во время выполнения предоставляются правильные переменные состояния GhidraScript. Пожалуйста, посмотрите наш пример скрипта Ghidra на Python 3 здесь, чтобы подробнее ознакомиться с написанием скриптов на Python 3 для Ghidra.

Как это работает?

Ghidrathon связывает вашу локальную установку Python с Ghidra, используя проект с открытым исходным кодом Jep. По сути, ваш локальный интерпретатор Python запускается внутри Ghidra с доступом ко всем вашим пакетам Python и стандартному API написания скриптов Ghidra. Ghidrathon также работает с виртуальными окружениями Python, помогая вам создавать, изолировать и управлять пакетами, которые вы, возможно, хотите установить только для использования в Ghidra. Поскольку Ghidrathon использует вашу локальную установку Python, вы контролируете версию Python и окружение, работающее внутри Ghidra.

Для получения дополнительной информации о том, как Jep встраивает Python в Java, смотрите их документацию здесь.

Соображения

Ghidrathon использует библиотеку с открытым исходным кодом Jep, которая использует Java Native Interface (JNI) для встраивания Python в JVM. Разработчики Ghidra не рекомендуют использовать JNI в Ghidra по причинам, описанным здесь.

Скачать инструмент
ИнструментВерсияИсточник
Ghidrathon>= 4.0.0https://github.com/mandiant/Ghidrathon/releases
Python>= 3.8.0https://www.python.org/downloads
Jep== 4.2.0https://pypi.org/project/jep
Ghidra>= 10.3.2https://github.com/NationalSecurityAgency/ghidra/releases
Java>= 17.0.0https://adoptium.net/temurin/releases