[从基础学逆向] 5. App砸壳

820 阅读2分钟

背景

在iOS中开发的应用程序App,发布到App Store后,然后用户从App Store下载下来安装,这时候安装的APP是经过签名加密的,当使用越狱手机安装App Store中的App,然后获取到自己本地电脑上,这时候的APP包是带有签名的,所以我们需要去解除签名加密,这就是逆向砸壳。

准备

  1. 越狱后iPhone
  2. frida
  3. frida-ios-dump

1. iPhone安装frida

打开cydia商店,添加frida源:build.frida.re,然后搜索Frida,安装即可。

Start Cydia and add Frida’s repository by going to Manage -> Sources -> Edit -> Add and enter 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安装成功

image.png

砸壳过程

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