一、加壳
ipa包上传到AppStore上 会对可执行文件进行加壳操作
定义:利用特殊的算法,对可执行文件的编码进行改变(比如压缩,加密),以达到保护程序代码的目的
二、脱壳
定义:摘掉壳程序,将未加密的可执行文件还原出来(也有称 “砸壳”)
脱壳主要有2种方法:硬脱壳,动态脱壳
常用工具:
1、Clutch :https://github.com/KJCracks/Clutch/releases
a、 Clutch - i : 列出手机上的所有有壳的应用
b、Clutch -d (number或者bundle id)
c、class-dump -H Match-O -o Headers (导出所有的.h文件)
2、dumpdecrypted : https://github.com/stefanesser/dumpdecrypted (有安装失败问题,单独记录下吧)
a、将dylib文件拷贝到iPhone中 (root用户 建议放/var/root目录)
b、终端进入dylib所在目录
c、使用环境变量DYLD_INSERT_LIBRARIES将dylib注入到需要脱壳的可执行文件
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/B2ED1A51-4EA8-44DD-9157-19B9A7E41ACE/xxx.app/xxx
d、.decrypted 文件就是脱壳后的可执行文件
即 xxx.decrypted
3、如何验证Mach-O文件是否加壳
otool -l /Users/xxxx/Desktop/Pojie01/ting | grep cryptid
cryptid 为 1 加密 为 0 未加密
4、