Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Enigma- — Reimplementazione in C++ del core analitico di Ghidra senza dipendenze dalla JVM, che fornisce analisi binaria integrabile, fondamenta Pcode/Sleigh e interfacce pronte per l'IA per il reverse engineering. | Kitploit
Strumenti/GitHubGitHub/gmh5225/enigma-
Analisi StaticaAnalisi del CodiceAnalisi Dinamica del Codice (DAST)Reverse EngineeringUtilità e FrameworkAnalisi di BinariReverse Engineering Assistito dall'IASicurezza dell'IA
GitHubgmh5225/enigma-

Enigma-

Reimplementazione in C++ del core analitico di Ghidra senza dipendenze dalla JVM, che fornisce analisi binaria integrabile, fondamenta Pcode/Sleigh e interfacce pronte per l'IA per il reverse engineering.

143 mesi faNon ancora revisionato
Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Enigma

Reimplementazione in C++ del core analitico di Ghidra (SoftwareModeling + Utility), privata delle dipendenze Java/JVM. Progettata per l'integrazione con l'IA, le prestazioni e l'incorporabilità. Parte del progetto Enigma Engine.

Enigma Engine

Una reimplementazione in C++ del core analitico di Ghidra — niente JVM, niente Java, pieno controllo.


Cos'è questo?

Ghidra è un potente framework di reverse engineering sviluppato dalla NSA in Java. Enigma è una riscrittura da zero del suo core analitico in C++ moderno, progettata per essere:

  • Incorporabile — collegala come libreria in qualsiasi progetto
  • Pronta per l'IA — interfacce pulite per l'integrazione ML/IA
  • Veloce — nessun overhead della JVM, layout di memoria nativo
  • Modificabile — ogni file è tuo da modificare, estendere o sostituire

Questo non è l'output di un transpiler da Java a C++. Ogni file è tradotto e verificato manualmente, con copertura completa dei test.


Perché?

Il codebase Java di Ghidra è maturo ma difficile da estendere in certe direzioni:

ProblemaLa risposta di Enigma
Avvio JVM + overhead GCC++ nativo, zero runtime
Difficile da incorporare in progetti non-JavaLibreria statica/dinamica
L'integrazione con l'IA richiede bridge JNIAPI C++ diretta
Sistema di plugin monoliticoComponenti modulari e sostituibili

Stato attuale

Sviluppo attivo — la fondazione analitica è stabile e testata.

Il sistema di tipi core, il modello di indirizzi, le interfacce di memoria, il framework di impostazioni e le fondamenta Pcode/Sleigh sono implementati e superano i test. Il progetto segue un rigoroso ordine di traduzione bottom-up: nessun modulo viene aggiunto finché tutte le sue dipendenze non sono in atto e verificate.

Sistema di build: CMake + Ninja + CTest — zero warning, tutti i test passano.


Architettura

Enigma rispecchia la struttura interna dei package di Ghidra, tradotta in namespace 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]

Decisioni di design chiave:

  • interface Java → abstract class C++ con metodi virtual puri
  • ArrayList / HashMap Java → std::vector / std::unordered_map
  • Ritorni null Java → std::optional<T>
  • Generics Java → template C++
  • Address unificato da interfaccia + impl in un singolo value type (evita allocazione sull'heap)
  • Puntatori grezzi usati solo per riferimenti non proprietari; la proprietà è sempre esplicita

Ambito

Enigma è un sostituto completo di Ghidra — ogni componente che esiste in Java avrà un equivalente in C++, inclusi la UI, il sistema di plugin, il disassembler, il decompilatore e il motore di scripting.

L'attuale focus è il core analitico — la fondazione su cui tutto il resto si costruisce. Una volta che sarà solido e testato, i livelli rimanenti (GUI, loader, plugin di analisi, scripting) seguiranno in ordine.

Nulla è escluso in modo permanente. Tutto è una questione di priorità.


Compilazione

Requisiti

  • Compilatore C++17 (g++ 11+ o clang++ 13+)
  • CMake 3.20+
  • Ninja (consigliato)

Passaggi

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

Breve termine

  • Completare il motore del linguaggio Sleigh (caricamento .sla / .pspec)
  • PcodeEmitter — generare Pcode da istruzioni grezze
  • BasicBlock + ControlFlowGraph
  • Integrazione di Capstone per il disassemblaggio (x86, ARM, RISC-V)

Medio termine

  • Integrazione di LIEF per il caricamento di binari (ELF, PE, Mach-O)
  • Tabella dei simboli + recupero dei tipi
  • IR del decompilatore (High Pcode)

Integrazione con l'IA

  • Superficie API C++ pulita per modelli ML
  • Inferenza della firma delle funzioni
  • Suggerimento di nomi/tipi di variabili
  • Integrazione di LLM locale (nessuna dipendenza dal cloud)

Denominazione del progetto

Enigma — prende il nome dalla macchina cifrante della Seconda Guerra Mondiale, violata attraverso il reverse engineering. Sembrava appropriato.


Licenza

Questo progetto è una traduzione di Ghidra, che è distribuito sotto la Apache License 2.0.

Enigma è distribuito sotto la stessa licenza. Vedi LICENSE per i dettagli.


Correlati

  • Ghidra (NSA) — il progetto Java originale
  • Capstone — motore di disassemblaggio (integrazione pianificata)
  • LIEF — parsing di binari (integrazione pianificata)
Scarica lo strumento