砸壳ipa概览

什么是壳?

,在安全和逆向领域,泛指:用技术手段,给原程序额外加上一层保护程序

什么是iOS的app的壳?

iOS中的app,发布渠道一般都是App Store

App Store下载的APP全都是经过苹果加密过的ipa包。

而Apple会为了安全,给app加密(使用Apple ID相关的对称加密算法),这个过程俗称为:加壳,就像给app外部上加了一层壳

add_shell_before_after

而加密后的ipa包,是无法继续后续的逆向过程的

  • 后续的典型的逆向过程是
    • IDA/Hopper等去反编译
    • class-dump等去导出头文件
      • 说明
        • class-dump直接去导出,未砸壳的,App Store上的二进制的话
          • 只能导出CDStructures.h这个空的头文件,无法得到想要的各种类的头文件
    • 对砸壳后的ipa,去用MonkeyDev动态调试
    • 等等

什么是iOS的砸壳 + 如何砸壳?

想要破解分析iOS的app之前,需要把这层壳砸破=砸壳=脱壳

  • 砸壳有两种机制
    • 静态砸壳:使用已知的解密方法对软件进行解密叫静态砸壳,静态砸壳难度大,需要知道其软件的加密算法才能对其解密
      • 现在没有这种工具
    • 动态砸壳
      • 现在绝大多数工具都是用此方式

如何(动态)砸壳呢?就要先了解app运行机制:app程序运行起来都会直接在内存解密出原始代码

ios_crack_shell_logic

可以在越狱的设备里面通过内存dump方式提取解密后的程序,这种解密过程,也就是给app去壳的过程,又称为砸壳=破壳

  • 额外说明
    • 解密之后还需要手动恢复Mach-O头信息才能运行
    • 由于高版本非完美越狱里面,都没有删掉签名验证
      • 所以直接运行都会出现killed 9
        • 需要手动签名之后才能使用

砸壳的前提

results matching ""

    No results matching ""