第一节 基础环境准备
学习目标
学完本节,希望你能够:
阅读提示:术语(如 Theos、Frida、Hook)第一次出现时会用括号简单解释;各工具的详细安装在后续章节展开。
常见疑问:一定要越狱机吗?——做越狱插件、系统级修改必须越狱;只做非越狱注入可以用 MonkeyDev 重签名,但调试和分析仍建议有一台越狱设备。
一、基础环境要啥?
用一句话说清楚
说白了就是:一台 macOS 电脑 + 一套苹果开发工具 + 包管理器 + 一台越狱 iOS 设备(可选但推荐)。下面按「在干啥、为啥要干、一般怎么干」来说。
macOS 系统要求
- macOS 10.14 及以上(建议用较新版本,避免工具不兼容)。
- Xcode:从 App Store 安装即可,逆向用的主要是命令行工具和 SDK。
- 命令行工具:装完 Xcode 后执行一次:xcode-select –install
记一句:没装 Command Line Tools,后面很多命令会报错,先装上再继续。
Homebrew 包管理器
Homebrew(俗称「brew」)是 macOS 上常用的包管理工具,后面装 Python、dpkg、Frida 等都会用到。
安装命令(复制到终端执行即可):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
装完后按提示把 brew 加入 PATH(安装结束时会有说明)。
二、必备工具怎么装?
Python 环境
逆向脚本、Frida、objection 等很多工具依赖 Python3。一般这么干:
brew install python3
pip3 install –upgrade pip
越狱相关工具
- dpkg、ldid:打包 deb、给二进制签名,越狱开发必备。
- libimobiledevice、usbmuxd:用 USB 连手机、端口转发,方便 SSH 和安装。
brew install dpkg ldid
brew install libimobiledevice usbmuxd
逆向分析工具(先装会用到的)
| 反汇编/反编译 | Hopper、radare2 等 | 后面「开发工具」一节会列全,这里先装 class-dump、otool、nm(看头文件、Mach-O、符号)。 |
| 动态分析 | Frida | 运行时插桩、Hook,必装。 |
| 静态分析 | class-dump、otool、nm | 系统自带或 brew 安装。 |
# 头文件导出、Mach-O 分析(按需安装)
brew install class-dump # Objective-C 头文件导出
# otool、nm 通常随 Xcode 已有
# 动态分析
brew install frida
pip3 install frida-tools
注意:仅用于自己学习或授权环境,不要对他人应用做未授权的逆向或传播。
三、越狱设备咋配置?
设备越狱
不同系统版本用不同越狱工具,了解即可,按你手里的系统选:
- iOS 15–16: palera1n
- iOS 14: checkra1n
- iOS 13 及以下:unc0ver 或 checkra1n
越狱后要装的插件
在 Cydia/Sileo 里装这些,后面会用到:
- OpenSSH:远程连设备。
- Filza File Manager:文件管理。
- NewTerm 2:设备上跑终端。
- AppSync Unified:安装未签名应用。
- Frida:动态插桩。
- Cycript:运行时分析(可选)。
SSH 怎么连?
记成一句话:USB 插上 → 用 usbmuxd 做端口转发 → 用 SSH 连本机端口。
# 端口转发(设备 22 → 本机 2222)
iproxy 2222 22 &
# 连接
ssh -p 2222 root@localhost
默认密码是 alpine,首次登录后务必马上改密码(见本节「安全注意事项」)。
四、开发工具安装(概要)
本节只说明「要装啥」,具体步骤在后续节讲。
Theos(越狱开发框架)
用来写 Tweak、打包成 deb、装到越狱机。安装好后要配置 THEOS、PATH,以及设备 IP/端口(如 THEOS_DEVICE_IP=localhost、THEOS_DEVICE_PORT=2222)。详见第 4、5 节。
MonkeyDev(逆向/插件开发)
基于 Theos,集成 Xcode,支持越狱和非越狱。装法见第 3 节。
调试工具(debugserver、LLDB)
设备端用 debugserver,电脑端用 LLDB 连上去调试。配置稍复杂,后面用到时再细讲。
五、辅助工具(按需)
网络分析
- Charles、mitmproxy:抓包、看 HTTPS。设备 Wi-Fi 代理设成电脑 IP 和对应端口即可。
文件与脚本
- MachOView、binwalk、strings 等:看 Mach-O、固件、字符串。
- objection:Frida 的 CLI,可 pip3 install objection。
六、环境验证
装完一大串东西,怎么确认没问题?跑下面几条就行。
测 Theos
nic.pl # 能弹出模板选择界面就说明 Theos 可用
测 Frida
frida-ps -U # 设备连好后,应能看到进程列表
测设备连接
idevice_id -l # 应显示设备 UDID
七、常见问题与更新
常见问题一句话
| Theos 编译报错 | SDK 版本不对 | 检查 iOS SDK 版本、Makefile 里 TARGET |
| Frida 连不上 | 设备端服务没跑 | 重启 frida-server 或重装 Frida |
| SSH 连不上 | 端口转发没开 | 检查 usbmuxd、iproxy |
| 应用闪退 | 签名或权限 | 检查代码签名和权限配置 |
定期更新
brew update && brew upgrade
pip3 install –upgrade frida-tools objection
八、安全注意事项
passwd
passwd mobile
本节小结
你只要记住这几条就行:
本节术语速查
| Theos | 越狱开发框架,用来写 Tweak、打包 deb、安装到越狱设备。 |
| Frida | 动态插桩框架,能在运行时 Hook 函数、改行为。 |
| Hook | 把程序原有的函数替换成自己的代码,再选择是否调用原函数。 |
| ldid | 越狱环境下常用的签名工具,给二进制打签名。 |
| usbmuxd | 通过 USB 转发设备服务(如 SSH)到本机端口的守护进程。 |
本节思考与练习
下一节预告:下一节会系统梳理「开发工具」——静态分析、动态分析、开发框架、抓包等各用啥工具、怎么选,方便你按需装、按需学。