
Ghidra के विश्लेषणात्मक कोर का C++ पुनः कार्यान्वयन, बिना JVM निर्भरताओं के, जो एम्बेड करने योग्य बाइनरी विश्लेषण, Pcode/Sleigh आधार, और रिवर्स इंजीनियरिंग के लिए AI-तैयार इंटरफेस प्रदान करता है।
Ghidra के विश्लेषणात्मक कोर (SoftwareModeling + Utility) का C++ पुनः कार्यान्वयन, जिसे Java/JVM निर्भरताओं से मुक्त किया गया है। AI एकीकरण, प्रदर्शन और एम्बेडेबिलिटी के लिए निर्मित। Enigma Engine परियोजना का हिस्सा।
Ghidra के विश्लेषणात्मक कोर का C++ पुनः कार्यान्वयन — कोई JVM नहीं, कोई Java नहीं, पूर्ण नियंत्रण।
Ghidra NSA द्वारा Java में बनाया गया एक शक्तिशाली रिवर्स इंजीनियरिंग फ्रेमवर्क है। Enigma इसके विश्लेषणात्मक कोर का आधुनिक C++ में पूर्णतः पुनर्लेखन है, जिसे इस प्रकार डिज़ाइन किया गया है:
यह Java-to-C++ ट्रांसपाइलर का आउटपुट नहीं है। प्रत्येक फ़ाइल मैन्युअल रूप से अनुवादित और सत्यापित है, पूर्ण परीक्षण कवरेज के साथ।
Ghidra का Java कोडबेस परिपक्व है लेकिन कुछ दिशाओं में इसे विस्तारित करना कठिन है:
| समस्या | Enigma का उत्तर |
|---|
| JVM स्टार्टअप + GC ओवरहेड | नेटिव C++, शून्य रनटाइम |
| गैर-Java प्रोजेक्ट्स में एम्बेड करना कठिन | स्टैटिक/शेयर्ड लाइब्रेरी |
| AI एकीकरण के लिए JNI ब्रिज की आवश्यकता | सीधा C++ API |
| मोनोलिथिक प्लगइन सिस्टम | मॉड्यूलर, प्रतिस्थापन योग्य घटक |
सक्रिय विकास — विश्लेषणात्मक आधार स्थिर और परीक्षित है।
कोर टाइप सिस्टम, एड्रेस मॉडल, मेमोरी इंटरफेस, सेटिंग्स फ्रेमवर्क, और Pcode/Sleigh आधार कार्यान्वित हैं और परीक्षण पास कर रहे हैं। परियोजना एक सख्त बॉटम-अप अनुवाद क्रम का पालन करती है: कोई भी मॉड्यूल तब तक नहीं जोड़ा जाता जब तक उसकी सभी निर्भरताएँ मौजूद और सत्यापित न हों।
बिल्ड सिस्टम: CMake + Ninja + CTest — शून्य चेतावनियाँ, सभी परीक्षण पास।
Enigma Ghidra की आंतरिक पैकेज संरचना को प्रतिबिंबित करता है, जिसे C++ नेमस्पेस में अनुवादित किया गया है:
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]
मुख्य डिज़ाइन निर्णय:
interface → C++ abstract class शुद्ध virtual विधियों के साथArrayList / HashMap → std::vector / std::unordered_mapnull रिटर्न → std::optional<T>Address को इंटरफेस + impl से एकल वैल्यू टाइप में मर्ज किया गया (हीप एलोकेशन से बचाता है)Enigma Ghidra के लिए एक पूर्ण प्रतिस्थापन है — Java में मौजूद प्रत्येक घटक का C++ समकक्ष होगा, जिसमें UI, प्लगइन सिस्टम, डिसअसेंबलर, डीकंपाइलर, और स्क्रिप्टिंग इंजन शामिल हैं।
वर्तमान फोकस विश्लेषणात्मक कोर है — वह आधार जिस पर बाकी सब कुछ बनता है। एक बार यह ठोस और परीक्षित हो जाने के बाद, शेष परतें (GUI, लोडर, विश्लेषण प्लगइन, स्क्रिप्टिंग) क्रम से आएंगी।
कुछ भी स्थायी रूप से बाहर नहीं रखा गया है। सब कुछ प्राथमिकता का विषय है।
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
.sla / .pspec लोडिंग)Enigma — WWII सिफर मशीन के नाम पर, जिसे रिवर्स इंजीनियरिंग के माध्यम से तोड़ा गया था। यह उपयुक्त लगा।
यह परियोजना Ghidra का अनुवाद है, जो Apache License 2.0 के अंतर्गत लाइसेंस प्राप्त है।
Enigma समान लाइसेंस के अंतर्गत वितरित किया जाता है। विवरण के लिए LICENSE देखें।