
新发布Aug 17, 2026
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从头构建。
单个静态链接的可执行文件。无需安装程序,无需运行时依赖。体积小于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)
功能特性
分析
- 递归下降 + 线性扫描,含对齐冲突解决
- .pdata 异常目录用于 x64 函数边界
- RTTI C++ 类恢复(虚表解析、方法命名、类层次结构)
- 导入桩检测、开关/跳转表解析
- 虚表检测、全局变量检测
- FLIRT 特征匹配(约100个 MSVC CRT 模式)
- 打包器检测(UPX, Themida, VMProtect, ASPack, MPRESS)
- PDB 符号加载(通过 DbgHelp 自动检测)
- DWARF 符号加载(ELF 的 .debug_info)
- C++ 名字符号还原(MSVC + GCC/Clang)
- Noreturn/尾调用/调用约定检测
- 数据流传播、间接调用解析
- 过程间类型传播
反编译器
- Ghidra 风格的 SSA 流水线(p-code 提升 → SSA → DCE → 传播 → 结构化 → 输出)
- x86/x64 和 ARM64 反编译器
- 标记-清除死代码消除
- 感知 RTTI 的输出(obj->Class::method())
- STL 容器识别(std::string, std::vector, std::shared_ptr)
- 运算符重载检测、for 循环重构
- 返回值传播、调用者保存参数折叠
- Main/WinMain 检测,带类型参数
- 符号化数据地址
UI
- 4 种主题(Hyperion, IDA, Midnight, Custom)+ 背景图片支持
- 导航条(彩色编码内存概览,点击跳转)
- 反汇编视图,彩色编码助记符、内联字符串/导入注释、交叉引用徽章
- 十六进制编辑器,支持补丁、模式高亮、键盘导航
- 伪代码面板(F5,可复制)
- 控制流图,可点击节点(Space 切换图形/反汇编)
- 函数、字符串、导入/导出面板,支持过滤和复制
- 交叉引用弹出窗口(X 键)和标签面板
- 熵热图、调用图、栈帧视图
- 类型系统(结构体、枚举),类视图(RTTI 浏览器)
- 二进制差异、PE 头查看器,含打包器检测结果
- SigMaker(自动通配符、4种输出格式、唯一性测试)
- 搜索(文本、二进制模式通配符、立即数)
- 美化模式(隐藏干扰项,仅显示函数代码和关键数据)
- 右键菜单:复制为 C 数组、Python 字节、YARA 模式
- 状态栏、等宽代码字体、多种字体大小
脚本与插件
- 嵌入式 Lua 5.4 控制台(View > Script Console)
- 插件系统:将
.lua文件放入plugins/文件夹 - 插件 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 服务器(模型上下文协议)
- 内置无头 MCP 服务器,用于 AI 集成(Cursor, Claude Desktop 等)
- 通过 AI 提示直接访问反汇编、反编译、交叉引用和二进制结构
- 启动服务器:向可执行文件传递
--mcp参数:./build/Release/Hyperion --mcp(或您平台上的等效命令) - 支持通过 stdio 检查状态、查找函数、字符串引用、修改注释/名称和反编译。
自定义
- 设置面板(Ctrl+,):字体、颜色、按键绑定、高级选项
- 可编辑按键绑定(按键即分配,持久保存)
- 自定义主题导出/导入(.hth 文件)
themes/文件夹用于社区主题分发- 背景图片支持(png/jpg,不透明度滑块)
- 窗口不透明度、光标行颜色、边框圆角、滚动条宽度、字体选择器
导出
- 修补后的二进制文件、.asm 列表(MASM 风格)
- IDAPython 脚本导出
- 项目保存/加载(.hdb 格式)
- 复制为 C 数组 / Python / YARA
稳定性
- PE 加载器针对畸形二进制文件进行了加固
- 线程安全分析(原子切换至 UI)
- 内存优化(固定大小指令缓冲区、节区限制)
- 所有操作完全支持撤销/重做
- 每 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
静态链接(单个 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