第二节 开发工具
学习目标
学完本节,希望你能够:
- 说出 iOS 逆向里「静态分析」和「动态分析」各在干啥、用啥工具。
- 按用途区分几类工具:反汇编/反编译、调试、Hook/插桩、抓包、重签名等,并能各举一两个例子。
- 根据自己是入门还是进阶,选出一套适合自己的工具组合。
- 知道常用工具的一句话用途,查表能对上号。
阅读提示:工具很多,本节以「分类 + 一句话说明」为主,具体安装和用法在基础环境、Theos、MonkeyDev 等节里会提到。
常见疑问:一定要买 IDA 吗?------不必。入门用 Hopper、Ghidra、class-dump + Frida 就够;等真做深了再考虑 IDA。
一、静态分析工具在干啥?
用一句话说清楚
静态分析就是「不跑程序,对着二进制或头文件看」------看结构、看函数、看字符串,相当于先看图纸。下面按「在干啥、常用啥工具、注意啥」来说。
反汇编 / 反编译工具
| 工具 | 类型 | 一句话 |
|---|---|---|
| IDA Pro | 商业 | 行业标准,ARM64 支持好,插件多(如 Hex-Rays 反编译),贵。 |
| Hopper Disassembler | 商业 | macOS 原生,能出伪代码,价格相对友好。 |
| Ghidra | 免费 | NSA 开源,反编译和脚本扩展都强。 |
| Binary Ninja | 商业 | 界面现代,多种视图。 |
| radare2 | 免费 | 命令行反汇编框架,适合脚本和自动化。 |
记一句:入门优先 Hopper 或 Ghidra,够用再考虑 IDA。
二进制分析(Mach-O、符号)
| 工具 | 一句话 |
|---|---|
| otool | 系统自带,看 Mach-O 的段、节、共享库。 |
| nm | 系统自带,看符号表。 |
| MachOView | 图形化看 Mach-O 结构。 |
| jtool2 | 增强版 otool,还能看 dyld 共享缓存。 |
| class-dump | 导出 Objective-C 头文件,看类和方法。 |
| class-dump-dyld | 从 dyld 缓存里导头文件。 |
字符串与编辑
strings (系统自带)、rabin2 (radare2 套件)看字符串;010 Editor 等带模板的十六进制编辑器做精细分析。
二、动态分析工具在干啥?
用一句话说清楚
动态分析 就是「让程序跑起来,边跑边看、边改」------下断点、Hook、抓包,相当于看引擎真转起来。记一句:静态搭骨架,动态填血肉。
调试器
| 工具 | 一句话 |
|---|---|
| LLDB | Xcode 自带,功能强,支持 Python 脚本,iOS 调试主力。 |
| debugserver | 跑在设备上的调试服务,电脑端 LLDB 连它。 |
| GDB | 老牌调试器,iOS 上逐渐被 LLDB 替代。 |
运行时注入 / 插桩(Hook)
| 工具 | 一句话 |
|---|---|
| Frida | 动态插桩框架,JS/Python API,Android/iOS 都支持,必学。 |
| Cycript | 混合 Objective-C/JS,运行时查对象、改行为。 |
| Cydia Substrate | 越狱端代码注入框架,很多 Tweak 基于它。 |
| Flex | 越狱插件,运行时改 UI 和行为。 |
网络分析
| 工具 | 一句话 |
|---|---|
| Charles Proxy | 图形化 HTTPS 代理,SSL 解密、改包。 |
| mitmproxy | 命令行 HTTPS 代理,可编程拦截。 |
| Wireshark | 抓包、看协议。 |
| Burp Suite | Web 安全测试常用。 |
注意:抓包、改包仅限授权测试或自己的应用,不要对他人服务做未授权渗透。
三、开发与修改工具
越狱开发框架
| 工具 | 一句话 |
|---|---|
| Theos | 主流越狱开发框架,Logos 语法,Make 编译,打包 deb。 |
| MonkeyDev | 基于 Theos,集成 Xcode,支持越狱 + 非越狱。 |
| iOSOpenDev | 已停更,了解即可。 |
代码注入与重签名
| 工具 | 一句话 |
|---|---|
| fishhook | 符号重绑定,Hook C 函数。 |
| insert_dylib | 往 Mach-O 里注入 dylib。 |
| iOS App Signer | 图形化重签名。 |
| fastlane | 自动化签名、部署。 |
| AppSync Unified | 越狱插件,绕过签名校验装未签名应用。 |
脚本与自动化
Python + frida-tools、objection、ios_resources 等;Ruby 常用来跑 Theos 相关脚本;bash/zsh 做一键编译、安装、抓包等。
四、辅助分析工具
UI 与性能
| 工具 | 一句话 |
|---|---|
| Reveal / Lookin | 运行时看 UI 层级、属性。 |
| FLEX | 应用内调试,看视图、网络、文件。 |
| Instruments | Xcode 自带,性能、内存、CPU。 |
安全与绕过
| 工具 | 一句话 |
|---|---|
| Keychain-Dumper | 导出 Keychain 内容(需授权环境)。 |
| Clutch | 应用解密。 |
| SSL Kill Switch 2 | 禁用/绕过 SSL 证书校验,方便抓包(仅限本地测试)。 |
五、怎么选工具?记一句搭配
入门
Hopper(或 Ghidra)+ class-dump + Frida + MonkeyDev------够你完成「看头文件 → Hook → 调试」一条龙。
进阶
IDA Pro(或继续 Hopper)+ Theos + LLDB + Charles------更偏越狱插件和协议分析。
专业向
Ghidra + radare2 + 自写脚本 + 全工具链------按项目需要组合。
六、法律与使用边界
先说一句法律和道德 :本节提到的反编译、Hook、抓包、重签名等,仅限个人学习、授权测试或安全研究。不要对他人应用、服务做未授权破解、传播或商用。建议用专用设备或虚拟机,和环境隔离。
本节小结
你只要记住这几条就行:
- 静态 = 不运行,看二进制/头文件;动态 = 运行起来调试、Hook、抓包;记一句「静态搭骨架,动态填血肉」。
- 工具按用途记:反汇编(IDA/Hopper/Ghidra/radare2)、头文件(class-dump)、调试(LLDB/debugserver)、Hook(Frida/Substrate)、开发(Theos/MonkeyDev)、抓包(Charles/mitmproxy)。
- 入门一套:Hopper + class-dump + Frida + MonkeyDev 就够开练。
- 所有涉及破解、抓包、传播的,都要在授权/合规前提下使用。
本节术语速查
| 术语 | 一句话解释 |
|---|---|
| 静态分析 | 不运行程序,通过反汇编、反编译、头文件等分析代码结构。 |
| 动态分析 | 运行程序,通过调试、Hook、抓包等观察和修改行为。 |
| Hook | 替换或包装原有函数,在调用前后插入自己的逻辑。 |
| Mach-O | macOS/iOS 可执行文件格式。 |
| deb | Debian 包格式,越狱插件常用此格式分发。 |
本节思考与练习
- 概念:用一句话区别「静态分析」和「动态分析」,并各举一个你学过的工具。
- 应用:若你要「分析某 App 的登录请求是怎么加密的」,你会按什么顺序用哪些工具?(先静态还是先动态?)
- 动手:在「本节术语速查」里任选三个工具,查一下官网或 GitHub,记下一句话用途。
- 综合:给自己定一个「入门工具清单」(至少 4 个),并说明每个在你学习计划里的角色。
下一节预告 :下一节专门讲 Theos 和 MonkeyDev------它俩有啥区别、分别适合啥场景、语法和构建流程怎么选,帮你定好「用哪个框架写 Tweak」。