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

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

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

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

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

Категории

Все категории
Loading categories
Enigma- — Реализация аналитического ядра Ghidra на C++ без зависимостей от JVM, обеспечивающая встраиваемый бинарный анализ, основы Pcode/Sleigh и интерфейсы, готовые к использованию с ИИ, для обратной разработки. | Kitploit
Инструменты/GitHubGitHub/gmh5225/enigma-
Статический анализАнализ КодаДинамический анализ кода (DAST)Обратная инженерияУтилиты и фреймворкиАнализ Бинарных ФайловОбратная Разработка с Помощью ИИБезопасность ИИ
GitHubgmh5225/enigma-

Enigma-

Реализация аналитического ядра Ghidra на C++ без зависимостей от JVM, обеспечивающая встраиваемый бинарный анализ, основы Pcode/Sleigh и интерфейсы, готовые к использованию с ИИ, для обратной разработки.

143 месяцев назадЕщё не проверено
Репозиторий

Популярное

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

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

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

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

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

Enigma

C++-реализация аналитического ядра Ghidra (SoftwareModeling + Utility), лишённая зависимостей от Java/JVM. Создана для интеграции с ИИ, производительности и встраиваемости. Часть проекта Enigma Engine.

Enigma Engine

C++-реализация аналитического ядра Ghidra — без JVM, без Java, полный контроль.


Что это?

Ghidra — мощный фреймворк для обратной разработки, созданный АНБ на Java. Enigma — это полная переработка его аналитического ядра на современном C++, спроектированная так, чтобы быть:

  • Встраиваемой — подключайте её как библиотеку в любой проект
  • Готовой к ИИ — чистые интерфейсы для интеграции с ML/AI
  • Быстрой — без накладных расходов JVM, нативная работа с памятью
  • Модифицируемой — каждый файл можно изменять, расширять или заменять

Это не результат транспиляции из Java в C++. Каждый файл переведён вручную и проверен, с полным тестовым покрытием.


Зачем?

Кодовая база Ghidra на Java зрелая, но её сложно расширять в некоторых направлениях:

ПроблемаОтвет Enigma
Запуск JVM + накладные расходы GCНативный C++, нулевые накладные расходы
Сложно встроить в не-Java проектыСтатическая/динамическая библиотека
Для интеграции с ИИ требуются мосты JNIПрямой C++ API
Монолитная система плагиновМодульные, заменяемые компоненты

Текущее состояние

Активная разработка — аналитическая основа стабильна и протестирована.

Базовая система типов, модель адресов, интерфейсы памяти, фреймворк настроек и основы Pcode/Sleigh реализованы и проходят тесты. Проект следует строгому порядку перевода снизу вверх: ни один модуль не добавляется, пока все его зависимости не реализованы и не проверены.

Система сборки: CMake + Ninja + CTest — без предупреждений, все тесты проходят.


Архитектура

Enigma повторяет внутреннюю структуру пакетов Ghidra, переведённую в пространства имён C++:

root@kitploit:~
include/ghidra/
├── [Address system]     Address, AddressSpace, AddressFactory, AddressRange
├── [Data types]         DataType, Structure, Union, Enum, Pointer,
│                        Array, TypeDef, FunctionDefinition, ...
├── [Memory]             MemBuffer, MemoryBlock, Memory, ByteProvider
├── [Settings]           Settings + full SettingsDefinition hierarchy
├── [Pcode / Sleigh]     PcodeOp, Varnode, SleighLanguage, SequenceNumber
└── [Utilities]          MathUtilities, DataConverter, Msg, TaskMonitor, ...

src/
└── [.cpp implementations for complex classes]

Ключевые проектные решения:

  • Java interface → C++ abstract class с чистыми virtual методами
  • Java ArrayList / HashMap → std::vector / std::unordered_map
  • Java null возвраты → std::optional<T>
  • Java Generics → шаблоны C++
  • Address объединён из интерфейса + реализации в единый тип-значение (избегает выделения в куче)
  • Сырые указатели используются только для не владеющих ссылок; владение всегда явное

Область охвата

Enigma — это полная замена Ghidra: каждый компонент, существующий на Java, получит эквивалент на C++, включая UI, систему плагинов, дизассемблер, декомпилятор и движок скриптов.

Текущий фокус — аналитическое ядро — фундамент, на котором строится всё остальное. Как только оно станет надёжным и протестированным, остальные слои (GUI, загрузчики, плагины анализа, скриптинг) последуют по порядку.

Ничто не исключено навсегда. Всё — вопрос приоритета.


Сборка

Требования

  • Компилятор C++17 (g++ 11+ или clang++ 13+)
  • CMake 3.20+
  • Ninja (рекомендуется)

Шаги

root@kitploit:~
git clone https://github.com/adam-040/Enigma.git
cd Enigma
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failure

План развития

Ближайшие цели

  • Завершить движок языка Sleigh (загрузка .sla / .pspec)
  • PcodeEmitter — генерация Pcode из сырых инструкций
  • BasicBlock + ControlFlowGraph
  • Интеграция Capstone для дизассемблирования (x86, ARM, RISC-V)

Среднесрочные цели

  • Интеграция LIEF для загрузки бинарников (ELF, PE, Mach-O)
  • Таблица символов + восстановление типов
  • IR декомпилятора (High Pcode)

Интеграция с ИИ

  • Чистый C++ API для ML-моделей
  • Вывод сигнатур функций
  • Предложение имён переменных / типов
  • Интеграция локальных LLM (без зависимости от облака)

Название проекта

Enigma — назван в честь шифровальной машины времён Второй мировой войны, взломанной с помощью обратной разработки. Показалось подходящим.


Лицензия

Этот проект является переводом Ghidra, которая лицензирована под Apache License 2.0.

Enigma распространяется под той же лицензией. Подробности см. в LICENSE.


Связанные проекты

  • Ghidra (NSA) — оригинальный проект на Java
  • Capstone — движок дизассемблирования (планируется интеграция)
  • LIEF — парсинг бинарников (планируется интеграция)
Скачать инструмент