工具选型的原则:顺手 > 强大
逆向工具链每年都在变,但选型原则不变:在能力达标的前提下选最顺手的。工具的学习成本是真实成本,一个用熟了的"次优"工具比生疏的"最强"工具产出高得多。以下是我当前的主力配置和备选。
抓包层
| 场景 | 主力 | 备选 |
|---|---|---|
| 日常 HTTP 抓包 | mitmproxy(插件生态无敌) | Charles(GUI 友好) |
| 手机全局接管 | reqable(现代、双端) | Postern(免费) |
| 网络层分析 | Wireshark | tcpdump(服务器上) |
| 自动化改包 | mitmproxy 插件 | Charles Rewrite |
配置建议:mitmproxy 配好常用插件(自动解密、token 收割)做成模板工程,新项目复制即用。
静态分析层
| 场景 | 主力 | 备选 |
|---|---|---|
| Android dex | jadx(GUI+命令行) | GDA(国产,部分混淆更强) |
| SO/二进制 | IDA Pro(+D810 反混淆插件) | Ghidra(免费)、Hopper(mac 顺手) |
| iOS | Hopper(伪代码友好) | IDA |
| JS 反混淆 | 自写 AST 脚本(babel) | de4js 等在线工具 |
IDA 必装插件:D810(OLLVM 还原)、FindCrypt(算法常量识别)、keypatch(汇编修改)。
动态分析层
| 场景 | 主力 | 备选 |
|---|---|---|
| 全能 hook | Frida | Xposed/LSPosed(常驻型修改) |
| 快速侦察 | objection | — |
| JNI 跟踪 | jnitrace | 手写 Frida |
| SO 模拟执行 | unidbg | — |
| iOS | Frida + MonkeyDev | Cycript(老设备) |
Frida 配置建议:维护一个自己的脚本库(按本文前面"工程化"篇的模块化结构),常用能力(OkHttp 抓包、加解密 hook、反检测)全部模块化。
协议与自动化层
| 场景 | 主力 | 备选 |
|---|---|---|
| HTTP 协议模拟 | curl_cffi(指纹伪装) | requests(无指纹需求时) |
| 浏览器自动化 | Camoufox(指纹级) | undetected-chromedriver |
| JS 执行 | Node + 补环境框架 | jsdom |
| 验证码 | 自训 YOLO + 打码平台 | — |
| 安卓自动化 | uiautomator2 | Appium |
基础设施层
# 我的标准项目骨架
project/
├── sign_service/ # 签名服务(Frida RPC 或本地算法)
├── protocol/ # 协议层(接口封装)
├── pool/ # 资源池(账号/IP/设备)
├── monitor/ # 监控告警
├── docs/ # 协议文档(最重要!)
└── tests/ # 对拍测试每个项目必配:协议文档(docs/)和对拍测试(tests/)——前者是分析资产,后者是版本变更的报警器。
精髓:工具之外的三样软实力
- 笔记系统。逆向的每个发现(常量地址、key 来源、坑点)即时记录——Obsidian/语雀都行,关键是"分析时随手记"的习惯。两周后你会感谢自己
- 社区信息源。逆向的技术情报在社区:看雪论坛、吾爱破解、相关 Telegram 群。新防护方案出现后,社区的拆解文章通常 1-2 周内就有——别闷头硬刚别人已经拆过的东西
- 对拍纪律。所有还原的算法必须对拍验证,所有工具升级必须回归测试——这条纪律省下的调试时间,比任何工具都多
总结
- 选型原则:能力达标前提下最顺手的,学习成本是真实成本
- 五层配置:抓包、静态、动态、协议自动化、基础设施
- 项目骨架必备 docs(协议文档)和 tests(对拍测试)
- 软实力三样:笔记习惯、社区信息源、对拍纪律
交流微信:run1255