Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Enigma- — C++ reimplementation of Ghidra's analytical core without JVM dependencies, providing embeddable binary analysis, Pcode/Sleigh foundations, and AI-ready interfaces for reverse engineering. | Kitploit
Tools/GitHubGitHub/gmh5225/enigma-
Static AnalysisCode AnalysisDynamic Code Analysis (DAST)Reverse EngineeringUtilities & FrameworksBinary AnalysisAI-Assisted ReversingAI Security
GitHubgmh5225/enigma-

Enigma-

C++ reimplementation of Ghidra's analytical core without JVM dependencies, providing embeddable binary analysis, Pcode/Sleigh foundations, and AI-ready interfaces for reverse engineering.

View Repository
143 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Enigma

C++ reimplementation of Ghidra's analytical core (SoftwareModeling + Utility), stripped of Java/JVM dependencies. Built for AI integration, performance, and embeddability. Part of the Enigma Engine project.

Enigma Engine

A C++ reimplementation of Ghidra's analytical core — no JVM, no Java, full control.


What is this?

Ghidra is a powerful reverse engineering framework built by the NSA in Java. Enigma is a ground-up rewrite of its analytical core in modern C++, designed to be:

  • Embeddable — link it as a library into any project
  • AI-ready — clean interfaces for ML/AI integration
  • Fast — no JVM overhead, native memory layout
  • Hackable — every file is yours to modify, extend, or replace

This is not a Java-to-C++ transpiler output. Every file is manually translated and verified, with full test coverage.


Why?

Ghidra's Java codebase is mature but difficult to extend in certain directions:

ProblemEnigma's answer
JVM startup + GC overheadNative C++, zero runtime
Hard to embed in non-Java projectsStatic/shared library
AI integration requires JNI bridgesDirect C++ API
Monolithic plugin systemModular, replaceable components

Current Status

Active development — analytical foundation is stable and tested.

The core type system, address model, memory interfaces, settings framework, and Pcode/Sleigh foundations are implemented and passing tests. The project follows a strict bottom-up translation order: no module is added until all its dependencies are in place and verified.

Build system: CMake + Ninja + CTest — zero warnings, all tests pass.


Architecture

Enigma mirrors Ghidra's internal package structure, translated into C++ namespaces:

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]

Key design decisions:

  • Java interface → C++ abstract class with pure virtual methods
  • Java ArrayList / HashMap → std::vector / std::unordered_map
  • Java null returns → std::optional<T>
  • Java Generics → C++ templates
  • Address merged from interface + impl into a single value type (avoids heap allocation)
  • Raw pointers used for non-owning references only; ownership is always explicit

Scope

Enigma is a complete replacement for Ghidra — every component that exists in Java will have a C++ equivalent, including the UI, plugin system, disassembler, decompiler, and scripting engine.

Current focus is the analytical core — the foundation everything else builds on. Once it is solid and tested, the remaining layers (GUI, loaders, analysis plugins, scripting) will follow in order.

Nothing is permanently excluded. Everything is a matter of priority.


Building

Requirements

  • C++17 compiler (g++ 11+ or clang++ 13+)
  • CMake 3.20+
  • Ninja (recommended)

Steps

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

Roadmap

Near term

  • Complete Sleigh language engine (.sla / .pspec loading)
  • PcodeEmitter — generate Pcode from raw instructions
  • BasicBlock + ControlFlowGraph
  • Capstone integration for disassembly (x86, ARM, RISC-V)

Mid term

  • LIEF integration for binary loading (ELF, PE, Mach-O)
  • Symbol table + type recovery
  • Decompiler IR (High Pcode)

AI integration

  • Clean C++ API surface for ML models
  • Function signature inference
  • Variable name / type suggestion
  • Local LLM integration (no cloud dependency)

Project naming

Enigma — named after the WWII cipher machine, broken through reverse engineering. It felt right.


License

This project is a translation of Ghidra, which is licensed under the Apache License 2.0.

Enigma is distributed under the same license. See LICENSE for details.


Related

  • Ghidra (NSA) — the original Java project
  • Capstone — disassembly engine (planned integration)
  • LIEF — binary parsing (planned integration)
Download Tool