拖延症赖了一个多星期,这篇博文主要记录一下使用 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 之外,没有其它不同的地方)
手机安装
官网同时提供了针对越狱手机和非越狱手机安装的方法。这里我只是在越狱手机上进行了安装,至于非越狱的手机暂时还没有尝试。
越狱手机的安装步骤如下:
- 启动 Cydia
添加软件源
软件源
Sources
-> 编辑Edit
(左上角)-> 添加Add
(右上角)-> 输入https://build.frida.re
通过刚才添加的软件源安装 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 libimobiledevice
和 brew install usbmuxd
安装完成之后在终端中通过 iproxy 命令映射端口:iproxy 2222 22
,如图:
然后在另一个终端窗口中通过 ssh -p 2222 root@localhost
进行连接即可。
使用 frida-ios-dump
在终端中使用 cd
命令进入 frida-ios-dump 脚本所在的文件夹通过 ./dump.py app名称
命令即可进行砸壳。脚本运行完成之后会在文件夹中生成一个已砸壳的 ipa 文件,非常地方便。
总结
整个过程并不难,如果本来就有逆向基础的话应该非常快就可以做完环境准备,或者说可以直接使用工具了。而我因为没有相关知识,花费了比较多的时间去 Google,不过最后成功砸壳还是挺有成就感的。同时也需要继续学习,搞清楚原理,不能停留在工具的使用上。