配方编号系统
本书采用系统化的编号方式组织内容,帮助你快速定位所需信息。
章节编号规则
本书分为八大部分,每部分有独立的编号前缀:
| 编号前缀 | 章节名称 | 内容定位 | 数量 |
|---|
| Q | Quick Start | 快速入门 | 3 |
| R | Recipes | 场景化解决方案(核心内容) | 35 |
| T | Tools | 工具使用指南与原理 | 10 |
| C | Case Studies | 实战案例分析 | 8 |
| F | Foundations | 基础知识参考 | 13 |
| A | Advanced | 高级主题参考 | 7 |
| E | Engineering | 工程化参考 | 10 |
| X | Appendix | 附录资源与索引 | 5 |
Quick Start 编号 (Q)
快速入门章节,帮助新读者快速上手。
| 编号 | 名称 | 内容说明 |
|---|
| Q01 | 关于本书 | 本书介绍与阅读指南 |
| Q02 | 快速入门 | 10 分钟快速入门 |
| Q03 | 环境配置 | 开发环境搭建 |
Recipes 编号 (R)
Recipes(配方)是本书的核心内容,共 35 个配方:
入门基础 (R01-R03)
| 编号 | 配方名称 | 解决的问题 |
|---|
| R01 | 逆向工程完整工作流程 | 标准化的逆向分析流程 |
| R02 | 网络抓包分析 | 网络请求捕获与分析 |
| R03 | Objection 快速分析 | 使用 Objection 快速分析 |
核心分析 (R04-R08)
| 编号 | 配方名称 | 解决的问题 |
|---|
| R04 | 静态分析深入 | 深入静态分析技术 |
| R05 | 动态分析深入 | 深入动态分析技术 |
| R06 | Frida 常用脚本 | 实用 Frida 脚本集合 |
| R07 | JNI 开发原理 | JNI 接口与调用原理 |
| R08 | SO 编译与加载 | Native 库编译加载流程 |
脱壳与解密 (R09-R13)
| 编号 | 配方名称 | 解决的问题 |
|---|
| R09 | 脱壳技术概述 | 通用脱壳技术与原理 |
| R10 | Frida 脱壳实战 | 使用 Frida 进行脱壳 |
| R11 | 加密算法分析 | 加密算法识别与还原 |
| R12 | SO 字符串解密 | SO 文件字符串解密 |
| R13 | Native 字符串混淆 | Native 层字符串混淆分析 |
反检测对抗 (R14-R18)
| 编号 | 配方名称 | 解决的问题 |
|---|
| R14 | 应用加固识别 | 识别各类加固方案 |
| R15 | Frida 反调试绕过 | 绕过 Frida 检测 |
| R16 | Xposed 反调试绕过 | 绕过 Xposed 检测 |
| R17 | 设备指纹与绕过 | 设备指纹采集与伪造 |
| R18 | Native Hook 技术 | Native 层 Hook 实现 |
高级反混淆 (R19-R22)
| 编号 | 配方名称 | 解决的问题 |
|---|
| R19 | SO 混淆与反混淆 | SO 文件混淆还原 |
| R20 | OLLVM 反混淆 | OLLVM 混淆分析与还原 |
| R21 | VMP 虚拟机分析 | 虚拟机保护分析 |
| R22 | C 语言仿真脚本 | C 语言算法仿真 |
网络与协议 (R23-R27)
| 编号 | 配方名称 | 解决的问题 |
|---|
| R23 | TLS 指纹识别 | TLS 指纹分析与处理 |
| R24 | JA3 指纹技术 | JA3 指纹原理与应用 |
| R25 | JA4 指纹技术 | JA4 指纹原理与应用 |
| R26 | 验证码绕过技术 | 滑块与点选验证码绕过 |
| R27 | 移动安全与反爬 | 移动端风控与反机器人 |
自动化工程 (R28-R35)
| 编号 | 配方名称 | 解决的问题 |
|---|
| R28 | 自动化脚本 | 自动化脚本编写 |
| R29 | Scrapy 爬虫框架 | Scrapy 框架使用 |
| R30 | Scrapy-Redis 分布式 | 分布式爬虫架构 |
| R31 | 代理池设计 | 代理池架构与实现 |
| R32 | 拨号代理池 | 动态拨号代理 |
| R33 | Docker 部署 | 容器化部署方案 |
| R34 | 虚拟化与容器 | 虚拟化技术应用 |
| R35 | 自动化设备农场 | 设备群控与自动化 |
工具使用指南和原理剖析,共 10 个章节。
Dynamic - 动态分析工具
| 编号 | 工具名称 | 内容类型 |
|---|
| T01 | Frida 使用指南 | 使用指南 |
| T02 | Frida 内部原理 | 原理剖析 |
| T03 | Xposed 使用指南 | 使用指南 |
| T04 | Xposed 内部原理 | 原理剖析 |
| T05 | Unidbg 使用指南 | 使用指南 |
| T06 | Unidbg 内部原理 | 原理剖析 |
Static - 静态分析工具
| 编号 | 工具名称 | 内容类型 |
|---|
| T07 | Ghidra 入门 | 使用指南 |
| T08 | IDA Pro 入门 | 使用指南 |
| T09 | Radare2 入门 | 使用指南 |
Cheatsheets - 速查表
| 编号 | 名称 | 内容说明 |
|---|
| T10 | ADB 命令速查 | ADB 常用命令 |
Case Studies 编号 (C)
真实场景的案例分析,共 8 个案例。
| 编号 | 案例名称 | 分析对象 |
|---|
| C01 | 反分析技术案例 | 各类反分析技术 |
| C02 | 音乐 App 案例 | 音乐平台加密分析 |
| C03 | 社交媒体与风控案例 | 社交平台风控策略 |
| C04 | App 加密签名案例 | 请求签名算法分析 |
| C05 | 视频 App 与 DRM 案例 | 视频加密与 DRM |
| C06 | Unity 游戏 (Il2Cpp) 案例 | Unity 游戏分析 |
| C07 | Flutter 应用案例 | Flutter 应用分析 |
| C08 | 恶意软件分析案例 | 恶意软件行为分析 |
Reference 编号
参考资料和理论知识,按主题分类。
Foundations 基础知识 (F)
| 编号 | 主题 | 内容说明 |
|---|
| F01 | APK 文件结构 | APK 内部组成 |
| F02 | Android 四大组件 | 组件原理与通信 |
| F03 | AndroidManifest 解析 | 清单文件详解 |
| F04 | Android Studio 调试工具 | 调试工具使用 |
| F05 | DEX 文件格式 | DEX 结构详解 |
| F06 | Smali 语法入门 | Smali 语法基础 |
| F07 | SO/ELF 文件格式 | ELF 格式详解 |
| F08 | ART 运行时 | ART 虚拟机原理 |
| F09 | ARM 汇编入门 | ARM 指令集基础 |
| F10 | x86 与 ARM 汇编基础 | 汇编对比学习 |
| F11 | TOTP 时间动态密码 | TOTP 算法原理 |
| F12 | SELinux 安全机制 | SELinux 原理与绕过 |
| F13 | 二进制分析工具链 | Unicorn/Capstone/Keystone |
Advanced 高级主题 (A)
| 编号 | 主题 | 内容说明 |
|---|
| A01 | Android 沙箱实现 | 沙箱原理与实现 |
| A02 | AOSP 与系统定制 | AOSP 编译与定制 |
| A03 | AOSP 深度改机 | 设备指纹修改 |
| A04 | 最小化 Android RootFS | 精简系统构建 |
| A05 | SO 反调试与混淆 | Native 保护技术 |
| A06 | SO 运行时仿真 | 离线仿真执行 |
| A07 | Magisk 与 LSPosed | Root 与 Hook 框架原理 |
Engineering 工程化 (E)
| 编号 | 主题 | 内容说明 |
|---|
| E01 | 框架与中间件 | 常用框架介绍 |
| E02 | 消息队列 | MQ 技术选型 |
| E03 | Redis 常用命令 | Redis 操作指南 |
| E04 | 风控 SDK 编译指南 | SDK 构建流程 |
| E05 | 数据仓库与处理 | 大数据基础 |
| E06 | Apache Flink | 流处理框架 |
| E07 | HBase 数据库 | 分布式存储 |
| E08 | Apache Hive | 数据仓库 |
| E09 | Apache Spark | 大数据计算 |
| E10 | 群控与 API 逆向对比 | 方案选型分析 |
Appendix 编号 (X)
附录资源和社区资源。
| 编号 | 名称 | 内容说明 |
|---|
| X01 | GitHub 开源项目 | 优质项目推荐 |
| X02 | 学习资源 | 学习资料汇总 |
| X03 | CTF 练习平台 | CTF 平台推荐 |
| X04 | 术语表 | 专业术语解释 |
| X05 | 配方编号系统 | 本文档 |
如何使用编号系统
快速引用
在讨论或笔记中,你可以使用简短的编号引用特定配方:
- “参考 R11 (加密算法分析) 了解加密分析方法”
- “这个问题可以用 R15 (Frida 反调试绕过) 的方法解决”
- “代码示例见 R06 (Frida 常用脚本)”
- “工具使用参考 T01 (Frida 使用指南)”
交叉引用
本书各章节之间存在大量交叉引用,编号系统帮助你快速定位:
1
2
3
| 分析加密算法时 (R11: 加密算法分析),可能需要先脱壳 (R09: 脱壳技术概述),
然后使用 Frida (T01: Frida 使用指南) 进行动态分析 (R05: 动态分析深入),
参考 C04 (App 加密签名案例) 了解完整案例。
|
学习路径规划
你可以根据编号规划自己的学习路径:
初学者路径:
1
2
3
| Q01 (关于本书) → Q02 (快速入门) → F01 (APK 文件结构) →
F05 (DEX 文件格式) → T01 (Frida 使用指南) → R01 (逆向工程完整工作流程) →
R05 (动态分析深入)
|
爬虫开发者路径:
1
2
3
| R01 (逆向工程完整工作流程) → R02 (网络抓包分析) → R11 (加密算法分析) →
R26 (验证码绕过技术) → R27 (移动安全与反爬) → R29 (Scrapy 爬虫框架) →
R30 (Scrapy-Redis 分布式)
|
安全研究员路径:
1
2
| R15 (Frida 反调试绕过) → R09 (脱壳技术概述) → R18 (Native Hook 技术) →
R21 (VMP 虚拟机分析) → A05 (SO 反调试与混淆) → C08 (恶意软件分析案例)
|
版本说明
本编号系统会随着内容更新而扩展。新增配方将获得新的编号,已有配方的编号保持不变,确保引用的稳定性。
当前版本:v2.0
| 章节 | 数量 |
|---|
| Quick Start (Q) | 3 |
| Recipes (R) | 35 |
| Tools (T) | 10 |
| Case Studies (C) | 8 |
| Foundations (F) | 13 |
| Advanced (A) | 7 |
| Engineering (E) | 10 |
| Appendix (X) | 5 |
| 总计 | 91 |
现在你已经了解了本书的组织结构,开始你的学习之旅吧!
推荐下一步:快速入门