lich4/awesome-ollvm

GitHub: lich4/awesome-ollvm

收录了主流 OLLVM 混淆器实现及 IDA Pro 去混淆插件的精选列表,是代码混淆与逆向去混淆领域的实用参考索引。

Stars: 59 | Forks: 10

## 优秀的 OLLVM 列表 - [Obfuscator](#obfuscator) - [Hikari](#Hikari) - [Pluto](#Pluto) - [goron](#goron) - [O-MVLL](#O-MVLL) - [VMP](#VMP) ### Obfuscator [https://github.com/obfuscator-llvm/obfuscator](https://github.com/obfuscator-llvm/obfuscator) 最早的公开 Obfuscator-LLVM 实现,支持 LLVM 3.3~4.0。功能特性: * 指令替换 * 虚假控制流 * 控制流平坦化 ### Hikari [https://github.com/HikariObfuscator/Hikari](https://github.com/HikariObfuscator/Hikari) Hikari,支持 LLVM 6~8。功能特性(除 Obfuscator 外新增): * Anti Class Dump (反类转储) * 函数调用混淆 * 函数包装器 * 间接分支 * 基本块拆分 * 字符串加密 ~~[https://github.com/61bcdefg/Hikari-LLVM15](https://github.com/61bcdefg/Hikari-LLVM15)~~ Hikari-LLVM15,基于 Hikari,支持 LLVM 15~19,目前闭源。功能特性(除 Hikari 外新增): * 反调试 * Anti Hook (反 Hook) * 常量加密 ### goron [https://github.com/amimo/goron](https://github.com/amimo/goron) goron,支持 LLVM 7~10。功能特性(除 Obfuscator 外新增): * 间接分支 * 间接调用 * 间接全局变量 [https://github.com/komimoe/Hikari](https://github.com/komimoe/Hikari) Arkari,基于 goron,支持 LLVM 14~最新版。 ⚠️ **注意:Goron 风格(Goron/Arkari)的间接相关混淆可以通过将数据段设置为只读来轻松去混淆。** ### Pluto [https://github.com/bluesadi/Pluto](https://github.com/bluesadi/Pluto) Pluto,支持 LLVM 14。功能特性(除 Obfuscator 外新增): * MBA 混淆 * 随机控制流 * 基本块拆分 * Trap Angr (陷阱 Angr) [https://github.com/za233/Polaris-Obfuscator](https://github.com/za233/Polaris-Obfuscator) Polaris(原 Pluto),支持 LLVM16。功能特性(除 Obfuscator 外新增): * 别名访问 * 间接分支 * 间接调用 * 字符串加密 * 合并函数 * 线性 MBA * 污染字节插入 (MIR 层级) * 函数拆分 (MIR 层级) * 垃圾指令插入 (MIR 层级) * 指令替换 (MIR 层级) ### O-MVLL * [https://github.com/open-obfuscator/o-mvll](https://github.com/open-obfuscator/o-mvll) O-MVLL 是一个基于 LLVM 的混淆器,由 Python 和 LLVM pass manager 驱动。功能特性(除 Obfuscator 外新增): * Anti Hooking (反 Hook) * 算术混淆 (MBA 混淆) * 基本块复制 * 控制流断开 * 函数外联 (函数包装器) * 间接分支 * 间接调用 * 不透明常量 (常量加密) ### amice * [https://github.com/fuqiuluo/amice](https://github.com/fuqiuluo/amice) Obfuscator-LLVM (OLLVM) pass 的 Rust 实现 * 字符串加密 * 间接调用混淆 * 间接分支混淆 * 基本块拆分 * Switch Lowering (Switch 降低) * VM 平坦化 * 控制流平坦化 * MBA 算术混淆 * 虚假控制流 * 函数包装器 * 克隆函数 (常量特化) * 别名访问混淆 * 自定义调用约定 * 延迟偏移加载 (AMA) * 反类导出 * 参数聚合 (PAO) * 指令虚拟化 * 函数外联 (BB2FUNC) ### VMP * [https://github.com/NiTianErXing666/SmallVmp](https://github.com/NiTianErXing666/SmallVmp) * [https://github.com/25077667/VMPilot](https://github.com/25077667/VMPilot) * [https://github.com/GANGE666/xVMP](https://github.com/GANGE666/xVMP) * [https://github.com/LeoChen-CoreMind/VMPacker](https://github.com/LeoChen-CoreMind/VMPacker) ## 优秀的 IDA 去混淆插件列表 - [AI](#AI) - [Ctree](#Ctree) - [Decryption](#Decryption) - [Lifting](#Lifting) - [MBA](#MBA) - [Microcode](#Microcode) - [OLLVM](#OLLVM) - [VMP](#VMP) ### AI * [aiDAPal](https://github.com/atredispartners/aidapal). 使用本地运行的、针对 Hex-Rays 伪代码微调过的 LLM 来辅助代码分析。 * [Gepetto](https://github.com/JusticeRage/Gepetto). 查询语言模型以加速逆向工程。 * [ida-pro-mcp](https://github.com/mrexodia/ida-pro-mcp). AI 驱动的逆向工程助手,通过 MCP 桥接 IDA Pro 与语言模型。 * [IDAssist](https://github.com/symgraph/IDAssist). 用于 IDA Pro 的 AI 驱动逆向工程插件。 * [IDAssistMCP](https://github.com/symgraph/IDAssistMCP). 独立的 IDA Pro MCP 服务器插件。 * [reverser_ai](https://github.com/mrphrazer/reverser_ai). 通过在消费级硬件上使用本地大型语言模型 (LLM) 提供自动化的逆向工程协助。 * [Rikugan](https://github.com/buzzer-re/Rikugan). 用于 IDA Pro 和 Binary Ninja 的逆向工程 Agent。 * [WPeChatGPT](https://github.com/WPeace-HcH/WPeChatGPT). 基于 OpenAI 和 DeepSeek 等常用 AI 大模型分析二进制文件。 其他有用的仓库: * [BinAssist](https://github.com/symgraph/BinAssist). 提供 LLM 辅助分析二进制文件的 Binary Ninja 插件。 * [BinAssistMCP](https://github.com/symgraph/BinAssistMCP). 提供 MCP 功能的 Binary Ninja 插件。 * [GhidrAssist](https://github.com/symgraph/GhidrAssist). 用于 Ghidra 的 LLM 扩展,在逆向工程中启用 AI 协助。 * [GhidrAssistMCP](https://github.com/symgraph/GhidrAssistMCP). 用于 Ghidra 的 MCP 扩展。 * [GhidraMCP](https://github.com/LaurieWired/GhidraMCP). Ghidra 的 MCP 服务器。 * [LLM4Decompile](https://github.com/albertan017/LLM4Decompile). 逆向工程:使用大型语言模型反编译二进制代码。 * [RevEng.AI Ghidra](https://github.com/RevEngAI/plugin-ghidra). RevEng.AI Ghidra 插件。 ### Ctree * [herast](https://github.com/Mizari/herast). 自动化处理 IDA Pro 中 AST 的框架。 * [HexRaysCodeXplorer](https://github.com/REhints/HexRaysCodeXplorer). 用于更好代码导航的 Hex-Rays 反编译器插件。 * [HexraysToolbox](https://github.com/patois/HexraysToolbox). 在 Hexrays ctree 中查找代码模式。 * [HrDevHelper](https://github.com/patois/HRDevHelper). HexRays ctree 可视化插件。 * [strikeout](https://github.com/allthingsida/strikeout). 用于修补 Ctree 的 Hex-Rays 反编译器插件。 ### 解密 * [AntiXorstr](https://github.com/lstaroth/AntiXorstr). 此插件用于还原 Xorstr。 * [xorstr-decrypt](https://github.com/yubie-re/ida-jm-xorstr-decrypt-plugin). 尝试在某些 x64 二进制文件中解密 JM Xorstr。 ### 提升 * [HyRES](https://github.com/Sandspeare/HyRES). HyRES 是一种创新的混合推理技术,结合了静态分析、大型语言模型 (LLM) 和启发式方法,从剥离的二进制文件中恢复数据结构。 * [IDA2LLVM](https://github.com/Sandspeare/ida2llvm). 将微码 (IDA IR) 提升为 LLVM IR。 * [IDA2LLVM](https://github.com/loyaltypollution/ida2llvm). 动态二进制提升 IDA 代码到 LLVM IR。 其他有用的仓库: * [Anvill](https://github.com/lifting-bits/anvill). anvill 从原始机器码中生成精美的 LLVM bitcode。 * [Llvm-mctoll](https://github.com/Microsoft/llvm-mctoll). 此工具静态 (AOT) 将二进制文件翻译(或提升)为 LLVM IR。 * [McSema](https://github.com/lifting-bits/mcsema). 将 x86、amd64、aarch64、sparc32 和 sparc64 程序二进制文件提升为 LLVM bitcode 的框架。 * [Miasm](https://github.com/cea-sec/miasm). Python 逆向工程框架。 * [Rellume](https://github.com/aengelke/rellume). 将机器码提升为高性能 LLVM IR。 * [RetDec](https://github.com/avast/retdec). RetDec 是一个基于 LLVM 的可重定目标机器码反编译器。 * [rev.ng](https://github.com/revng/revng). rev.ng 二进制分析框架和反编译器。 ### MBA * [D-810](https://gitlab.com/eshard/d810). 通过修改 IDA Pro 微码在反编译时进行去混淆。 * [gooMBA](https://github.com/HexRaysSA/goomba). 简化混合布尔算术 (MBA) 表达式。 其他有用的仓库: * [GAMBA](https://github.com/DenuvoSoftwareSolutions/GAMBA). 简化通用混合布尔算术表达式。 * [msynth](https://github.com/mrphrazer/msynth). 用于简化混合布尔算术 (MBA) 表达式的代码去混淆框架。 * [POCKET](https://github.com/seekbytes/pocket). 混合布尔算术表达式混淆器。 * [SiMBA](https://github.com/DenuvoSoftwareSolutions/SiMBA). 高效去混淆线性混合布尔算术表达式。 * [sspam](https://github.com/quarkslab/sspam). 基于模式匹配的符号化简。 ### Microcode * [genmc](https://github.com/patois/genmc). 显示 Hex-Rays 微码。 * [Lucid](https://github.com/gaasedelen/lucid). 交互式 Hex-Rays 微码浏览器。 ### OLLVM * [AntiOllvm](https://github.com/IIIImmmyyy/AntiOllvm). 带有虚假运行时的 AntiOllvm Fla。 * [D-810](https://gitlab.com/eshard/d810). 通过修改 IDA Pro 微码在反编译时进行去混淆。 * [deflat](https://github.com/cq674350529/deflat) * [HexRaysDeob](https://github.com/RolfRolles/HexRaysDeob). 用于对抗混淆编译器的插件。 * [hrtng](https://github.com/KasperskyLab/hrtng). 具有丰富功能的 IDA Pro 插件:解密、去混淆、打补丁、库代码识别以及各种伪代码转换。 * [MODeflattener](https://github.com/mrT4ntr4/MODeflattener). MODeflattener 使用 Miasm 去混淆被 OLLVM 混淆的控制流平坦化函数。 * [ObfDetect](https://github.com/mcdulltii/obfDetect). 用于精确定位混淆代码的 IDA 插件。 * [obpo-plugin](https://github.com/obpo-project/obpo-plugin). 一个 OLLVM-CFF 去混淆插件。 * [ollvm-unflattener](https://github.com/cdong1012/ollvm-unflattener). Obfuscator-llvm 控制流平坦化去混淆器。 * [Stadeo](https://github.com/eset/stadeo). 控制流平坦化和字符串去混淆器。 ### VMP * [NoVmpy](https://github.com/wallds/NoVmpy). 概念验证,基于 VTIL 驱动的 VMProtect x64 3.x 静态去虚拟化 IDA 集成工具。 * [VMAttack](https://github.com/anatolikalysch/VMAttack). 使用旨在对抗基于虚拟化的混淆的额外分析功能。
标签:C++, C2, Hikari, IDA, LLVM, OLLVM, Pluto, VMP, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码混淆, 反逆向, 可视化界面, 字符串加密, 指令替换, 控制流平坦化, 数据擦除, 编译器扩展, 网络安全, 虚假控制流, 软件保护, 逆向工具, 逆向工程, 隐私保护, 静态分析