砸壳ipa概览
什么是壳?
壳,在安全和逆向领域,泛指:用技术手段,给原程序额外加上一层保护程序
什么是iOS的app的壳?
iOS中的app,发布渠道一般都是App Store。
从App Store下载的APP全都是经过苹果加密过的ipa包。
而Apple会为了安全,给app加密(使用Apple ID相关的对称加密算法),这个过程俗称为:加壳,就像给app外部上加了一层壳
而加密后的ipa包,是无法继续后续的逆向过程的
后续的典型的逆向过程是
用IDA/Hopper等去反编译
用class-dump等去导出头文件
说明
class-dump直接去导出,未砸壳的,App Store上的二进制的话
只能导出CDStructures.h这个空的头文件,无法得到想要的各种类的头文件
对砸壳后的ipa,去用MonkeyDev动态调试
等等
什么是iOS的砸壳 + 如何砸壳?
想要破解分析iOS的app之前,需要把这层壳砸破=砸壳=脱壳。
砸壳有两种机制
静态砸壳:使用已知的解密方法对软件进行解密叫静态砸壳,静态砸壳难度大,需要知道其软件的加密算法才能对其解密
现在没有这种工具
动态砸壳
现在绝大多数工具都是用此方式
如何(动态)砸壳呢?就要先了解app运行机制:app程序运行起来都会直接在内存解密出原始代码
可以在越狱的设备里面通过内存dump方式提取解密后的程序,这种解密过程,也就是给app去壳的过程,又称为砸壳=破壳
额外说明
解密之后还需要手动恢复Mach-O头信息才能运行
由于高版本非完美越狱里面,都没有删掉签名验证
所以直接运行都会出现killed 9
需要手动签名之后才能使用
砸壳的前提
确保iOS设备(iPhone等)已越狱
详见:
iOS逆向开发:iPhone越狱
crifan.org,使用署名4.0国际(CC BY 4.0)协议发布 all right reserved,powered by Gitbook最后更新:
2023-10-08 09:58:16