Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Enigma- — Reimplementación en C++ del núcleo analítico de Ghidra sin dependencias de JVM, que proporciona análisis binario embebible, fundamentos de Pcode/Sleigh e interfaces listas para IA para ingeniería inversa. | Kitploit
Herramientas/GitHubGitHub/gmh5225/enigma-
Análisis EstáticoAnálisis de CódigoAnálisis Dinámico de Código (DAST)Ingeniería InversaUtilidades y FrameworksAnálisis de BinariosReversing Asistido por IASeguridad de IA
GitHubgmh5225/enigma-

Enigma-

Reimplementación en C++ del núcleo analítico de Ghidra sin dependencias de JVM, que proporciona análisis binario embebible, fundamentos de Pcode/Sleigh e interfaces listas para IA para ingeniería inversa.

14hace 3 mesesAún no revisado
Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Enigma

Reimplementación en C++ del núcleo analítico de Ghidra (SoftwareModeling + Utility), despojado de dependencias de Java/JVM. Construido para integración con IA, rendimiento y capacidad de incrustación. Parte del proyecto Enigma Engine.

Enigma Engine

Una reimplementación en C++ del núcleo analítico de Ghidra — sin JVM, sin Java, control total.


¿Qué es esto?

Ghidra es un potente framework de ingeniería inversa creado por la NSA en Java. Enigma es una reescritura desde cero de su núcleo analítico en C++ moderno, diseñado para ser:

  • Incrustable — enlázalo como biblioteca en cualquier proyecto
  • Listo para IA — interfaces limpias para integración con ML/IA
  • Rápido — sin sobrecarga de JVM, diseño de memoria nativo
  • Modificable — cada archivo es tuyo para modificar, extender o reemplazar

Esto no es la salida de un transpilador de Java a C++. Cada archivo está traducido y verificado manualmente, con cobertura de pruebas completa.


¿Por qué?

La base de código Java de Ghidra es madura pero difícil de extender en ciertas direcciones:

ProblemaRespuesta de Enigma
Sobrecarga de inicio de JVM + GCC++ nativo, cero runtime
Difícil de incrustar en proyectos que no son JavaBiblioteca estática/compartida
La integración con IA requiere puentes JNIAPI directa en C++
Sistema de plugins monolíticoComponentes modulares y reemplazables

Estado actual

Desarrollo activo — la base analítica es estable y está probada.

El sistema de tipos central, el modelo de direcciones, las interfaces de memoria, el framework de configuración y las bases de Pcode/Sleigh están implementados y pasan las pruebas. El proyecto sigue un estricto orden de traducción de abajo hacia arriba: no se añade ningún módulo hasta que todas sus dependencias estén en su lugar y verificadas.

Sistema de compilación: CMake + Ninja + CTest — cero advertencias, todas las pruebas pasan.


Arquitectura

Enigma refleja la estructura de paquetes internos de Ghidra, traducida a espacios de nombres de 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]

Decisiones clave de diseño:

  • interface de Java → abstract class de C++ con métodos virtual puros
  • ArrayList / HashMap de Java → std::vector / std::unordered_map
  • Retornos null de Java → std::optional<T>
  • Genéricos de Java → plantillas de C++
  • Address fusionado de interfaz + implementación en un único tipo de valor (evita asignación en heap)
  • Punteros crudos usados solo para referencias no propietarias; la propiedad siempre es explícita

Alcance

Enigma es un reemplazo completo de Ghidra — cada componente que existe en Java tendrá un equivalente en C++, incluyendo la UI, el sistema de plugins, el desensamblador, el descompilador y el motor de scripting.

El enfoque actual es el núcleo analítico — la base sobre la que se construye todo lo demás. Una vez que sea sólido y esté probado, las capas restantes (GUI, cargadores, plugins de análisis, scripting) seguirán en orden.

Nada está excluido permanentemente. Todo es cuestión de prioridad.


Compilación

Requisitos

  • Compilador C++17 (g++ 11+ o clang++ 13+)
  • CMake 3.20+
  • Ninja (recomendado)

Pasos

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

Hoja de ruta

Corto plazo

  • Completar el motor de lenguaje Sleigh (carga de .sla / .pspec)
  • PcodeEmitter — generar Pcode a partir de instrucciones crudas
  • BasicBlock + ControlFlowGraph
  • Integración con Capstone para desensamblado (x86, ARM, RISC-V)

Medio plazo

  • Integración con LIEF para carga de binarios (ELF, PE, Mach-O)
  • Tabla de símbolos + recuperación de tipos
  • IR del descompilador (High Pcode)

Integración con IA

  • Superficie de API limpia en C++ para modelos de ML
  • Inferencia de firmas de funciones
  • Sugerencia de nombres de variables / tipos
  • Integración con LLM local (sin dependencia de la nube)

Nombre del proyecto

Enigma — nombrado así por la máquina de cifrado de la Segunda Guerra Mundial, descifrada mediante ingeniería inversa. Parecía adecuado.


Licencia

Este proyecto es una traducción de Ghidra, que está licenciado bajo la Apache License 2.0.

Enigma se distribuye bajo la misma licencia. Consulta LICENSE para más detalles.


Relacionado

  • Ghidra (NSA) — el proyecto original en Java
  • Capstone — motor de desensamblado (integración planificada)
  • LIEF — análisis de binarios (integración planificada)
Descargar herramienta