iOS脱壳工具与方法
App Store下载的包全都是经过苹果加密过的包。苹果不允许开发者自己加密ipa包,加密后的ipa包,我们是无法对其进行反编译的。也无法class-dump,需要对其进行解密才能反编译。因此本文从三种不同砸壳方法进行了阐述。
方式:
- 硬脱壳
- 动态脱壳(仅作了解)
查看mach-o是否脱壳
otool -l ./文件名| grep cryptid
硬脱壳
工具:Clutch、dumpdecrypted、frida(iOS12.0推荐)
Clutch
iOS12越狱设备运行Clutch报错:--->Killed: 9
cd /private/var/mobile/
ldid -e `which bash` > ent.xml
# sign Clutch with the ent. "-Sent.xml" is the correct usage
ldid -Sent.xml `which Clutch`
# inject into trust cache
inject `which Clutch`
dumpdecrypted
- 下载 dumpdecrypted
- 命令行cd到 dumpdecrypted目录下的Makefile
- 输入make,回车
- dumpdecrypted文件夹中,得到dumpdecrypted.dylib动态库
- 登录到手机端,将dumpdecrypted.dylib拷入到目录
- ps -A 查看当前已开启的应用进程
- DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 应用进程路径
// 例子
// 目的是为了让动态库注入到要破解的app中运行
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/ABBD0DF1-9DDA-4212-A8C4-C03BE859F382/WeChat.app/WeChat
frida (iOS12.0推荐)
➜ cd /opt/dump/
➜ cd frida-ios-dump
/usr/bin/python /opt/dump/frida-ios-dump/dump.py
Frida
ios端配置:
1、安装frida
- 启动cydia ,添加软件源:软件源 Sources-> 编辑 Edit(右上角)-> 添加Add(左上角)-> 输入[https://build.frida.re]
- 打开刚刚添加的源安装 Frida
- 安装完成!检查是否工作,可在PC终端安装完frida之后运行 frida-ps -U 查看
2、搜索安装OpenSSH
打开cydia-点击搜索-输入OpenSSH,安装OpenSSH
图片.pngPC端配置:
1、安装Homebrew
图片.png
2、安装python:
brew install python
图片.png3、安装wget:
brew install wget
图片.png
4、安装pip:
sudo python get-pip.py
图片.png
图片.png
5、安装usbmuxd:
brewinstall –-HEAD usbmuxd
图片.png6、清理残留:
rm ~/get-pip.py
图片.pngPs: 使用brew install xxx如果一直卡在Updating Homebrew… 可以control + z结束当前进程 再新开一个终端安装 此时可以跳过更新
安装frida for PC:
1、 终端执行命令安装frida
sudo pip install Frida
图片.png2、 安装frida-tools
sudo pip install frida-tools【frida-tools是frida命令行工具】
图片.png注意:frida和frida-tools二者缺一不可。
假如报以下错误:
-Uninstalling a distutils installed project (six) hasbeen deprecated and will be removed in a future version. This is due to thefact that uninstalling a distutils project will only partially uninstall theproject.
使用以下命令安装:
sudo pip install frida –upgrade –ignore-installed six
配置frida-ios-dump环境:
1、在这里下载砸壳的脚本并解压,然后cd到requirement.txt的录下
图片.png2、安装依赖:
sudo pip install -r ./requirements.txt --upgrade
【这里是安装脚本中依赖的库,./requirements.txt路径根据自己的文件路径修改,请在frida-ios-dump-master文件夹下,执行该指令】
图片.png3、 修改dump.py参数:
vim /home/ubuntu/文档/frida-ios-dump-master/dump.py
找到用户名、密码等信息
图片.png如果你的设备连接密码做了修改需要在目录中的dump.py里面将Password改成你设置的密码。
备注:如果不习惯vim 打开/home/ubuntu/文档/frida-ios-dump-master/dump.py手动编辑。
4、全局操作dump
// dump.py文件路径别名
alias dump="/Users/用户名/Documents/usbmuxd/frida-ios-dump/dump.py"
砸壳演示!
1、 iOS 设备,USB 连接电脑。
2、 打开PC终端,输入iproxy 2222 22把当前连接设备的22端口(SSH端口),映射到电脑的2222端口。
图片.png3、新建终端页面,输入ssh -p 2222 root@127.0.0.1 连接iOS设备。
(尽量用2222端口,曾尝试使用11101端口,脱壳到一半出现重连现象,导致无法继续脱壳,原因查明后再补充)
图片.png
4、dump.py -l 查看需要砸壳的应用。
图片.png5、 dump.py 应用名或bundle id进行砸壳.
./dump.py(cd到dump.py的路径下) 应用名称