Hyperion
Ein nativer Multi-Architektur-Disassembler und Binary-Analyse-Tool. Unterstützt PE-, ELF-, Mach-O- und .NET-Binärdateien auf x86, x64, ARM, ARM64, MIPS und PPC. Von Grund auf in C++20 mit ImGui entwickelt.

Einzelne statisch verlinkte ausführbare Datei. Kein Installer, keine Laufzeitabhängigkeiten. Unter 3 MB.
| Format | Architekturen |
|---|
| PE (exe, dll, sys) | x86, x64 |
| ELF (so, o, ausführbare Dateien) | x86, x64, ARM, ARM64, MIPS, PPC |
| Mach-O (dylib, ausführbare Dateien, fat/universal) | x64, ARM64 |
| .NET (verwaltete Assemblys) | CIL/IL-Bytecode |
Disassemblierung: Zydis (x86/x64) + Capstone (ARM, ARM64, MIPS, PPC)
Funktionen
Analyse
- Rekursiver Abstieg + linearer Durchlauf mit Ausrichtungskonfliktlösung
- .pdata-Ausnahmeverzeichnis für x64-Funktionsgrenzen
- RTTI C++-Klassenwiederherstellung (vtable-Parsing, Methodenbenennung, Klassenhierarchie)
- Import-Thunk-Erkennung, Switch-/Jump-Table-Auflösung
- Vtable-Erkennung, Erkennung globaler Variablen
- FLIRT-Signaturabgleich (~100 MSVC CRT-Muster)
- Packer-Erkennung (UPX, Themida, VMProtect, ASPack, MPRESS)
- PDB-Symbol laden (automatische Erkennung über DbgHelp)
- DWARF-Symbol laden (.debug_info für ELF)
- C++-Namens-Demangling (MSVC + GCC/Clang)
- Noreturn/Tail-Call/Aufrufkonvention-Erkennung
- Datenflusspropagation, indirekte Aufrufauflösung
- Interprozedurale Typenpropagation
Decompiler
- Ghidra-artige SSA-Pipeline (P-Code-Lift → SSA → DCE → Propagation → Strukturierung → Ausgabe)
- x86/x64- und ARM64-Decompiler
- Mark-and-Sweep-Totcodeeliminierung
- RTTI-bewusste Ausgabe (obj->Class::method())
- STL-Container-Erkennung (std::string, std::vector, std::shared_ptr)
- Operator-Überladungs-Erkennung, for-Schleifen-Rekonstruktion
- Rückgabewertpropagation, Caller-Save-Argument-Faltung
- Main/WinMain-Erkennung mit typisierten Parametern
- Symbolische Datenadressen
UI
- 4 Themes (Hyperion, IDA, Midnight, Benutzerdefiniert) + Hintergrundbild-Unterstützung
- Navigationsleiste (farblich kodierte Speicherübersicht, klicken zum Navigieren)
- Disassembly mit farblich kodierten Mnemonics, Inline-String/Import-Anmerkungen, Xref-Badges
- Hex-Editor mit Patching, Musterhervorhebung, Tastaturnavigation
- Pseudo-Code-Panel (F5, kopierbar)
- Kontrollflussgraph mit klickbaren Knoten (Leertaste wechselt zwischen Graph/Disasm)
- Funktionen-, Strings-, Imports/Exports-Panels mit Filter und Kopieren
- Querverweis-Popup (X-Taste) und Panel mit Registerkarten
- Entropie-Heatmap, Aufrufgraph, Stack-Frame-Ansicht
- Typsystem (structs, enums), Classes-Ansicht (RTTI-Browser)
- Binary-Diff, PE-Header-Viewer mit Packer-Ergebnissen
- SigMaker (automatische Wildcard, 4 Ausgabeformate, Eindeutigkeitstest)
- Suche (Text, Binärmuster mit Wildcards, unmittelbare Werte)
- Schönheitsmodus (verdeckt Rauschen, zeigt nur Funktionscode + Schlüsseldaten)
- Kontextmenü: Kopieren als C-Array, Python-Bytes, YARA-Muster
- Statusleiste, Monospace-Code-Schriftarten, mehrere Schriftgrößen
Skripting & Plugins
- Eingebettete Lua 5.4-Konsole (Ansicht > Skriptkonsole)
- Plugin-System:
.lua-Dateien in den plugins/-Ordner legen
- Plugin-API: Menüeinträge, Tastenkürzel, Analyse-Callbacks registrieren
- Skript-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
- Siehe docs/scripting.md und docs/plugins.md
MCP-Server (Model Context Protocol)
- Integrierter kopfloser MCP-Server für KI-Integration (Cursor, Claude Desktop, etc.)
- Zugriff auf Disassembly, Decompilation, Xrefs und Binärstrukturen direkt über KI-Abfragen
- Start des Servers durch Übergabe von
--mcp an die ausführbare Datei:
./build/Release/Hyperion --mcp (oder entsprechend auf Ihrer Plattform)
- Unterstützt Statusprüfung, Funktionssuche, String-Referenzen, Änderung von Kommentaren/Namen und Decompilation über stdio.
Anpassung
- Einstellungen-Panel (Strg+,): Schriftarten, Farben, Tastenkürzel, erweiterte Optionen
- Bearbeitbare Tastenkürzel (drücken zum Zuweisen, persistent)
- Benutzerdefiniertes Theme exportieren/importieren (.hth-Dateien)
themes/-Ordner für Community-Theme-Verteilung
- Hintergrundbild-Unterstützung (png/jpg, Deckkraftregler)
- Fensterdeckkraft, Cursorlinienfarbe, Randradius, Scrollbalkenbreite, Schriftauswahl
Export
- Gepatchte Binärdatei, .asm-Listing (MASM-Stil)
- IDAPython-Skriptexport
- Projekt speichern/laden (.hdb-Format)
- Kopieren als C-Array / Python / YARA
Stabilität
- PE-Lader gehärtet gegen fehlerhafte Binärdateien
- Threadsichere Analyse (atomare Übergabe an die UI)
- Speicheroptimiert (Puffergrößen mit fester Größe für Instruktionen, Abschnittsgrenzen)
- Vollständiges Rückgängig/Wiederholen für alle Operationen
- Automatisches Speichern alle 60 Sekunden
- Absturzsicher bei Minimieren/Verlust des Fokus
Tastenkürzel
Alle Tastenkürzel sind über die Einstellungen anpassbar.
Bauen
Erfordert CMake 3.25+, vcpkg, C++20-Compiler (MSVC 2022+, GCC 13+ oder 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
Für statische Verlinkung (einzelne exe, keine 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
Abhängigkeiten (über vcpkg bezogen): imgui (docking), glfw, zydis, capstone, spdlog, fmt, zlib, lua, stb.
| Plattform | Status |
|---|
| Windows x64 | Vollständige Unterstützung (UI + MCP) |
| Linux x64 | Builds, vollständige Unterstützung (UI + MCP) |
| macOS (Intel + Apple Silicon) | Builds, vollständige Unterstützung (UI + MCP) |
Status
Aktive Entwicklung. Funktional für statische Analyse aller unterstützten Formate. Der Decompiler erzeugt lesbare C-Ausgabe für x86/x64 und ARM64. Die RTTI-Klassenwiederherstellung funktioniert bei unobfuskierten C++-Binärdateien.
Fahrplan:
- Debugger-Integration (Anhängen, Haltepunkte, Anti-Erkennung)
- Gemeinsame Analyse
- Weitere Decompiler-Verbesserungen
Lizenz
MIT