关于越狱设备的砸壳和重签名

起因

某app更新了导致不能用,想用历史版本. 并且抓包方法下载不了历史版本, 幸好备用手机上的没有升级,所以 打算砸壳下来,重签名到手机里面用.

几次尝试

  1. frida-ios-dump 进行 砸壳, monkeydev 进行安装,调试的时候就闪退了,
    虽然可以hook掉某些函数来避免闪退,但是原因应该是我的个人开发者账号 没有 开启vpn等一些权限导致的.
  2. 怀疑是不是Plugins里面的执行文件没有解密到导致的,所以用 bagbak来完全砸壳,用爱思助手来安装,发现还是闪退 (不知道爱思助手用的什么签名方式)
  3. CrackerXI+ 进行砸壳,并且勾选 fakesign,可以安装且打开. 但是启动不了 network extension, 应该是没有重签到插件.

最后的成功方案

因为3可以成功,所以从 fakesign入手,得知有 ldid这种越狱设备上的神器… 可以绕过苹果签名(正常情况下砸壳后的执行文件必须再签名才能启动). 用 @ChiChou 老哥的 bagbak 完全砸壳,
ldid -e some 来导出 entitlement.xml,并用这个 entitlement.xml 对主文件和其他Plugins下的执行文件 进行 fakesign 操作 – ldid -Sentitlement.xml some
. 导入安装,完成. (设备上要安装 appsync插件`)

后话

虽然有那么多现成的轮子方便我们砸壳重签,但是之前我并不了解苹果的加密机制,出了问题都不知道是哪出的问题. 加密机制大概了解了以后,思路清晰不少.
就酱紫吧,其实分享的可能是你们都知道的基础:joy::joy:

有个tweak叫AppAdmin,试过没?

我是ios13的,所以试了类似的降级工具 appstore++, 这些工具应该和自己抓包是同个原理,通过改版本id来下载.
但是开发者已经撤回了历史版本,所以都不生效

1 Like