一、引言
大家都知道,在进行非越狱开发的过程中,需要对第三方应用的包进行重签名,并向MachO文件实行相关自定义库的注入操作,而这些都离不开需要对原始的二进制进行砸壳,原因是AppStore上的应用在开发者提交上去的时候都进行了加密。
虽然对于版本要求不高的应用可以通过PP助手直接下载已经砸壳的应用,但是仍有一些需求需要直接拿到当前线上版本的应用来进行处理,这就不得不需要自行掌握砸壳的一些技巧或方式。
二、事项
砸壳方式
目前提供了两种方式,一种手动lldb进行砸壳;一种是运用工具砸壳,工具砸壳又分为两种:静态砸壳(Clutch)及动态砸壳(dumpdecrypt, frida-ios-dump)。
其中静态砸壳局限较高,是硬性解密的过程,而动态砸壳是通过读取加载到内存中的信息进行Mach-O文件的解密替换。
局限性
目前砸壳只能通过越狱手机来做,并且最终的Mach-O可执行文件只会对当前砸壳用的越狱手机架构解密,可通过otool -l xxx | grep -B 2 crypt
来查看解密状态。
运用frida-ios-dump工具这种动态砸壳的方式进行砸壳