起因
某app更新了导致不能用,想用历史版本. 并且抓包方法下载不了历史版本, 幸好备用手机上的没有升级,所以 打算砸壳下来,重签名到手机里面用.
几次尝试
- 用
frida-ios-dump
进行 砸壳,monkeydev
进行安装,调试的时候就闪退了,
虽然可以hook掉某些函数来避免闪退,但是原因应该是我的个人开发者账号 没有 开启vpn等一些权限导致的. - 怀疑是不是Plugins里面的执行文件没有解密到导致的,所以用
bagbak
来完全砸壳,用爱思助手来安装,发现还是闪退 (不知道爱思助手用的什么签名方式) - 用
CrackerXI+
进行砸壳,并且勾选fakesign
,可以安装且打开. 但是启动不了network extension
, 应该是没有重签到插件.
最后的成功方案
因为3可以成功,所以从 fakesign
入手,得知有 ldid
这种越狱设备上的神器… 可以绕过苹果签名(正常情况下砸壳后的执行文件必须再签名才能启动). 用 @ChiChou 老哥的 bagbak
完全砸壳,
ldid -e some
来导出 entitlement.xml,并用这个 entitlement.xml 对主文件和其他Plugins下的执行文件 进行 fakesign 操作 – ldid -Sentitlement.xml some
. 导入安装,完成. (设备上要安装 appsync
插件`)
后话
虽然有那么多现成的轮子方便我们砸壳重签,但是之前我并不了解苹果的加密机制,出了问题都不知道是哪出的问题. 加密机制大概了解了以后,思路清晰不少.
就酱紫吧,其实分享的可能是你们都知道的基础