第1章:iOS逆向环境搭建

说实话,做iOS逆向这么多年,我见过太多人卡在环境搭建这一步。工具装不上、越狱失败、SSH连不上……各种问题能把人搞崩溃。今天我就把这一整套流程掰开揉碎讲清楚,你跟着走一遍,基本不会出问题。

核心要点:逆向环境搭建是后续所有工作的基础。一个稳定、干净的环境,能让你少踩80%的坑。

1.1 MacOS开发环境配置

我个人习惯用Mac mini或者MacBook Pro做逆向机。为什么?因为Xcode、Theos这些工具在macOS上最顺手。你想想看,要是用Windows,光折腾虚拟机就够你喝一壶的。

必备工具清单:

  • Xcode —— 从App Store下载,至少12.x以上版本
  • Homebrew —— macOS的包管理器,装啥都靠它
  • Python3 —— 很多脚本依赖它
  • Git —— 版本控制,也用来拉取工具源码

安装Homebrew很简单,一行命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

装完之后,用brew安装其他依赖:

brew install python3 git wget

小技巧:我建议你装个iTerm2替代系统自带的终端。分屏、配色、快捷键都强太多,逆向时经常要开多个窗口,iTerm2能让你效率翻倍。

1.2 越狱设备选择与越狱工具

设备选择这块,我踩过不少坑。先说结论:

设备类型 推荐型号 越狱工具 注意事项
iPhone 6s ~ iPhone X iPhone 7 / 8 Checkra1n A11及以下芯片,硬件漏洞,稳定
iPhone Xs ~ iPhone 14 iPhone 11 / 12 unc0ver / Taurine 软件漏洞,依赖系统版本
iPad iPad mini 5 / iPad Pro Checkra1n / unc0ver 看芯片型号

我个人最推荐iPhone 7或8,搭配Checkra1n。为什么?因为Checkra1n利用的是硬件漏洞(checkm8),苹果没法通过系统更新修复。你想想看,这意味着什么?意味着你随便升级iOS,照样能越狱。

我曾经遇到过一台iPhone Xs,系统是iOS 14.3,用unc0ver越狱。结果某天手滑点了系统更新,直接升到14.8,越狱失效,而且当时还没有对应的越狱工具……那叫一个郁闷。从那以后,我主力机就换成了iPhone 7。

Checkra1n使用步骤

  1. 从官网下载Checkra1n(注意:只支持macOS和Linux)
  2. 将iPhone进入DFU模式:按音量+、音量-、长按电源键10秒,再同时按音量-和电源键5秒
  3. 打开Checkra1n,点击"Start"
  4. 按照屏幕提示操作,等待进度条走完
  5. 越狱成功后,手机上会出现Checkra1n图标

注意:Checkra1n越狱后,每次重启手机都需要重新运行Checkra1n。这不是bug,是硬件漏洞越狱的特性。所以别慌,重启后重新跑一遍就行。

1.3 SSH连接与文件传输

越狱之后第一件事是什么?装OpenSSH。没有SSH,你没法远程操作手机,那逆向就无从谈起。

在Cydia或Sileo中搜索"OpenSSH",安装即可。默认密码是alpine,我建议你第一时间改掉:

ssh root@你的手机IP
# 输入密码 alpine
passwd
# 输入新密码

文件传输我常用两种方式:

  • scp —— 简单直接,传单个文件很方便
  • Filza —— 手机端的文件管理器,支持Wi-Fi传输

举个例子,把电脑上的一个二进制文件传到手机上:

scp ./my_binary root@192.168.1.100:/var/root/

避坑指南:我曾经因为Wi-Fi网络不稳定,传大文件时经常断连。后来改用USB连接,用iproxy做端口转发,稳得很。命令是iproxy 2222 22,然后SSH连localhost:2222就行。

1.4 OpenSSH与Cycript安装

OpenSSH装好之后,你就能远程操控手机了。但光有SSH还不够,我们还需要Cycript——一个强大的运行时调试工具。

Cycript的安装方式:

# 通过Cydia安装
# 搜索"Cycript",安装即可

# 或者手动安装
wget https://cydia.saurik.com/debs/cycript_0.9.594.deb
dpkg -i cycript_0.9.594.deb

装好后,在SSH里输入cycript就能进入交互模式。你可以用它来查看UI层级、调用Objective-C方法、甚至修改运行时的变量值。

举个例子,查看当前最顶层的ViewController:

cycript -p SpringBoard
UIApp.keyWindow.rootViewController

嗯,这里要注意:Cycript依赖MobileSubstrate,所以必须先装Cydia Substrate。不然你会遇到"dyld: Library not loaded"的错误。

1.5 Theos工具链安装与配置

Theos是iOS逆向开发的标配。它帮你自动生成tweak项目模板、编译、打包、安装,一条龙服务。

安装Theos:

# 设置环境变量
export THEOS=/opt/theos
sudo mkdir -p $THEOS
sudo chown $(whoami) $THEOS

# 克隆Theos
git clone --recursive https://github.com/theos/theos.git $THEOS

# 安装ldid(签名工具)
brew install ldid

配置环境变量,建议写到~/.zshrc~/.bash_profile里:

export THEOS=/opt/theos
export PATH=$THEOS/bin:$PATH

验证安装:

nic.pl
# 如果看到模板列表,说明安装成功

核心逻辑:Theos + Cycript + SSH,这三样东西构成了iOS逆向的"铁三角"。SSH负责连接,Cycript负责动态分析,Theos负责开发tweak。缺一不可。

下面这张图能帮你理清整个环境搭建的知识体系:

iOS逆向环境搭建知识体系 MacOS开发环境 Xcode / Homebrew / Git 越狱设备与工具 Checkra1n / unc0ver SSH与文件传输 OpenSSH / scp / iproxy Theos工具链 tweak开发 / ldid 依赖关系:越狱设备 → OpenSSH → Cycript → Theos 越狱是基础,SSH是通道,Cycript是探针,Theos是武器 常见问题与解决方案 • SSH连不上:检查手机和电脑是否在同一Wi-Fi,或使用iproxy USB转发 • Cycript启动报错:确认已安装Cydia Substrate,版本要匹配 • Theos编译失败:检查$THEOS环境变量是否正确,ldid是否安装 • 越狱后重启失效:Checkra1n特性,重新运行一次即可

好了,环境搭建这部分就讲到这里。你按照上面的步骤走一遍,基本就能把iOS逆向的"铁三角"搭起来。记住,环境越干净,后面调试越省心。别像我当年一样,图省事跳过某些步骤,结果后面花了两倍时间排查问题。


公众号:蓝海资料掘金营,微信deep3321