2.开发工具

第二节 开发工具

学习目标

学完本节,希望你能够:

  1. 说出 iOS 逆向里「静态分析」和「动态分析」各在干啥、用啥工具。
  2. 按用途区分几类工具:反汇编/反编译、调试、Hook/插桩、抓包、重签名等,并能各举一两个例子。
  3. 根据自己是入门还是进阶,选出一套适合自己的工具组合。
  4. 知道常用工具的一句话用途,查表能对上号。

阅读提示:工具很多,本节以「分类 + 一句话说明」为主,具体安装和用法在基础环境、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-toolsobjectionios_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、抓包、重签名等,仅限个人学习、授权测试或安全研究。不要对他人应用、服务做未授权破解、传播或商用。建议用专用设备或虚拟机,和环境隔离。


本节小结

你只要记住这几条就行:

  1. 静态 = 不运行,看二进制/头文件;动态 = 运行起来调试、Hook、抓包;记一句「静态搭骨架,动态填血肉」。
  2. 工具按用途记:反汇编(IDA/Hopper/Ghidra/radare2)、头文件(class-dump)、调试(LLDB/debugserver)、Hook(Frida/Substrate)、开发(Theos/MonkeyDev)、抓包(Charles/mitmproxy)。
  3. 入门一套:Hopper + class-dump + Frida + MonkeyDev 就够开练。
  4. 所有涉及破解、抓包、传播的,都要在授权/合规前提下使用。

本节术语速查

术语 一句话解释
静态分析 不运行程序,通过反汇编、反编译、头文件等分析代码结构。
动态分析 运行程序,通过调试、Hook、抓包等观察和修改行为。
Hook 替换或包装原有函数,在调用前后插入自己的逻辑。
Mach-O macOS/iOS 可执行文件格式。
deb Debian 包格式,越狱插件常用此格式分发。

本节思考与练习

  1. 概念:用一句话区别「静态分析」和「动态分析」,并各举一个你学过的工具。
  2. 应用:若你要「分析某 App 的登录请求是怎么加密的」,你会按什么顺序用哪些工具?(先静态还是先动态?)
  3. 动手:在「本节术语速查」里任选三个工具,查一下官网或 GitHub,记下一句话用途。
  4. 综合:给自己定一个「入门工具清单」(至少 4 个),并说明每个在你学习计划里的角色。

下一节预告 :下一节专门讲 Theos 和 MonkeyDev------它俩有啥区别、分别适合啥场景、语法和构建流程怎么选,帮你定好「用哪个框架写 Tweak」。

相关推荐
长沙火山2 天前
第二十节_Android_加固原理
逆向·安卓逆向
长沙火山3 天前
第十六节_分析_WebSocket_API_请求
逆向·安卓逆向
长沙火山3 天前
第十三节_绕过_SSL_Pinning
逆向·安卓逆向
长沙火山3 天前
第十四节_Android_代码混淆与解混淆
逆向·安卓逆向
长沙火山4 天前
第二节_如何反编译_APK
逆向·安卓逆向
长沙火山4 天前
第七节_动态调试入门
逆向·安卓逆向
长沙火山4 天前
第十九节_Android_APP_安全机制
逆向·安卓逆向
长沙火山5 天前
第十七节_ELF_文件解析
逆向·安卓逆向
长沙火山5 天前
第十三节_Android_APP_目录结构
逆向·安卓逆向