万物(wù)互联时代,App扮演着越来越重要的角色,新(xīn)模式、新(xīn)业态的不断涌现,一方面,带来了更多(duō)机遇,另一方面,也面临着更多(duō)安(ān)全挑战。安(ān)全加固是保障App安(ān)全运营、降低安(ān)全风险的重要手段,作(zuò)為(wèi)國(guó)内知名(míng)的移动信息安(ān)全服務(wù)提供商(shāng),爱加密通过不断升级安(ān)全加固技(jì )术、提升安(ān)全防护能(néng)力,全方位保护App的安(ān)全。以下是对iOS加固技(jì )术路線(xiàn)的浅谈及解析:
什么是Bitcode?
我们在分(fēn)析iOS加固之前,首先来看一看iOS编码过程中(zhōng)的Bitcode代码,目前苹果采用(yòng)的编译器工(gōng)具(jù)链是LLVM,Bitcode是LLVM编译器的中(zhōng)间代码的一种编码,这种中(zhōng)间编码能(néng)根据不同目标机器芯片平台转换為(wèi)相应的汇编指令以及翻译為(wèi)机器码。Bitcode仅仅是中(zhōng)间码不能(néng)直接在CPU上执行,但它可(kě)以转化為(wèi)几乎所有(yǒu)架构CPU上可(kě)执行的本地机器指令。
Xcode14开始,IPA包中(zhōng)默认不带入Bitcode代码(苹果的设备多(duō)元性发生变化),但Bitcode作(zuò)為(wèi)苹果开发代码编译过程中(zhōng)的中(zhōng)间代码则是一直存在的,所以我们仍可(kě)以使用(yòng)Bitcode的模式对iOS进行加固。
Bitcode打包模式的优势
开启Bitcode,可(kě)以使得开发者上传App时只需上传Intermediate Representation(中(zhōng)间件),而非最终的可(kě)执行二进制文(wén)件。 在用(yòng)户下载App之前,AppStore会自动编译中(zhōng)间件,产(chǎn)生设备所需的执行文(wén)件供用(yòng)户下载安(ān)装(zhuāng)。以后新(xīn)设计了新(xīn)指令集的新(xīn)CPU,可(kě)以继续从这份Bitcode开始编译出新(xīn)CPU上执行的可(kě)执行文(wén)件,以供用(yòng)户下载安(ān)装(zhuāng)。
iOS加固技(jì )术路線(xiàn)
Bitcode模式加固(Xcode插件加固、IPA加固)
通过获取IPA编译过程中(zhōng)的Bitcode代码进行加密,可(kě)以采用(yòng)Xcode插件模式,直接在打包IPA过程中(zhōng)进行混淆加固,也可(kě)以打包IPA时在IPA中(zhōng)保留Bitcode代码,然后使用(yòng)加固平台对IPA包进行混淆加固。在不影响原始逻辑的同时模糊代码执行流程,提高代码的复杂度和被逆向的难度。
同时,因為(wèi)整个处理(lǐ)过程為(wèi)IPA打包的中(zhōng)间代码(Bitcode),最终编译成IPA包后,完全符合iOS规则要求,对性能(néng)影响较低,不影响上架审核。
源码模式加固(源到源)
直接对源码工(gōng)程进行混淆的方式进行加固保护。
该加固模式非打包模式的加固方式,代码混淆完成后為(wèi)一套混淆后的源码工(gōng)程。
汇编模式加固(IPA)
目前,部分(fēn)厂商(shāng)实现的IPA加固便是采用(yòng)此技(jì )术路線(xiàn)。该方式是对打包后的IPA进行反汇编,然后对汇编代码进行加固处理(lǐ)的方式进行加固保护。加固时通过二进制代码段重构,将方法指令进行加密,在运行时先解密还原后再执行原指令。该操作(zuò)在重构代码段时要考虑被加密指令中(zhōng)相对引用(yòng)地址超限的问题,需要兼容适配多(duō)种类型指令,兼容性影响较大;同时汇编加密需要重构Mach-o结构, 不同的iOS版本的Mach-o结构存在差异,上架容易被拒。
iOS各技(jì )术路線(xiàn)效果及影响
等级排序:较高、高、中(zhōng)、低、非常低
爱加密安(ān)全加固优势
多(duō)年来,爱加密充分(fēn)发挥自身技(jì )术优势,通过创新(xīn)与实践,不断提升产(chǎn)品实力和服務(wù)能(néng)力,安(ān)全加固覆盖Android应用(yòng)加固、iOS应用(yòng)加固、鸿蒙应用(yòng)加固、SO加固、SDK加固、小(xiǎo)程序加固、H5加固、PHP加固、Python加固、UPM(Unity插件包)加固、AAB加固等。通过充分(fēn)考虑加固的安(ān)全效果、性能(néng)损耗、上架风险等问题,目前支持Bitcode模式及源到源模式的混淆及虚拟化保护对iOS进行加固保护。
爱加密iOS加固在保障最小(xiǎo)性能(néng)消耗,以及无上架风险的前提下,具(jù)有(yǒu)以下特点及优势:
- 加固方式多(duō)样
支持Xcode插件打包加密,开发人员/打包人员在打包的同时直接完成加固;
支持IPA加固模式,可(kě)通过直接提交IPA包到加固平台中(zhōng)完成加密;
支持源到源混淆加密,可(kě)通过源码工(gōng)程直接进行混淆加密。
- 兼容架构完善
完美兼容ARM/ARMV7/ARM64/x86/x86_64等iOS处理(lǐ)器平台。
- 安(ān)全性强
在对IPA进行高级混淆(扁平化、加密、二次表达式等)的同时,对核心代码进行虚拟化保护,增强核心代码及IPA的安(ān)全强度。
- 操作(zuò)便捷
支持开发工(gōng)具(jù)插件加密;
支持源码工(gōng)程加密;
支持IPA包上传加密。