背景
在iOS中开发的应用程序App,发布到App Store后,然后用户从App Store下载下来安装,这时候安装的APP是经过签名加密的,当使用越狱手机安装App Store中的App,然后获取到自己本地电脑上,这时候的APP包是带有签名的,所以我们需要去解除签名加密,这就是逆向砸壳。
准备
- 越狱后iPhone
- frida
- frida-ios-dump
1. iPhone安装frida
打开cydia商店,添加frida源:https://build.frida.re,然后搜索Frida,安装即可。
Start Cydia and add Frida’s repository by going to Manage -> Sources -> Edit -> Add and enter https://build.frida.re. You should now be able to find and install the Frida package which lets Frida inject JavaScript into apps running on your iOS device.
2. Mac端frida-ios-dump
配置python3环境,因frida依赖高版本python
// 1. 查找当前python3位置
which python3
// *. 如果结果是未安装,则需要先安装python3环境,从python官网下载后安装即可
// 2. 将得到的结果路径配置到.bash_profile或.zshrc
open ~/.bash_profile
// 3. 添加此行:alias python="/usr/local/bin/python3",这个路径对应which python3结果
// 4. 立即生效
source ~/.bash_profile
官方frida-ios-dump
下载后解压到任意目录,cd到frida-ios-dump目录下,执行命令
sudo pip install -r requirements.txt --upgrade
会自动安装需要的程序
3. 检验安装结果
// 1. mac端打开终端
// 2. ssh连接到手机
iproxy 2222 22 &
ssh root@localhost -p 2222
// * 如果iproxy命令不存在,需要安装libimobiledevice,然后重试步骤2
brew install libimobiledevice
// 3. 另开一个终端窗口,检查安装结果
frida-ps -U
// 如果能看到手机中运行的进程,说明frida安装成功
砸壳过程
1. 连接手机
如当前已连接,则忽略则步
// 1. mac端打开终端
// 2. ssh连接到手机
iproxy 2222 22 &
ssh root@localhost -p 2222
2. 执行frida-ios-dump
// 新建一个窗口,cd到frida-ios-dump目录下
./dump.py 微信
窗口中会出现进度,等待完成后,当前窗口所在的目录下会出现一个砸壳后的XXX.ipa包
快捷方式
我通常会将砸壳写成一个快捷指令,用起来方便,但这不是一个必选方式。
新建文件fast_frida,写入以下命令,注意将frida_path替换为你自己的frida安装目录。
# 砸壳指令
frida_path = "~/frida-ios-dump-master"
if [ -z "$1" ]; then
echo "请输入App名称"
exit
fi
mkdir -p $HOME/frida-dump-apps/$1
python3 $frida_path/dump.py $1 -o $HOME/frida-dump-apps/$1/$1
保存,赋权chmod 777 fast_frida,将fast_frida移动到/usr/local/bin下,新开终端窗口即可使用。如:
fast_frida 相机
将在~/frida-dump-apps目录下生成相机文件夹,及相机.ipa