Sidenai/hyperion-disassembler
GitHub: Sidenai/hyperion-disassembler
Hyperion 是一款原生多架构反汇编器和反编译工具,用于分析 PE、ELF、Mach-O 等二进制文件并生成可读代码。
Stars: 178 | Forks: 22
# Hyperion
一款原生多架构反汇编器和二进制分析工具。支持 PE、ELF、Mach-O 和 .NET 二进制文件,涵盖 x86、x64、ARM、ARM64、MIPS 和 PPC 架构。基于 C++20 从零开始构建,使用 ImGui。
[](https://discord.gg/yjym2b7A)
[](https://github.com/mylovereturns/hyperion-disassembler)
单一静态链接可执行文件。无需安装程序,无运行时依赖。体积小于3MB。
## 社区
- [Discord](https://discord.gg/yjym2b7A)
- [GitHub](https://github.com/mylovereturns/hyperion-disassembler)
## 支持的格式与架构
| 格式 | 架构 |
|--------|--------------|
| PE (exe, dll, sys) | x86, x64 |
| ELF (so, o, executables) | x86, x64, ARM, ARM64, MIPS, PPC |
| Mach-O (dylib, executables, fat/universal) | x64, ARM64 |
| .NET (managed assemblies) | CIL/IL 字节码 |
反汇编引擎:Zydis (x86/x64) + Capstone (ARM, ARM64, MIPS, PPC)
## 功能
**分析**
- 递归下降+线性扫描,带对齐冲突解决
- 用于 x64 函数边界的 .pdata 异常目录
- RTTI C++ 类恢复(vtable 解析、方法命名、类层次结构)
- 导入 thunk 检测,switch/jump 表解析
- Vtable 检测,全局变量检测
- FLIRT 签名匹配(~100 个 MSVC CRT 模式)
- 壳检测(UPX, Themida, VMProtect, ASPack, MPRESS)
- PDB 符号加载(通过 DbgHelp 自动检测)
- DWARF 符号加载(ELF 的 .debug_info)
- C++ 名称修饰解析(MSVC + GCC/Clang)
- 无返回值/尾调用/调用约定检测
- 数据流传播,间接调用解析
- 跨过程类型传播
**反编译器**
- Ghidra 风格 SSA 流水线(p-code 提升 → SSA → DCE → 传播 → 结构化 → 输出)
- x86/x64 和 ARM64 反编译器
- 标记-清除死代码消除
- RTTI 感知输出(obj->Class::method())
- STL 容器识别(std::string, std::vector, std::shared_ptr)
- 运算符重载检测,for 循环重建
- 返回值传播,调用者保存参数折叠
- Main/WinMain 检测及类型化参数
- 符号数据地址
**界面**
- 4种主题(Hyperion, IDA, Midnight, 自定义)+ 背景图支持
- 导航条(彩色编码的内存概览,点击导航)
- 反汇编视图,助记符彩色编码,内联字符串/导入注解,交叉引用标记
- 十六进制编辑器,支持修补、模式高亮、键盘导航
- 伪代码面板(F5,可复制)
- 控制流图,可点击节点(空格键切换图/反汇编视图)
- 函数、字符串、导入/导出面板,支持过滤和复制
- 交叉引用弹窗(X 键)和标签页面板
- 熵热图、调用图、栈帧视图
- 类型系统(结构体、枚举)、类视图(RTTI 浏览器)
- 二进制差异比较、PE 头查看器及壳结果
- SigMaker(自动通配符,4种输出格式,唯一性测试)
- 搜索(文本、带通配符的二进制模式、立即数)
- 美化模式(隐藏噪声,仅显示函数代码+关键数据)
- 上下文菜单:复制为 C 数组、Python 字节、YARA 模式
- 状态栏、等宽代码字体、多种字号
**脚本与插件**
- 内嵌 Lua 5.4 控制台(视图 > 脚本控制台)
- 插件系统:将 `.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/scripting.md) 和 [docs/plugins.md](docs/plugins.md)
**自定义**
- 设置面板(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 | 完全支持 |
| Linux x64 | 可构建,完全支持 |
| macOS (Intel + Apple Silicon) | 可构建,完全支持 |
## 状态
积极开发中。对所有支持格式的静态分析功能完备。反编译器对 x86/x64 和 ARM64 产生可读的 C 输出。RTTI 类恢复在未混淆的 C++ 二进制文件上有效。
路线图:
- 调试器集成(附加、断点、反检测)
- 协作分析
- 更多反编译器改进
## 许可证
MIT
## 社区
- [Discord](https://discord.gg/yjym2b7A)
- [GitHub](https://github.com/mylovereturns/hyperion-disassembler)
## 支持的格式与架构
| 格式 | 架构 |
|--------|--------------|
| PE (exe, dll, sys) | x86, x64 |
| ELF (so, o, executables) | x86, x64, ARM, ARM64, MIPS, PPC |
| Mach-O (dylib, executables, fat/universal) | x64, ARM64 |
| .NET (managed assemblies) | CIL/IL 字节码 |
反汇编引擎:Zydis (x86/x64) + Capstone (ARM, ARM64, MIPS, PPC)
## 功能
**分析**
- 递归下降+线性扫描,带对齐冲突解决
- 用于 x64 函数边界的 .pdata 异常目录
- RTTI C++ 类恢复(vtable 解析、方法命名、类层次结构)
- 导入 thunk 检测,switch/jump 表解析
- Vtable 检测,全局变量检测
- FLIRT 签名匹配(~100 个 MSVC CRT 模式)
- 壳检测(UPX, Themida, VMProtect, ASPack, MPRESS)
- PDB 符号加载(通过 DbgHelp 自动检测)
- DWARF 符号加载(ELF 的 .debug_info)
- C++ 名称修饰解析(MSVC + GCC/Clang)
- 无返回值/尾调用/调用约定检测
- 数据流传播,间接调用解析
- 跨过程类型传播
**反编译器**
- Ghidra 风格 SSA 流水线(p-code 提升 → SSA → DCE → 传播 → 结构化 → 输出)
- x86/x64 和 ARM64 反编译器
- 标记-清除死代码消除
- RTTI 感知输出(obj->Class::method())
- STL 容器识别(std::string, std::vector, std::shared_ptr)
- 运算符重载检测,for 循环重建
- 返回值传播,调用者保存参数折叠
- Main/WinMain 检测及类型化参数
- 符号数据地址
**界面**
- 4种主题(Hyperion, IDA, Midnight, 自定义)+ 背景图支持
- 导航条(彩色编码的内存概览,点击导航)
- 反汇编视图,助记符彩色编码,内联字符串/导入注解,交叉引用标记
- 十六进制编辑器,支持修补、模式高亮、键盘导航
- 伪代码面板(F5,可复制)
- 控制流图,可点击节点(空格键切换图/反汇编视图)
- 函数、字符串、导入/导出面板,支持过滤和复制
- 交叉引用弹窗(X 键)和标签页面板
- 熵热图、调用图、栈帧视图
- 类型系统(结构体、枚举)、类视图(RTTI 浏览器)
- 二进制差异比较、PE 头查看器及壳结果
- SigMaker(自动通配符,4种输出格式,唯一性测试)
- 搜索(文本、带通配符的二进制模式、立即数)
- 美化模式(隐藏噪声,仅显示函数代码+关键数据)
- 上下文菜单:复制为 C 数组、Python 字节、YARA 模式
- 状态栏、等宽代码字体、多种字号
**脚本与插件**
- 内嵌 Lua 5.4 控制台(视图 > 脚本控制台)
- 插件系统:将 `.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/scripting.md) 和 [docs/plugins.md](docs/plugins.md)
**自定义**
- 设置面板(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 | 完全支持 |
| Linux x64 | 可构建,完全支持 |
| macOS (Intel + Apple Silicon) | 可构建,完全支持 |
## 状态
积极开发中。对所有支持格式的静态分析功能完备。反编译器对 x86/x64 和 ARM64 产生可读的 C 输出。RTTI 类恢复在未混淆的 C++ 二进制文件上有效。
路线图:
- 调试器集成(附加、断点、反检测)
- 协作分析
- 更多反编译器改进
## 许可证
MIT标签:Amass, ARM64架构, ARM架构, C++20, Capstone, C++名称解混淆, DAST, DWARF符号加载, ELF文件分析, FLIRT签名匹配, ImGui, JA3, JSON 请求, Lua脚本, Mach-O文件分析, MIPS架构, .NET分析, Packer检测, PDB符号加载, PE文件分析, PPC架构, rizin, RTTI恢复, SNI设置, SSA管道, Themida检测, UPX检测, URL提取, VMProtect检测, vtable检测, Wayback Machine, x64架构, x86架构, Zydis, 二进制分析, 二进制工具, 云安全监控, 云安全运维, 云资产清单, 全局变量检测, 反汇编, 反编译, 反编译器, 多平台支持, 多架构支持, 导入检测, 恶意软件分析, 线性扫描, 跳转表解析, 逆向工程, 递归下降, 间接调用解析, 静态分析