最近哥哥问我在iPhone上能不能实现类似于安卓端的一个应用有两个客户端的实现。几年前就和哥哥探讨过这个问题,我当时的方案是重签名的方式,说明利弊之后,当时也没采用我的这种方式,是去某宝购买的安装方式(后来了解到是某信的TestFight Beta版)。现在哥哥让我帮他搞一个试试,那么我就总结一下我的研究成果。
方案一:重签名
重签名的话需要先砸壳,这篇文章也主要是介绍砸壳的整个过程。
这个方案有一个致命缺点:不能接收推送,还有可能会被官方封号。
方案二:官方TestFight Beta版
只有3个月的有效期,快到期的时候需要备份聊天记录,不然会丢失。
下面主要介绍一下砸壳的整个过程
iPhone端配置
- 打开cydia 添加源:build.frida.re
- 安装frida
Mac端配置
- 安装pip:安装失败的话自行寻找安装方法,网上有很多
sudo easy_install pip
- 安装frida
sudo pip install frida-tools
- 安装脚本依赖环境
sudo pip install -r requirements.txt --upgrade
- 开启ssh通道
使用爱思助手工具箱打开SSH通道
- 修改dump.py,将密码端口修改成自己的
User = 'root'
Password = 'alpine'
Host = '127.0.0.1'
Port = 2222
root用户默认密码是:alpine
砸壳
-
登录到手机
ssh root@手机wifi的IP地址连接上之后输入
exit退出
-
手机上打开你要脱壳的应用
-
新建终端窗口 cd 到
frida-ios-dump-master目录下执行python3 ./dump.py -l,可以查看项目的bundle id -
然后执行
sudo python3 ./dump.py com.xx.xx开始砸壳 -
砸壳成功后,
frida-ios-dump-master目录下就有砸壳后的ipa文件了
otool -l [ipa解压->xxx.app->显示包内容->找到二进制文件] |grep crypt
otool -l WeChat | grep crypt
看到cryptid 0 说明已经砸壳成功了,可以进行后续的hook操作了。
关于重签名的流程可以参考我之前代码注入的文章: