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。 [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord)](https://discord.gg/yjym2b7A) [![GitHub](https://img.shields.io/github/stars/mylovereturns/hyperion-disassembler?style=flat&label=Stars)](https://github.com/mylovereturns/hyperion-disassembler) 单一静态链接可执行文件。无需安装程序,无运行时依赖。体积小于3MB。 image ## 社区 - [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, 二进制分析, 二进制工具, 云安全监控, 云安全运维, 云资产清单, 全局变量检测, 反汇编, 反编译, 反编译器, 多平台支持, 多架构支持, 导入检测, 恶意软件分析, 线性扫描, 跳转表解析, 逆向工程, 递归下降, 间接调用解析, 静态分析