ipa应用砸壳
首先了解什么是应用砸壳:我们提交到App Store发布的App都是经过Apple加密的,这样可以确保安装到我们手机的应用都是苹果审核授权的,当然通过企业级证书或者开发者证书生成的App是不需要砸壳的。对于App Store加密的应用,我们无法通过Hopper等反编译静态分析,也无法class-dump,在逆向分析过程中,需要对加密的二进制文件进行解密才可以进行静态分析,这一过程就是大家熟知的砸壳。
砸壳主要有两种方式:
静态砸壳
静态砸壳就是在已经掌握和了解到了壳应用的加密算法和逻辑后,在不运行壳应用程序的前提下将壳应用程序进行解密处理。静态脱壳的方法难度大,而且加密方发现应用被破解后,就可能会改用更加高级和复杂的加密技术。
动态砸壳
动态砸壳就是从运行在进程内存空间中的可执行程序映像(image)入手,来将内存中的内容进行转储(dump)处理来实现脱壳处理。这种方法实现起来相对简单,且不必关心使用的是何种加密技术。所以目前市面上的砸壳工具都是基于动态砸壳进行的。
重新签名
Apple 应用的分发一般有以下几种方式:
最常用的是从App store下载应用。这种下发方式不受设备数的限制,只要上线App store 的应用,都会被Apple进行签名加密.
第二种方式是申请企业账号,把我们的应用通过企业账号进行签名,从而绕过App store恼人的审核机制,达到分发应用的目的。这种方法分发数目也不受限制.
第三种是通过TestFlight进行测试版本的分发,他分为内部测试人员与外部测试人员。通过分发外部测试人员,最多能给1万名用户进行分发安装.
第四种开发人员通过添加设备ID安装应用,最多可以注册100台设备.
不同的开发者账号对应着App不同的分发方式,我们申请完成开发者账号后,创建应用Id,然后创建其对应证书,描述文件等一系列动作,实际已经决定了它的分发方式了??梢哉庋斫猓好恳桓鲇τ肐d后面对应一套证书,这套证书决定了你应用的分发方式。重签名就是为当前的应用换一套应用Id与证书,从而达到分发应用的目的。现实的需求是,如果你上线App Store的应用,想通过企业账号的形式进行分发,而你又没有源码,或是想探究一下应用双开,那么重签名就派上用场了。