砸壳

743 阅读2分钟

最近哥哥问我在iPhone上能不能实现类似于安卓端的一个应用有两个客户端的实现。几年前就和哥哥探讨过这个问题,我当时的方案是重签名的方式,说明利弊之后,当时也没采用我的这种方式,是去某宝购买的安装方式(后来了解到是某信的TestFight Beta版)。现在哥哥让我帮他搞一个试试,那么我就总结一下我的研究成果。

方案一:重签名

重签名的话需要先砸壳,这篇文章也主要是介绍砸壳的整个过程。

这个方案有一个致命缺点:不能接收推送,还有可能会被官方封号。

方案二:官方TestFight Beta版

只有3个月的有效期,快到期的时候需要备份聊天记录,不然会丢失。

下面主要介绍一下砸壳的整个过程

iPhone端配置

  1. 打开cydia 添加源:build.frida.re
  2. 安装frida

Mac端配置

  1. 安装pip:安装失败的话自行寻找安装方法,网上有很多
sudo easy_install pip
  1. 安装frida
sudo pip install frida-tools
  1. 安装脚本依赖环境
sudo pip install -r requirements.txt --upgrade
  1. 开启ssh通道

使用爱思助手工具箱打开SSH通道

截屏2022-02-24 上午10.06.20.png

  1. 修改dump.py,将密码端口修改成自己的
User = 'root' 
Password = 'alpine' 
Host = '127.0.0.1' 
Port = 2222

root用户默认密码是:alpine

砸壳

  1. 登录到手机ssh root@手机wifi的IP地址

    连接上之后输入

    exit
    

    退出

  2. 手机上打开你要脱壳的应用

  3. 新建终端窗口 cd 到frida-ios-dump-master目录下执行python3 ./dump.py -l,可以查看项目的bundle id

  4. 然后执行 sudo python3 ./dump.py com.xx.xx开始砸壳

  5. 砸壳成功后,frida-ios-dump-master目录下就有砸壳后的ipa文件了

otool -l [ipa解压->xxx.app->显示包内容->找到二进制文件] |grep crypt

otool -l WeChat | grep crypt

截屏2022-02-23 下午6.53.52.png

看到cryptid 0 说明已经砸壳成功了,可以进行后续的hook操作了。

关于重签名的流程可以参考我之前代码注入的文章:

iOS代码注入