记砸壳工具 frida-ios-dump 的使用

拖延症赖了一个多星期,这篇博文主要记录一下使用 frida-ios-dump 对 App 进行砸壳前的一些准备。

庆哥在 README 中已经写清楚了该工具的用法,我是根据他给的步骤进行的,以下是操作步骤:

环境准备

安装 frida

frida 的安装很简单,我是直接 Google 搜索 frida ,然后根据官网上的文档进行安装的。

macOS 安装

frida 依赖于 python,macOS 已经自带 python 所以不需要再去安装。官网提供了两种安装的方式,我选择使用 pip 自动安装。在终端中输入以下命令回车,然后输入密码即可:sudo pip install frida

在这里我遇到了一个问题,导致安装失败。失败的提示主要是:

Operation not permitted: '/tmp/pip-uW0fNP-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'

这里是说无权限对 six 进行操作,经过一番 Google 之后在 pip 仓库的一个 issue 中找到了解决方法:即安装的时候忽略已安装的 six。

最后通过以下命令安装成功。

sudo pip install frida --ignore-installed six

这里应该是我没有关闭 SIP 而导致的问题,因为在公司的电脑上进行并没有出现这个问题。(PS:公司的电脑是从我的个人电脑迁移数据过去的,除了当时尝试全屏使用 iOS 模拟器而关闭 SIP 之外,没有其它不同的地方)

手机安装

官网同时提供了针对越狱手机和非越狱手机安装的方法。这里我只是在越狱手机上进行了安装,至于非越狱的手机暂时还没有尝试。

越狱手机的安装步骤如下:

  1. 启动 Cydia

  2. 添加软件源

    软件源 Sources-> 编辑 Edit(左上角)-> 添加 Add(右上角)-> 输入 https://build.frida.re

  3. 通过刚才添加的软件源安装 frida 插件。根据手机进行安装:iPhone 5 及之前的机器为 32 位,5s 及之后的机器为 64 位。

安装成功

两个端都安装完成之后可以用 USB 连接手机在 mac 终端中通过 frida-ps -U 命令测试,若输出手机上安装的 App 名称则说明安装成功。

ssh 连接手机

有两种方式连接手机:WiFi 和 USB。WiFi 连接仅需在手机上安装 OpenSSH 即可,USB 连接还需要在 mac 上安装一个工具 iproxy。

安装 OpenSSH

在 Cydia 中安装即可。步骤:Cydia -> 搜索 OpenSSH -> 点击安装

默认用户 root 的密码是:alpine ,连接成功之后使用passwd 命令修改密码。

WiFi 连接

首先需要找到设备的 ip,在 WiFi 详情里可以看到。然后在终端中通过 ssh 连接,命令为 ssh root@ip

这种方式的速度比较慢一点,建议使用 USB 连接。

USB 连接

frida-ios-dump 要求通过 USB 连接手机

有两个工具包都带了 iproxy

  • libimobiledevice
  • usbmuxd

这两个都可以通过 homebrew 安装。安装命令为:brew install libimobiledevicebrew install usbmuxd

安装完成之后在终端中通过 iproxy 命令映射端口:iproxy 2222 22,如图:

iproxy

然后在另一个终端窗口中通过 ssh -p 2222 root@localhost 进行连接即可。

Usb_ssh_connect_iphone

使用 frida-ios-dump

在终端中使用 cd 命令进入 frida-ios-dump 脚本所在的文件夹通过 ./dump.py app名称 命令即可进行砸壳。脚本运行完成之后会在文件夹中生成一个已砸壳的 ipa 文件,非常地方便。

总结

整个过程并不难,如果本来就有逆向基础的话应该非常快就可以做完环境准备,或者说可以直接使用工具了。而我因为没有相关知识,花费了比较多的时间去 Google,不过最后成功砸壳还是挺有成就感的。同时也需要继续学习,搞清楚原理,不能停留在工具的使用上。