附录导读
本附录是混淆工具和反混淆工具的快速索引,按用途分类,相当于一本"工具字典":
- 第 1 节:混淆工具——把代码变难分析的"加固方"武器;
- 第 2 节:反混淆工具——把混淆代码还原回去的"分析方"武器;
- 第 3 节:调试与分析工具——逆向工程的基础平台(IDA、Ghidra、Frida 等);
- 第 4–5 节:在线分析平台和移动安全工具。
使用建议:不需要通读。当你遇到具体任务时(比如"拿到一个 OLLVM 混淆的样本"),按用途翻到对应分类,根据"类型"和"简评"两列快速选型即可。初学者可优先关注带"推荐""首选""必备"字样的条目。
表中出现的常见术语速记: -IR 级:在编译器中间表示(LLVM IR)层面做混淆,需要源码或编译期介入; -二进制级:直接对编译产物(可执行文件)做混淆,无需源码; -AST 级:对源代码的抽象语法树做变换(常见于 JavaScript); -MBA:Mixed Boolean-Arithmetic(混合布尔-算术),一种把简单算式改写成难以理解的位运算组合的混淆手法。
附录知识定位:本附录整体属于实践应用,是选型查阅工具,没有需要先理解的理论内容。表格中每一行都是你在实际工作中可能直接下载、安装、运行的工具,"类型""简评"两列可以直接指导你的选型决策。不需要通读,用到时查即可。
1. 混淆工具
知识定位:实践应用。这是加固方选型用的工具清单——如果你要给自己的代码加混淆保护,直接按"类型"筛选目标语言/平台,再看"简评"挑一个开源免费或预算内的商业方案。
| 工具 | 类型 | 平台 | 开源/商业 | 核心技术 | 简评 | 官方链接 |
|---|---|---|---|---|---|---|
| OLLVM(Obfuscator-LLVM,基于 LLVM 的开源代码混淆框架) | IR 级 | 全平台 | 开源 | CFF(Control Flow Flattening,控制流平坦化)+ BCF(Bogus Control Flow,虚假控制流)+ Sub | 经典但已过时(LLVM 4.0),不推荐直接使用 | https://github.com/obfuscator-llvm/obfuscator |
| Hikari | IR 级 | 全平台 | 开源 | OLLVM 增强 + 间接跳转/函数封装 | 最活跃的 OLLVM 分支,推荐 | https://github.com/HikariObfuscator/Hikari |
| Armariris | IR 级 | 全平台 | 开源 | OLLVM 增强 | 侧重 Android 兼容性 | https://github.com/ArmaririsGroup/Armariris |
| VMProtect | 二进制级 | Win/Mac/Linux | 商业 | 代码虚拟化 + 变异 | 最强商业保护方案 | https://vmpsoft.com/ |
| Themida | 二进制级 | Windows | 商业 | 虚拟化 + 反调试 + anti-dump | 集成度高,含 License 管理 | https://www.oreans.com/Themida.php |
| Code Virtualizer | 二进制级 | Windows | 商业 | 轻量虚拟化 | 性能友好 | https://www.oreans.com/CodeVirtualizer.php |
| javascript-obfuscator | AST 级 | Web/Node | 开源 | CFF + 字符串数组 + 自卫 | JS 混淆事实标准 | https://github.com/nicedayzhu/javascript-obfuscator |
| JScrambler | AST 级 | Web/Node | 商业 | Polymorphic JS + 代码锁 | 商业级 JS 保护 | https://jscrambler.com/ |
| dProtect | IR+DEX 级 | Android | 开源 | MBA + 字符串保护 | Android 专用 | https://github.com/nicedayzhu/dProtect |
| ProGuard/R8 | DEX 级 | Android | 开源 | 名称混淆 + 死代码消除 + 优化 | Android 构建标配 | https://www.guardsquare.com/proguard |
| Tigress | 源码级 | C | 学术/免费 | 虚拟化 + 多态 + JIT | 学术界标杆混淆器,支持多种虚拟化架构 | https://tigress.wtf/ |
| Ipa Guard | 二进制级 | iOS | 商业 | 名称混淆 + 资源加密 | 无需源码即可混淆 iOS 应用 | https://www.ipaguard.com/ |
2. 反混淆工具
知识定位:实践应用。这是分析方选型用的工具清单——拿到一个被混淆的样本后,按"目标"列匹配混淆类型(OLLVM CFF、MBA、JS 混淆等),直接选对应工具上手跑。
| 工具 | 类型 | 目标 | 核心方法 | 简评 | 官方链接 |
|---|---|---|---|---|---|
| D-810 | IDA 插件 | OLLVM CFF/BCF | Microcode pattern matching | OLLVM(Obfuscator-LLVM,基于 LLVM 的开源代码混淆框架)克星,一键去平坦化 | https://github.com/zhkl0228/d810 |
| deflat | Python 脚本 | OLLVM CFF | angr 符号执行 | 对标准 OLLVM 有效 | https://github.com/cq674350529/deflat |
| CoBRA | CLI/库/LLVM Pass | MBA(Mixed Boolean-Arithmetic,混合布尔-算术)表达式 | Worklist + 36 Pass | 99.86% MBA 化简率,当前最强 | https://github.com/trailofbits/CoBRA |
| SiMBA | 库 | 线性 MBA | 线性代数化简 | 快速但仅限线性 | https://github.com/DenuvoSoftwareSolutions/SiMBA |
| GAMBA | 库 | 多项式 MBA | 多项式化简 | SiMBA 的扩展 | https://github.com/DenuvoSoftwareSolutions/GAMBA |
| msynth | Python | MBA | 程序合成 (Miasm) | 广泛但慢 | https://github.com/mrphrazer/msynth |
| WebCrack | CLI/库 | JS 混淆 | AST pattern + bundle 拆解 | JavaScript 反混淆和 bundle 拆解工具,JS 反混淆首选 | https://github.com/nicedayzhu/webcrack |
| js-de-obfuscator | CLI | JS 混淆 | Babel AST 全自动 | 功能强大的 JS 反混淆 | https://github.com/nicedayzhu/js-de-obfuscator |
| Gepetto | IDA 插件 | 通用二进制 | LLM 辅助语义理解 | AI 辅助逆向标杆 | https://github.com/JusticeRage/Gepetto |
| class-dump | CLI | iOS/macOS ObjC | Mach-O 元数据提取 | ObjC 逆向必备 | https://github.com/nygard/class-dump |
3. 调试与分析工具
知识定位:实践应用。这些是逆向工程的日常基础平台(反汇编器、调试器、符号执行框架),不管做加固还是做分析都会用到,建议至少挑一款静态工具(IDA/Ghidra)和一款动态工具(Frida/x64dbg)装好备用。
| 工具 | 类型 | 平台 | 开源/商业 | 核心能力 | 简评 | 官方链接 |
|---|---|---|---|---|---|---|
| IDA Pro | 反汇编/反编译 | Win/Mac/Linux | 商业 | 多架构反汇编 + Hex-Rays 反编译 + 丰富插件生态 | IDA(Interactive DisAssembler,交互式反汇编器),逆向工程行业标准,Hex-Rays 反编译器几乎不可替代 | https://hex-rays.com/ida-pro/ |
| Ghidra | 反汇编/反编译 | 全平台 (Java) | 开源 (NSA) | 多架构反编译 + P-Code IR + 脚本自动化 | NSA 开源的反编译框架,免费 IDA 替代品,社区活跃 | https://ghidra-sre.org/ |
| Binary Ninja | 反汇编/反编译 | Win/Mac/Linux | 商业 | 多级 IL(LLIL/MLIL/HLIL)+ 强 API | IL 体系设计优雅,API 最好用,适合自动化分析 | https://binary.ninja/ |
| Frida | 动态插桩 | 全平台 + 移动 | 开源 | JS 注入 + 方法 Hook + 内存操作 | 跨平台动态插桩工具,动态分析瑞士军刀,跨平台 hook 首选 | https://frida.re/ |
| x64dbg | 调试器 | Windows | 开源 | x86/x64 用户态调试 + 插件 + 脚本 | Windows 平台最流行的开源调试器,OllyDbg 继承者 | https://x64dbg.com/ |
| LLDB | 调试器 | macOS/Linux/Win | 开源 | LLVM 生态调试器 + Python 脚本 | macOS/iOS 逆向首选调试器,与 Xcode 深度集成 | https://lldb.llvm.org/ |
| Radare2/Rizin | 多功能框架 | 全平台 | 开源 | 反汇编 + 分析 + 调试 + patch + 脚本 | 终端党最爱,功能极全但学习曲线陡峭;Rizin 是友好分支 | https://rizin.re/ / https://rada.re/ |
| angr | 符号执行 | 全平台 (Python) | 开源 | 二进制符号执行 + CFG 恢复 + 约束求解 | 基于 Python 的二进制符号执行框架,自动化漏洞发现和反混淆利器,学术界广泛使用 | https://angr.io/ |
| Triton | 符号执行/污点分析 | 全平台 (Python/C++) | 开源 | 动态符号执行 + 污点跟踪 + 指令级模拟 | 动态符号执行和污点分析框架,轻量级 DSE 框架,适合精细化指令级分析和反混淆 | https://triton-library.github.io/ |
4. 在线分析平台
知识定位:实践应用。这些是免注册或低门槛即可用的在线服务,拿到一个可疑样本时可以先上传到这里快速过一遍,不需要在本地搭建分析环境。
| 平台 | 用途 | 特点 | 简评 | 官方链接 |
|---|---|---|---|---|
| VirusTotal | 多引擎恶意软件扫描 | 70+ 杀毒引擎联合检测 + 社区评论 + YARA 规则 | 样本分析第一站,上传即可获得全面检测报告 | https://www.virustotal.com/ |
| Hybrid Analysis | 沙箱动态分析 | Falcon Sandbox 驱动 + 行为报告 + 进程树 + 网络流量 | CrowdStrike 旗下,动态行为报告详细,免费额度充足 | https://www.hybrid-analysis.com/ |
| any.run | 交互式沙箱 | 浏览器中实时操作样本 + 网络/进程/文件行为可视化 | 支持交互操作(点击、输入),非常适合分析需用户交互的样本 | https://any.run/ |
5. 移动安全工具
知识定位:实践应用。专攻 Android/iOS 应用分析场景,涉及移动端逆向或安全测试时直接按平台和需求(反编译/运行时 hook/自动化扫描)挑选对应工具。
| 工具 | 平台 | 类型 | 核心能力 | 简评 | 官方链接 |
|---|---|---|---|---|---|
| objection | Android/iOS | 运行时分析 | 基于 Frida 的运行时 hook 框架,无需越狱/root | 移动安全测试瑞士军刀,一行命令即可 hook 常见安全机制 | https://github.com/sensepost/objection |
| apktool | Android | 静态分析 | APK 反编译 → smali + 资源还原 + 重打包 | Android 逆向必备,smali 修改后可重打包安装 | https://apktool.org/ |
| jadx | Android | 反编译 | DEX → Java 源码 + GUI 浏览 + 搜索 | 最好用的 Android 反编译器,GUI 和命令行均支持 | https://github.com/skylot/jadx |
| class-dump | iOS/macOS | 头文件提取 | Mach-O ObjC 类/方法/协议元数据提取 | ObjC 逆向第一步:导出所有类声明,快速了解应用结构 | https://github.com/nygard/class-dump |
| Hopper | macOS/iOS/Linux | 反汇编/反编译 | ARM/x86 反汇编 + ObjC/Swift 友好 + 脚本 | macOS/iOS 逆向的轻量替代品,伪代码质量不错 | https://www.hopperapp.com/ |
| MobSF | Android/iOS | 自动化分析 | 静态分析 + 动态分析 + API 安全扫描 + 报告生成 | 移动应用安全测试一站式平台,开箱即用 | https://github.com/MobSF/Mobile-Security-Framework-MobSF |
提示:工具版本和链接可能随时间变化,请以各项目官方页面为准。