Hyperion
Un desensamblador nativo multiarquitectura y herramienta de análisis de binarios. Soporta binarios PE, ELF, Mach-O y .NET en x86, x64, ARM, ARM64, MIPS y PPC. Construido desde cero en C++20 con ImGui.

Un único ejecutable enlazado estáticamente. Sin instalador, sin dependencias de tiempo de ejecución. Menos de 3MB.
Comunidad
| Formato | Arquitecturas |
|---|
| PE (exe, dll, sys) | x86, x64 |
| ELF (so, o, ejecutables) | x86, x64, ARM, ARM64, MIPS, PPC |
| Mach-O (dylib, ejecutables, fat/universal) | x64, ARM64 |
| .NET (ensamblados administrados) | CIL/IL bytecode |
Desensamblado: Zydis (x86/x64) + Capstone (ARM, ARM64, MIPS, PPC)
Características
Análisis
- Descenso recursivo + barrido lineal con resolución de conflictos de alineación
- Directorio de excepciones .pdata para límites de funciones x64
- Recuperación de clases C++ vía RTTI (análisis de vtable, nombrado de métodos, jerarquía de clases)
- Detección de thunks de importación, resolución de switch/jump tables
- Detección de vtables, detección de variables globales
- Coincidencia de firmas FLIRT (~100 patrones MSVC CRT)
- Detección de empaquetadores (UPX, Themida, VMProtect, ASPack, MPRESS)
- Carga de símbolos PDB (autodetección vía DbgHelp)
- Carga de símbolos DWARF (.debug_info para ELF)
- Demangling de nombres C++ (MSVC + GCC/Clang)
- Detección de noreturn/llamadas de cola/convenciones de llamada
- Propagación de flujo de datos, resolución de llamadas indirectas
- Propagación de tipos interprocedural
Descompilador
- Pipeline SSA estilo Ghidra (lift p-code → SSA → DCE → propagación → estructuración → emisión)
- Descompilador para x86/x64 y ARM64
- Eliminación de código muerto mark-and-sweep
- Salida consciente de RTTI (obj->Class::method())
- Reconocimiento de contenedores STL (std::string, std::vector, std::shared_ptr)
- Detección de sobrecarga de operadores, reconstrucción de bucles for
- Propagación de valores de retorno, plegado de argumentos caller-save
- Detección de Main/WinMain con parámetros tipados
- Direcciones de datos simbólicas
Interfaz de usuario
- 4 temas (Hyperion, IDA, Midnight, Personalizado) + soporte de imagen de fondo
- Banda de navegación (resumen de memoria codificado por colores, clic para navegar)
- Desensamblado con mnemónicos codificados por colores, anotaciones inline de cadenas/importaciones, insignias de referencias cruzadas
- Editor hexadecimal con parcheo, resaltado de patrones, navegación por teclado
- Panel de pseudocódigo (F5, copiable)
- Grafo de flujo de control con nodos clicables (Space alterna grafo/desensamblado)
- Paneles de funciones, cadenas, importaciones/exportaciones con filtro y copia
- Ventana emergente de referencias cruzadas (tecla X) y panel con pestañas
- Mapa de calor de entropía, grafo de llamadas, vista de marcos de pila
- Sistema de tipos (structs, enums), vista de Clases (navegador RTTI)
- Diff de binarios, visor de cabeceras PE con resultados de empaquetadores
- SigMaker (auto-comodín, 4 formatos de salida, prueba de unicidad)
- Búsqueda (texto, patrón binario con comodines, valores inmediatos)
- Modo Beautify (oculta el ruido, muestra solo código de funciones + datos clave)
- Menú contextual: copiar como array C, bytes de Python, patrón YARA
- Barra de estado, fuentes de código monoespaciadas, múltiples tamaños de fuente
Scripting y plugins
- Consola Lua 5.4 integrada (Ver > Consola de scripts)
- Sistema de plugins: coloca archivos
.lua en la carpeta plugins/
- API de plugins: registrar elementos de menú, atajos de teclado, callbacks de análisis
- API de scripting: 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
- Ver docs/scripting.md y docs/plugins.md
Servidor MCP (Model Context Protocol)
- Servidor MCP headless integrado para integración con IA (Cursor, Claude Desktop, etc.)
- Accede al desensamblado, la descompilación, las referencias cruzadas y las estructuras binarias directamente mediante prompts de IA
- Inicia el servidor pasando
--mcp al ejecutable:
./build/Release/Hyperion --mcp (o equivalente en tu plataforma)
- Soporta comprobar el estado, encontrar funciones, referencias a cadenas, modificar comentarios/nombres y descompilar a través de stdio.
Personalización
- Panel de configuración (Ctrl+,): fuentes, colores, atajos de teclado, opciones avanzadas
- Atajos de teclado editables (asignar al pulsar, persistidos)
- Exportar/importar temas personalizados (archivos .hth)
- Carpeta
themes/ para distribución de temas de la comunidad
- Soporte de imagen de fondo (png/jpg, control deslizante de opacidad)
- Opacidad de la ventana, color de la línea del cursor, radio de los bordes, ancho de la barra de desplazamiento, selector de fuente
Exportación
- Binario parcheado, listado .asm (estilo MASM)
- Exportación de script IDAPython
- Guardar/cargar proyectos (formato .hdb)
- Copiar como array C / Python / YARA
Estabilidad
- Cargador PE endurecido contra binarios malformados
- Análisis seguro para hilos (entrega atómica a la UI)
- Memoria optimizada (buffers de instrucciones de tamaño fijo, límites de secciones)
- Deshacer/rehacer completo para todas las operaciones
- Autoguardado cada 60 segundos
- Sin bloqueos al minimizar o perder el foco
Atajos de teclado
Todos los atajos de teclado son personalizables mediante Configuración.
Compilación
Requiere CMake 3.25+, vcpkg, compilador C++20 (MSVC 2022+, GCC 13+ o 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
Para enlazado estático (un solo exe, sin 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
Dependencias (obtenidas vía vcpkg): imgui (docking), glfw, zydis, capstone, spdlog, fmt, zlib, lua, stb.
| Plataforma | Estado |
|---|
| Windows x64 | Soporte completo (UI + MCP) |
| Linux x64 | Compila, soporte completo (UI + MCP) |
| macOS (Intel + Apple Silicon) | Compila, soporte completo (UI + MCP) |
Estado
Desarrollo activo. Funcional para análisis estático en todos los formatos soportados. El descompilador produce salida C legible para x86/x64 y ARM64. La recuperación de clases RTTI funciona en binarios C++ sin ofuscar.
Hoja de ruta:
- Integración de depurador (adjuntar, puntos de interrupción, antidetección)
- Análisis colaborativo
- Más mejoras al descompilador
Licencia
MIT