Hyperion
एक नेटिव बहु-आर्किटेक्चर डिसअसेम्बलर और बाइनरी विश्लेषण उपकरण। PE, ELF, Mach-O और .NET बाइनरी को x86, x64, ARM, ARM64, MIPS और PPC पर समर्थन करता है। C++20 और ImGui के साथ शुरू से निर्मित।

एकल स्टैटिक-लिंक्ड निष्पादन योग्य। कोई इंस्टॉलर नहीं, कोई रनटाइम निर्भरता नहीं। 3MB से कम।
समुदाय
समर्थित प्रारूप और आर्किटेक्चर
| प्रारूप | आर्किटेक्चर |
|---|
| PE (exe, dll, sys) | x86, x64 |
| ELF (so, o, निष्पादन योग्य) | x86, x64, ARM, ARM64, MIPS, PPC |
| Mach-O (dylib, निष्पादन योग्य, fat/universal) | x64, ARM64 |
| .NET (प्रबंधित असेंबली) | CIL/IL बाइटकोड |
डिसअसेंबली: Zydis (x86/x64) + Capstone (ARM, ARM64, MIPS, PPC)
विशेषताएँ
विश्लेषण
- संरेखण संघर्ष समाधान के साथ रिकर्सिव डिसेंट + लीनियर स्वीप
- x64 फ़ंक्शन सीमाओं के लिए .pdata अपवाद निर्देशिका
- RTTI C++ क्लास पुनर्प्राप्ति (vtable पार्सिंग, मेथड नामकरण, क्लास पदानुक्रम)
- इम्पोर्ट थंक पहचान, स्विच/जंप टेबल समाधान
- Vtable पहचान, ग्लोबल वेरिएबल पहचान
- FLIRT सिग्नेचर मिलान (~100 MSVC CRT पैटर्न)
- पैकर पहचान (UPX, Themida, VMProtect, ASPack, MPRESS)
- PDB प्रतीक लोडिंग (DbgHelp के माध्यम से स्वतः पहचान)
- DWARF प्रतीक लोडिंग (ELF के लिए .debug_info)
- C++ नाम डिमैंगलिंग (MSVC + GCC/Clang)
- Noreturn/टेल कॉल/कॉलिंग कन्वेंशन पहचान
- डेटाफ्लो प्रसार, अप्रत्यक्ष कॉल समाधान
- इंटर-प्रोसीजरल टाइप प्रसार
डिकम्पाइलर
- Ghidra-शैली SSA पाइपलाइन (p-code lift → SSA → DCE → propagation → structuring → emit)
- x86/x64 और ARM64 डिकम्पाइलर
- मार्क-ऐंड-स्वीप डेड कोड उन्मूलन
- RTTI-जागरूक आउटपुट (obj->Class::method())
- STL कंटेनर पहचान (std::string, std::vector, std::shared_ptr)
- ऑपरेटर ओवरलोड पहचान, for-लूप पुनर्निर्माण
- रिटर्न वैल्यू प्रसार, कॉलर-सेव आर्गुमेंट फोल्डिंग
- टाइप किए गए पैरामीटर्स के साथ Main/WinMain पहचान
- प्रतीकात्मक डेटा पते
UI
- 4 थीम (Hyperion, IDA, Midnight, Custom) + बैकग्राउंड इमेज सपोर्ट
- नेविगेशन बैंड (रंग-कोडित मेमोरी अवलोकन, नेविगेट करने के लिए क्लिक करें)
- रंग-कोडित मेमोनिक्स, इनलाइन स्ट्रिंग/इम्पोर्ट एनोटेशन, xref बैज के साथ डिसअसेंबली
- पैचिंग, पैटर्न हाइलाइट, कीबोर्ड नेविगेशन के साथ हेक्स एडिटर
- स्यूडो-कोड पैनल (F5, कॉपी करने योग्य)
- क्लिक करने योग्य नोड्स के साथ कंट्रोल फ्लो ग्राफ (Space ग्राफ/डिसअसेंबली टॉगल करता है)
- फ़िल्टर और कॉपी के साथ फ़ंक्शन, स्ट्रिंग्स, इम्पोर्ट्स/एक्सपोर्ट्स पैनल
- क्रॉस-रेफरेंस पॉपअप (X कुंजी) और टैब्ड पैनल
- एन्ट्रॉपी हीटमैप, कॉल ग्राफ, स्टैक फ्रेम दृश्य
- टाइप सिस्टम (स्ट्रक्चर, एनम), क्लासेस दृश्य (RTTI ब्राउज़र)
- बाइनरी डिफ, पैकर परिणामों के साथ PE हेडर व्यूअर
- SigMaker (ऑटो-वाइल्डकार्ड, 4 आउटपुट प्रारूप, विशिष्टता परीक्षण)
- खोज (टेक्स्ट, वाइल्डकार्ड के साथ बाइनरी पैटर्न, इमीडिएट मान)
- ब्यूटिफाई मोड (शोर छुपाता है, केवल फ़ंक्शन कोड + मुख्य डेटा दिखाता है)
- कॉन्टेक्स्ट मेनू: C ऐरे, Python बाइट्स, YARA पैटर्न के रूप में कॉपी करें
- स्टेटस बार, मोनोस्पेस कोड फ़ॉन्ट, कई फ़ॉन्ट आकार
स्क्रिप्टिंग और प्लगइन्स
- एम्बेडेड Lua 5.4 कंसोल (View > Script Console)
- प्लगइन सिस्टम:
plugins/ फ़ोल्डर में .lua फ़ाइलें डालें
- प्लगइन API: मेनू आइटम, हॉटकी, विश्लेषण कॉलबैक पंजीकृत करें
- स्क्रिप्ट API: get_name, set_name, get_insn, get_bytes, get_functions, get_xrefs_to, set_comment, goto_addr, patch_byte, get_segments, get_arch, create_function
- देखें docs/scripting.md और docs/plugins.md
MCP सर्वर (Model Context Protocol)
- AI एकीकरण के लिए बिल्ट-इन हेडलेस MCP सर्वर (Cursor, Claude Desktop, आदि)
- AI प्रॉम्प्ट के माध्यम से सीधे डिसअसेंबली, डिकम्पाइलेशन, xrefs और बाइनरी संरचनाओं तक पहुँचें
- निष्पादन योग्य को
--mcp पास करके सर्वर शुरू करें:
./build/Release/Hyperion --mcp (या आपके प्लेटफ़ॉर्म के समकक्ष)
- स्थिति जाँचने, फ़ंक्शन खोजने, स्ट्रिंग संदर्भों, टिप्पणियों/नामों को संशोधित करने और stdio पर डिकम्पाइल करने का समर्थन करता है।
अनुकूलन
- सेटिंग्स पैनल (Ctrl+,): फ़ॉन्ट, रंग, कीबाइंड, उन्नत विकल्प
- संपादन योग्य कीबाइंड (प्रेस-टू-असाइन, स्थायी)
- कस्टम थीम निर्यात/आयात (.hth फ़ाइलें)
- समुदाय थीम वितरण के लिए
themes/ फ़ोल्डर
- बैकग्राउंड इमेज सपोर्ट (png/jpg, अपारदर्शिता स्लाइडर)
- विंडो अपारदर्शिता, कर्सर लाइन रंग, बॉर्डर रेडियस, स्क्रॉलबार चौड़ाई, फ़ॉन्ट चयनकर्ता
निर्यात
- पैच की गई बाइनरी, .asm सूची (MASM-शैली)
- IDAPython स्क्रिप्ट निर्यात
- प्रोजेक्ट सहेजें/लोड करें (.hdb प्रारूप)
- C ऐरे / Python / YARA के रूप में कॉपी करें
स्थिरता
- दोषपूर्ण बाइनरी के विरुद्ध सुदृढ़ PE लोडर
- थ्रेड-सुरक्षित विश्लेषण (UI को परमाणु हैंडऑफ़)
- मेमोरी अनुकूलित (फिक्स्ड-साइज़ इंस्ट्रक्शन बफ़र, सेक्शन सीमाएँ)
- सभी ऑपरेशनों के लिए पूर्ण undo/redo
- हर 60 सेकंड में स्वतः सहेजें
- मिनिमाइज़/अनफोकस पर क्रैश-मुक्त
कीबाइंड
सभी कीबाइंड सेटिंग्स के माध्यम से अनुकूलन योग्य हैं।
निर्माण
आवश्यकता है CMake 3.25+, vcpkg, C++20 कंपाइलर (MSVC 2022+, GCC 13+, या Clang 16+)।
git clone https://github.com/Sidenai/hyperion-disassembler
cd hyperion-disassembler
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build --config Release
स्टैटिक लिंकिंग के लिए (एकल exe, कोई DLL नहीं):
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=path/to/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static
cmake --build build --config Release
निर्भरताएँ (vcpkg के माध्यम से लाई गईं): imgui (docking), glfw, zydis, capstone, spdlog, fmt, zlib, lua, stb।
प्लेटफ़ॉर्म
| प्लेटफ़ॉर्म | स्थिति |
|---|
| Windows x64 | पूर्ण समर्थन (UI + MCP) |
| Linux x64 | बिल्ड होता है, पूर्ण समर्थन (UI + MCP) |
| macOS (Intel + Apple Silicon) | बिल्ड होता है, पूर्ण समर्थन (UI + MCP) |
स्थिति
सक्रिय विकास। सभी समर्थित प्रारूपों में स्थैतिक विश्लेषण के लिए कार्यात्मक। डिकम्पाइलर x86/x64 और ARM64 के लिए पठनीय C आउटपुट उत्पन्न करता है। RTTI क्लास पुनर्प्राप्ति असंदिग्ध C++ बाइनरी पर काम करती है।
रोडमैप:
- डीबगर एकीकरण (अटैच, ब्रेकपॉइंट, एंटी-डिटेक्शन)
- सहयोगात्मक विश्लेषण
- अधिक डिकम्पाइलर सुधार
लाइसेंस
MIT