一、背景
iOS 手机通过 App Store 安装的应用都经过加密,无法直接进行逆向分析。我们需要对应用进行解密,称为“砸壳”。
我手上的设备是 iPhone 6s
,系统是 iOS 13.5.1
二、手机越狱
安装爱思助手,一键越狱的工具里面有很多个工具(不一定需要安装爱思助手,可以直接从官网下载越狱工具)。
这里主要推荐两个:一个是通过硬件漏洞进行越狱的 checkra1n;一个是通过软件漏洞进行越狱的 Unc0ver。
相对来说通过硬件漏洞进行越狱的 checkra1n 会比较稳定,我使用的是 checkra1n。
按照提示进行操作,手机重启后会出现 checkra1n 应用,打开应用安装 Cydia (这个过程手机需要连接代理)。
注意:不同的越狱工具,对手机跟系统都有要求,太新的设备或者太新的系统都有可能不支持,需要仔细阅读官网的文档。另外,保证手机的重要资料都已经备份。
三、通过 SSH 连接手机
1. Wi-Fi
手机安装 Cydia 后,默认安装了 OpenSSH,可以直接通过 Wi-Fi 或者 USB 连接手机。
ssh root@your_device_ip_address
// 密码默认为 alpine
2. USB
// 安装 usbmuxd
brew install usbmuxd
// 建立端口映射(把 2222 映射到 22)
iproxy 2222 22
// 建立 ssh 连接
ssh -p 2222 root@localhost
建立端口映射时,终端会一直显示 “waiting for connection”,这是正常的,新建一个终端窗口进行其它操作即可。
四、砸壳
砸壳分为静态砸壳和动态砸壳,静态砸壳是指直接解密磁盘中的应用(难度较高),而动态砸壳是指系统把解密后的 MachO 文件加载到内存中后,将 MachO 文件拷贝出来。
1. 常用工具
常用的砸壳工具有以下三个:
其中 frida-ios-dump 最为方便,以下简单介绍 frida-ios-dump 的使用。
2. frida-ios-dump 的简单实用
1) 手机上的操作
- 手机上打开 Cydia,添加源
https://build.frida.re
; - 搜索
Frida
并安装。
2) Mac上的操作
// 1. 克隆 frida-ios-dump
git clone https://github.com/AloneMonkey/frida-ios-dump.git
// 2. 安装环境
sudo pip3 install -r requirements.txt --upgrade
// 3. 获取应用名称
frida-ps --usb
// 4. 建立端口映射(把 2222 映射到 22)
iproxy 2222 22
// 5. 运行脚本,参数为应用显示名称或者 Bundle Id
// 这个过程需要打开应用(应用已加载到内存中)
./dump.py 美团
3) 验证是否已经砸壳
利用 otool 工具:
otool -l Payload/imeituan.app/imeituan | grep "crypt"
// cryptid 0 已砸壳