
hyperion-disassembler v0.1.6stable
مفكك ومترجم عكسي أصلي متعدد البنى - PE/ELF/Mach-O، x86/x64/ARM64، سكربتات Lua، استعادة RTTI
Hyperion
أداة تفكيك وتحليل ثنائيات أصلية متعددة البنى. تدعم ملفات PE و ELF و Mach-O و .NET عبر معماريات x86 و x64 و ARM و ARM64 و MIPS و PPC. مبنية من الصفر بلغة C++20 مع ImGui.
ملف تنفيذي واحد مرتبط ثابتًا (statically-linked). لا مثبّت، ولا اعتماديات وقت تشغيل. حجمه أقل من 3 ميجابايت.
المجتمع
الصيغ والمعماريات المدعومة
| الصيغة | المعماريات |
|---|---|
| PE (exe, dll, sys) | x86, x64 |
| ELF (so, o, executable) | x86, x64, ARM, ARM64, MIPS, PPC |
| Mach-O (dylib, executable, fat/universal) | x64, ARM64 |
| .NET (التجميعات المُدارة) | كود CIL/IL البايتي |
التفكيك: Zydis (x86/x64) + Capstone (ARM, ARM64, MIPS, PPC)
الميزات
التحليل
- النزول التعاودي (recursive descent) + المسح الخطي (linear sweep) مع حل تعارضات المحاذاة
- دليل استثناءات .pdata لحدود الدوال في x64
- استعادة أصناف C++ عبر RTTI (تحليل vtable، تسمية الدوال، التسلسل الهرمي للأصناف)
- كشف thunks الاستيراد، وحل جداول القفز/التبديل
- كشف vtable، وكشف المتغيرات العامة
- مطابقة توقيعات FLIRT (~100 نمط من MSVC CRT)
- كشف أداة التعبئة (UPX, Themida, VMProtect, ASPack, MPRESS)
- تحميل رموز PDB (اكتشاف تلقائي عبر DbgHelp)
- تحميل رموز DWARF (.debug_info لملفات ELF)
- فك تشويش أسماء C++ (MSVC + GCC/Clang)
- كشف noreturn/استدعاءات الذيل/اتفاقيات الاستدعاء
- نشر تدفق البيانات، وحل الاستدعاءات غير المباشرة
- نشر الأنواع بين الإجراءات (inter-procedural)
مفكك الترجمة (Decompiler)
- خط أنابيب SSA بأسلوب Ghidra (رفع p-code ← SSA ← DCE ← النشر ← الهيكلة ← الإخراج)
- مفكك ترجمة لـ x86/x64 و ARM64
- إزالة الكود الميت بطريقة التمييز والكنس (mark-and-sweep)
- مخرجات مدركة لـ RTTI (obj->Class::method())
- التعرف على حاويات STL (std::string, std::vector, std::shared_ptr)
- كشف التحميل الزائد للمعاملات، وإعادة بناء حلقات for
- نشر قيم الإرجاع، وطي وسائط الحفظ الخاصة بالمتصل (caller-save)
- كشف Main/WinMain مع معاملات محددة الأنواع
- عناوين بيانات رمزية
الواجهة
- 4 سمات (Hyperion, IDA, Midnight, Custom) + دعم صورة الخلفية
- شريط تنقّل (نظرة عامة على الذاكرة ملوّنة بالأكواد، انقر للتنقل)
- التفكيك مع تلوين رموز العمليات، وتعليقات السلاسل/الاستيراد المضمّنة، وشارات المراجع المتقاطعة
- محرر سداسي عشري مع التعديل، وتمييز الأنماط، وتنقّل بلوحة المفاتيح
- لوحة الكود الزائف (F5، قابل للنسخ)
- مخطط تدفق التحكم مع عقد قابلة للنقر (مسافة يبدّل بين الرسم والتفكيك)
- لوحات الدوال والسلاسل والاستيراد/التصدير مع فلترة ونسخ
- نافذة مراجع متقاطعة منبثقة (مفتاح X) ولوحة بتبويبات
- خريطة حرارية للإنتروبيا، ومخطط استدعاءات، وعرض إطار المكدس
- نظام الأنواع (هياكل، تعدادات)، وعرض الأصناف (متصفح RTTI)
- مقارنة ثنائيات، وعارض رؤوس PE مع نتائج أدوات التعبئة
- SigMaker (بدل تلقائي، 4 صيغ إخراج، اختبار التفرد)
- بحث (نص، نمط ثنائي مع بدلات، قيم فورية)
- وضع التجميل (يخفي الضوضاء، ويعرض كود الدوال والبيانات الأساسية فقط)
- قائمة سياقية: نسخ كمصفوفة C، أو بايتات Python، أو نمط YARA
- شريط حالة، وخطوط كود أحادية المسافة، وأحجام خطوط متعددة
البرمجة النصية والإضافات
- وحدة تحكم Lua 5.4 مدمجة (عرض > وحدة التحكم النصية)
- نظام إضافات: ضع ملفات
.luaفي مجلدplugins/ - واجهة برمجة الإضافات: تسجيل عناصر قائمة، واختصارات لوحة مفاتيح، وعمليات استدعاء للتحليل
- واجهة البرمجة النصية: 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 (بروتوكول سياق النموذج)
- خادم MCP مدمج بدون واجهة (headless) لتكامل الذكاء الاصطناعي (Cursor, Claude Desktop, وغيرها)
- الوصول إلى التفكيك، وفك الترجمة، والمراجع المتقاطعة، وبنى الثنائيات مباشرة عبر مطالبات الذكاء الاصطناعي
- ابدأ الخادم بتمرير
--mcpإلى الملف التنفيذي:./build/Release/Hyperion --mcp(أو ما يعادله على منصتك) - يدعم فحص الحالة، والعثور على الدوال، ومراجع السلاسل، وتعديل التعليقات/الأسماء، وفك الترجمة عبر stdio.
التخصيص
- لوحة الإعدادات (Ctrl+,): الخطوط، الألوان، اختصارات المفاتيح، خيارات متقدمة
- اختصارات مفاتيح قابلة للتعديل (اضغط للتعيين، وتُحفظ)
- تصدير/استيراد سمة مخصصة (ملفات .hth)
- مجلد
themes/لتوزيع السمات المجتمعية - دعم صورة الخلفية (png/jpg، منزلق الشفافية)
- شفافية النافذة، ولون خط المؤشر، ونصف قطر الحدود، وعرض شريط التمرير، ومحدد الخط
التصدير
- الثنائي المُعدَّل، وقائمة .asm (بنمط MASM)
- تصدير سكربت IDAPython
- حفظ/تحميل مشروع (صيغة .hdb)
- نسخ كمصفوفة C / Python / YARA
الاستقرار
- محمّل PE محصّن ضد الثنائيات التالفة
- تحليل آمن مع الخيوط (نقل ذرّي إلى الواجهة)
- تحسين الذاكرة (مخازن تعليمات ثابتة الحجم، حدود للمقاطع)
- تراجع/إعادة كامل لكل العمليات
- حفظ تلقائي كل 60 ثانية
- بدون تعطل عند التصغير/فقدان التركيز
اختصارات المفاتيح
| المفتاح | الإجراء |
|---|---|
| G | الانتقال إلى عنوان |
| N | إعادة تسمية |
| ; | تعليق |
| X | المراجع المتقاطعة |
| F5 | فك ترجمة دالة |
| Space | تبديل التفكيك/الرسم البياني |
| D | تعريف بيانات |
| A | تعريف سلسلة |
| U | إلغاء التعريف |
| C | فرض ككود |
| H | تبديل سداسي عشري/عشري |
| P | إنشاء دالة |
| Enter | متابعة فرع/استدعاء |
| Escape | العودة للخلف |
| Shift+F12 | عرض السلاسل |
| Ctrl+O | فتح |
| Ctrl+S | حفظ |
| Ctrl+, | الإعدادات |
| Ctrl+F | بحث |
| Alt+B | بحث ثنائي |
| Ctrl+Z/Y | تراجع/إعادة |
| Ctrl+Shift+S | توليد توقيع |
جميع اختصارات المفاتيح قابلة للتخصيص عبر الإعدادات.
البناء
يتطلب 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
للربط الثابت (ملف تنفيذي واحد، بدون DLLs):
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 | دعم كامل (واجهة + MCP) |
| Linux x64 | يُبنى، دعم كامل (واجهة + MCP) |
| macOS (Intel + Apple Silicon) | يُبنى، دعم كامل (واجهة + MCP) |
الحالة
تطوير نشط. أداة وظيفية للتحليل الثابت عبر جميع الصيغ المدعومة. ينتج مفكك الترجمة مخرجات C-readable لـ x86/x64 و ARM64. تعمل استعادة أصناف RTTI على ثنائيات C++ غير مُعمّاة.
خارطة الطريق:
- تكامل مصحح الأخطاء (إرفاق، نقاط توقف، مضاد للاكتشاف)
- تحليل تعاوني
- المزيد من تحسينات مفكك الترجمة
الترخيص
MIT