引言
越狱安装都是砸过壳的App,我们一直用的pp助手去下载越狱的ipa,那么正版的ipa是怎么砸壳的?
操作
- 需要在一个越狱手机上面安装一个正版的APPA
- 用USB访问IPhone,打开AppA,输入命令找到APPA的进程
xxx-iPhone:~ root# ps -A
7085 ?? 0:03.61 /var/containers/Bundle/Application/84BADE72-308A-4267-B071-BFAFA5DF7AF8/xxx.app/xxx
7086 ttys000 0:00.01 ps -A
- 将APP包copy出来(由于我是非完美越狱,ifunbox不好使之能看到Mobile目录内容,所以先Copy到Mobile,在Copy到Mac)
MachO打开app的MachO文件 里面有一个 LC_ENCRYPTION_INFO_64
arm 64的 ,crypt ID(identifier) = 1 加密的标示 如果是1加密 0非加密
/**还可以otool查找加密信息**/
$ tool -l MachO
$ tool -l MachO | grep crypt
apple加密、解密
- 就是对app的加密
- 加密的应用没法执行
- iOS 系统有解密的方法,安装到手机以后解密应用
- apple自己加密肯定也能自己解密
加密的过程
MachO-->apple加密-->加壳文件
安装的过程
安装的是加壳文件-->系统解密->MachO文件(dyld)(已经解过密)
解密方式(猜想?)
第一种动态:启动加载MachO的时候从内存copy出来
第二种静态:不用加载MachO,直接用系统的解密程序把app进行解密,把文件写进来
1.DRM(数字版权管理)检查,
2.选择合适的arm架构,操作系统去解密
3.使用DYLD加载解密的MachO,生成新的MachO文件
砸壳工具
Clutch 静态砸壳
dumpdecripted 动态砸壳