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

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

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

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

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

Категории

Все категории
Loading categories
ghidralligator — Мультиархитектурный pcode-эмулятор на базе Ghidra/Sleigh для фаззинга AFL++ бинарных файлов, прошивок и встраиваемых устройств; обнаруживает ошибки повреждения памяти с помощью ASAN. | Kitploit
Инструменты/GitHubGitHub/airbus-cyber/ghidralligator
Безопасность встроенных системДинамический анализ (песочница)Анализ уязвимостейФаззингАнализ Бинарных ФайловАнализ Прошивок
GitHubairbus-cyber/ghidralligator

ghidralligator

Мультиархитектурный pcode-эмулятор на базе Ghidra/Sleigh для фаззинга AFL++ бинарных файлов, прошивок и встраиваемых устройств; обнаруживает ошибки повреждения памяти с помощью ASAN.

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

Популярное

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

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

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

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

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

Ghidralligator_logo

Ghidralligator

License

Ghidralligator — это C++ мультиархитектурный pcode эмулятор, основанный на Ghidra libsla и предназначенный для фаззинга с помощью AFL++.

Он позволяет выполнять фаззинг на основе эмуляции, сохраняя при этом хорошую производительность при работе с бинарными файлами, выполняемыми на экзотических архитектурах.

Благодаря расширяемой природе Ghidralligator можно буквально эмулировать любую архитектуру (при условии, что вы можете написать соответствующий файл спецификации Sleigh) для фаззинга произвольного фрагмента кода.

Установка

Ghidralligator может работать в Linux. Для этого требуется только версия GCC, поддерживающая C++17 (протестировано и работает на GCC версии 12.2.0).

Зависимости Ghidra встроены в сам проект в каталоге "./src/".

Для правильной установки Ghidralligator необходимо загрузить и скомпилировать AFL++ следующим образом:

  1. Клонируйте и установите AFL++
root@kitploit:~
git clone https://github.com/AFLplusplus/AFLplusplus
cd AFLplusplus
make distrib
sudo make install
  1. Клонируйте и скомпилируйте Ghidralligator:
root@kitploit:~
git clone https://github.com/airbus-cyber/ghidralligator
cd ghidralligator
make ghidralligator
  1. Получите соответствующий файл .sla для архитектуры, которую вы хотите эмулировать. Вы можете написать файл .sla самостоятельно или загрузить уже существующие из официального репозитория Ghidra (здесь). Набор файлов .sla по умолчанию, встроенных в проект, можно найти в папке "./specfiles".

Что такое Ghidralligator?

Ghidralligator призван заполнить разрыв между уже существующими эмуляторами, требующими большой настройки и ручных модификаций для инструментирования, запуска и фаззинга бинарных файлов, и «черно-ящиковыми» эмуляторами, которые трудно расширять и которые не подходят для специфических и необычных применений.

Основное применение — исследование уязвимостей в бинарных файлах с закрытым исходным кодом, особенно при работе с приложениями/прошивками встраиваемых устройств, работающих на экзотических архитектурах.

Ghidralligator является преемником afl_ghidra_emu. Он значительно повышает скорость выполнения и включает полезные функции, такие как обнаружение повреждения кучи (ASAN).

Можно обнаружить самые разные повреждения памяти: чтение/запись за пределами границ, use-after-free, double-free, чтение неинициализированной памяти, нарушения прав доступа чтения/записи/исполнения...

Для запуска Ghidralligator необходимо выполнить следующие шаги:

  • Создать файл конфигурации для определения раскладки карты памяти и начального состояния программы.
  • Разработать хуки.

Документация

  • Файл конфигурации Ghidralligator : документация по написанию файла конфигурации.
  • Хуки Ghidralligator : документация по написанию файла пользовательских хуков.

Обучающие материалы

Чтобы понять, как использовать Ghidralligator, был создан пример уязвимой программы, скомпилированной для разных архитектур.

Вы можете запустить run_examples.sh, чтобы увидеть механизмы ASAN в действии.

Быстрый старт

Ghidralligator поставляется с несколькими параметрами командной строки:

root@kitploit:~
usage: ./ghidralligator [OPTION]

  -h 			Print this help and exit.

  -m [replay|fuzz]	Specify an emulation strategy. [REQUIRED]
				In 'replay' mode, the emulator will only launch the program once, exiting after a single loop.
				In 'fuzz' mode, this program must be launched through AFL.

  -c [FILENAME]		Specify the emulator json configuration file to load. [REQUIRED]

  -i [FILENAME]		Specify a test-case file to insert during a replay session. [OPTIONAL]

  -I 			Display info log (/!\ Slow down the emulation). [OPTIONAL]
  -D 			Display debug and info log (/!\ Slow down the emulation). [OPTIONAL]

  -t 			Store log in ./ghidraligator.log file. [OPTIONAL]


Использование для стандартной эмуляции:

root@kitploit:~
$ ./ghidralligator -m replay -c examples/x86/config.json -I -i examples/x86/input/normal_use_case.bin

gif replay

Использование для стандартного сеанса фаззинга AFL++:

root@kitploit:~
mkdir afl_inputs afl_outputs
echo -n "AAAAAA" > ./afl_inputs/input.bin
$ AFL_SKIP_BIN_CHECK=1 afl-fuzz -D -i ./afl_inputs -o ./afl_outputs/ -- ./ghidralligator -m fuzz -c examples/x86/config.json

gif fuzzing

Ограничения

  • Ghidralligator может эмулировать код благодаря файлу .sla (файл определения инструкций Sleigh). Файлы SLA, предоставляемые сообществом Ghidra, могут быть реализованы частично. Для обеспечения корректной эмуляции пользователям может потребоваться дополнить соответствующее определение архитектуры Sleigh или добавить некоторые хуки.

  • Ghidralligator основан на Ghidra, которая не предназначена для высокопроизводительной эмуляции. Таким образом, он не может конкурировать с классическими фаззерами, такими как afl_qemu, на стандартных архитектурах (бинарные файлы x86 Linux / Windows).

  • Поскольку проект Ghidra постоянно развивается, не рекомендуется вручную обновлять зависимости Ghidralligator для будущих версий Ghidra. Инструмент был собран и протестирован с исходными кодами декомпилятора Ghidra 11.0.3. Он может перестать работать с будущими версиями, а обратная совместимость с версиями ниже 11.0.3 не поддерживается. Это незаметно для пользователя, поскольку зависимости Ghidra предоставляются в этом репозитории.

Лицензии

Ghidralligator выпущен под лицензией Apache версии 2.0.

Код Ghidralligator включает код проекта Ghidra от NationalSecurityAgency, выпущенный под лицензией Apache 2.0.

Парсер файлов конфигурации Ghidralligator включает C++ библиотеку json от Niels Lohmann, выпущенную под лицензией MIT.

Модуль Ghidralligator включает библиотеку xxHash от Yann Collet, выпущенную под лицензией BSD 2-Clause.

Авторы

  • Flavian Dola - Airbus (Twitter)
  • Guillaume Orlando - Airbus (Twitter)
Скачать инструмент