Frida 砸壳

https://github.com/AloneMonkey/frida-ios-dump

iOS 端配置

1
2
3
1. 在越狱设备上,打开 cydia,添加源 `https://build.frida.re`
2. 打开添加的源,找出 `frida` 进行安装
3. 安装完成后,可在 ssh 终端运行 `frida-ps -U` 查看,是否成功(实测,command not found 应该也不影响后续的使用)

MAC 端配置

安装 frida-ios-dump

1
2
3
4
5
6
7
# clone 代码
git clone https://github.com/AloneMonkey/frida-ios-dump

# cd 到前一步下载的目录 frida-ios-dump

# 安装需要的依赖
sudo pip install -r requirements.txt --upgrade

电脑和 iOS 设备的端口映射

使用 USB 将设备与电脑相连

1
2
3
4
5
6
7
## SSH证书拷贝
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.26.216.160

## 进行映射,在终端输入(其中 `2222` 代表电脑端的端口,22 是 iOS 设备的端口号,如果发现电脑端端口号已被占用,可以使用新的端口号进行映射
iproxy 2222 22

## 终端显示 `waiting for connection`

砸壳

确保 iOS 设备一直保持 USB 连接,并将想要砸壳的应用打开,cd 到之前下载的 frida-ios-dump 目录,终端执行 python3 dump.py -l 可以查看已安装的应用名称和对应的 bundle Id

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PID  Name           Identifier
---- ------------- ---------------------------
4258 App Store com.apple.AppStore
3366 AsTools pro rn.notes.best
3398 Cydia com.saurik.Cydia
3634 Kuaishou com.jiangjia.gif
3865 Safari com.apple.mobilesafari
3278 Settings com.apple.Preferences
- Authenticator com.google.Authenticator
- Books com.apple.iBooks
- Substitute com.ex.substitute.settings
- Tips com.apple.tips
- Watch com.apple.Bridge
- Weather com.apple.weather
- checkra1n kjc.loader
- iTunes Store com.apple.MobileStore
- unc0ver science.xnu.undecimus
- 小红书 com.xingin.discover
- 快手极速版 com.kuaishou.nebula
- 抖音 com.ss.iphone.ugc.Aweme
- 淘宝 com.taobao.taobao4iphone

执行如下命令,对指定的 bundle id 应用进行砸壳。

1
python3 dump.py com.taobao.taobao4iphone

砸壳成功,可以在 frida-ios-dump 目录下找到 xxx.ipa

加载所有动态库

https://github.com/dengbin9009/DecryptApp

https://github.com/TozyZuo/TZLoadAllLibs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
## 拷贝 libAllFramework 文件到越狱手机中
scp -r -P 2222 libAllFramework.framework root@localhost:~/

## 链接越狱手机
ssh -p 2222 root@localhost

## 查看目录
# 淘宝
ps -ax | grep Taobao4iPhone
5488 ?? 0:37.26 /var/containers/Bundle/Application/6EFCCBDC-6946-42EA-A323-BF9A15AB872A/Taobao4iPhone.app/Taobao4iPhone
5529 ttys000 0:00.01 grep Taobao4iPhone

## 插入我们的动态库
DYLD_INSERT_LIBRARIES=libAllFramework.framework/libAllFramework /var/containers/Bundle/Application/6EFCCBDC-6946-42EA-A323-BF9A15AB872A/Taobao4iPhone.app/Taobao4iPhone

# 抖音
ps -ax | grep Aweme
2905 ?? 2:04.99 /var/containers/Bundle/Application/E9B64D44-CE21-470C-A9F7-A0682E81B1C4/Aweme.app/Aweme
2949 ttys000 0:00.02 grep Aweme

## 抖音
DYLD_INSERT_LIBRARIES=libAllFramework.framework/libAllFramework /var/containers/Bundle/Application/E9B64D44-CE21-470C-A9F7-A0682E81B1C4/Aweme.app/Aweme

# 执行Dump
python3 dump.py com.taobao.taobao4iphone
python3 dump.py com.ss.iphone.ugc.Aweme

如何判断 ipa 是否有壳

1
2
3
4
5
1. 将 ipa 文件后缀改为 zip 进行解压
2. 找到 xxx.app 包内容下的 xxx 二进制可执行文件
3. 在终端执行 `otool -l xx | grep crypt`
4. 找到 `cryptid` 这一行,有壳为 1,已脱壳为 0
如果能成功走到这一步,恭喜,砸壳成功啦

其它方式

1
使用软件 CrackerXI 砸壳工具

手动安装

1
2
3
4
5
# 安装
dpkg -i com.nablac0d3.sslkillswitch2_0.14.deb

# 如果安装 SpringBoard 没自动重启,手动重启
killall -HUP SpringBoard