一、背景

iOS 手机通过 App Store 安装的应用都经过加密,无法直接进行逆向分析。我们需要对应用进行解密,称为“砸壳”。

我手上的设备是 iPhone 6s,系统是 iOS 13.5.1

二、手机越狱

7438f42620d7b110699c27f2a1e92ad2

安装爱思助手,一键越狱的工具里面有很多个工具(不一定需要安装爱思助手,可以直接从官网下载越狱工具)。

这里主要推荐两个:一个是通过硬件漏洞进行越狱的 checkra1n;一个是通过软件漏洞进行越狱的 Unc0ver

相对来说通过硬件漏洞进行越狱的 checkra1n 会比较稳定,我使用的是 checkra1n。

b8e13fe10d7072773197a107aa6c36bd

b29d4cda912a49aa2a77cf35eedc304e

按照提示进行操作,手机重启后会出现 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

e342217dae5a9c9408068e018665c221

建立端口映射时,终端会一直显示 “waiting for connection”,这是正常的,新建一个终端窗口进行其它操作即可。

四、砸壳

砸壳分为静态砸壳和动态砸壳,静态砸壳是指直接解密磁盘中的应用(难度较高),而动态砸壳是指系统把解密后的 MachO 文件加载到内存中后,将 MachO 文件拷贝出来。

1. 常用工具

常用的砸壳工具有以下三个:

  1. dumpdecrypted
  2. Clutch
  3. frida-ios-dump

其中 frida-ios-dump 最为方便,以下简单介绍 frida-ios-dump 的使用。

2. frida-ios-dump 的简单实用

1) 手机上的操作

  1. 手机上打开 Cydia,添加源 https://build.frida.re;
  2. 搜索 Frida 并安装。

802b59ec02726fab73d54954847e4d01

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 美团

7eab7e9533f3aa7190cff2e7b641940c

164e7df92ed8a59608dea25b12cd9126

3) 验证是否已经砸壳

利用 otool 工具:

otool -l Payload/imeituan.app/imeituan | grep "crypt"

// cryptid 0 已砸壳

ff6f735cf0e6efadfac8efcc9f4d7bc0