首页(yè)> 技(jì )术观点 > 13项iOS加固技(jì )术详解,不让应用(yòng)“裸奔”的关键步骤!

13项iOS加固技(jì )术详解,不让应用(yòng)“裸奔”的关键步骤!

发布时间:2024-02-27
爱加密拥有(yǒu)四种iOS加固产(chǎn)品:基于源代码的源对源加固产(chǎn)品;基于Xcode工(gōng)具(jù)链的源代码混淆产(chǎn)品;基于bitcode的IPA整包加固产(chǎn)品;基于汇编指令的IPA整包加固产(chǎn)品。
爱加密iOS加固产(chǎn)品兼容ARM/ARM64/x86等常见处理(lǐ)器平台,同时混淆方式多(duō)样,可(kě)联合混用(yòng),随机性强。本期将主要為(wèi)大家讲述基于源代码的源对源加固产(chǎn)品,加固技(jì )术分(fēn)為(wèi)防篡改、动态防护、混淆加密三大部分(fēn)。

 

 

防篡改

 

1、完整性保护
对应用(yòng)进行完整性校验,发现应用(yòng)被重签名(míng),应用(yòng)自动退出运行。

2、代码段校验

对iOS应用(yòng)代码段的完整性进行校验,实时监测代码段是否被修改,如果检测到代码段被修改,应用(yòng)退出运行。

3、资源文(wén)件完整性保护

对应用(yòng)资源文(wén)件进行完整性校验,发现资源文(wén)件被篡改,则退出运行。

动态防护

 

1、防动态调试

对应用(yòng)进行防调试保护,防调试主要分(fēn)為(wèi)两种方式,一种是阻止调试器附加,一种是检测是否有(yǒu)调试器存在。检测到配置防动态调试功能(néng)的类、方法、函数被GDB、Xcode、LLDB工(gōng)具(jù)进行动态调试时,应用(yòng)自动退出运行。

2、防动态注入

对应用(yòng)进行防动态注入保护,检测应用(yòng)被Frida、Cydia Substrate等工(gōng)具(jù)动态注入代码时,应用(yòng)自动退出运行。

3、防Hook攻击

对指定类、类方法、实例方法、C函数进行防Hook攻击保护。当通过Method Swizzle、fishhook、Cydia Substrate等方式对应用(yòng)进行Hook攻击时,自动退出运行。

 

混淆加密

 

爱加密在混淆加密方面拥有(yǒu)7项技(jì )术,并可(kě)采用(yòng)混淆多(duō)样性技(jì )术,使同一源代码每次混淆后得到的代码都不相同,提高攻击者分(fēn)析的难度。

1、字符串加密

程序当中(zhōng)的字符串,往往会曝露一些关键的信息。比如图中(zhōng)所示字符串,表明此部分(fēn)為(wèi)用(yòng)户登录的代码。黑客分(fēn)析之后,可(kě)攻击用(yòng)户登录页(yè)面,获取用(yòng)户账号密码等信息。
对字符串采取随机加密方式保护程序中(zhōng)的字符串,运行时动态解密,增大程序的分(fēn)析难度。

2、等效指令替换

对C/C++函数中(zhōng)的运算表达式进行等效转换,使其在常用(yòng)反编译工(gōng)具(jù)中(zhōng),增加破解者分(fēn)析难度,有(yǒu)效保护核心算法的原始逻辑。
通过自动挑选C/C++函数中(zhōng)的部分(fēn)运算表达式,使用(yòng)一系列复杂的等价表达式来替换它,使得表达式结果在静态分(fēn)析时难以得到,增加了逆向分(fēn)析和篡改的难度。
图中(zhōng)r是一个复杂的表达式,其值為(wèi)0,r中(zhōng)可(kě)能(néng)涉及到全局变量,通过静态的分(fēn)析反汇编得到的代码,不易知晓变换后的表达式的值

3、虚假控制流

在C/C++函数中(zhōng),插入一些虚假的不可(kě)达指令或多(duō)余的跳转指令,在运行时刻这些插入的指令不会运行,但在静态分(fēn)析时刻却难以知晓这一点。

4、控制流扁平化

对C/C++代码中(zhōng)的函数所对应的控制流进行“横向”变扁变長(cháng),如循环和条件转移语句进行扁平化处理(lǐ),重新(xīn)组织控制流,每个基本块都是一个switch-case语句,通过控制switch变量的值来执行不同case语句。使其在常用(yòng)反编译工(gōng)具(jù)中(zhōng),增加破解者分(fēn)析难度,有(yǒu)效保护核心算法的原始逻辑。

 

5、不透明谓词

将代码中(zhōng)分(fēn)支跳转判断条件由原来的确定值变為(wèi)表达式,增加程序逻辑复杂性,降低代码可(kě)读性。

6、符号混淆

对方法名(míng)、类名(míng)进行混淆,增大分(fēn)析难度,无法通过方法名(míng)、类名(míng)快速定位程序核心代码。

7、局部变量名(míng)混淆

程序中(zhōng)的局部变量名(míng)会曝露一些关键的信息,破解者常常用(yòng)它来快速定位程序核心代码的位置。
对源代码进行语法分(fēn)析以及逻辑分(fēn)析,解析出代码中(zhōng)局部变量名(míng)的位置,然后对局部变量名(míng)进行混淆以及加密,使破解者无法使用(yòng)它来快速定位程序核心代码的位置。
爱加密移动应用(yòng)安(ān)全加固平台為(wèi)开发者提供全面的移动应用(yòng)安(ān)全加固技(jì )术,不仅可(kě)进行iOS加固,更包括Android应用(yòng)加固、游戏应用(yòng)加固、H5文(wén)件加固、微信小(xiǎo)程序加固、SDK加固和源对源混淆加固技(jì )术等技(jì )术,从根本上解决移动应用(yòng)的安(ān)全缺陷和风险,使加固后的移动应用(yòng)具(jù)备防逆向分(fēn)析、防二次打包、防动态调试、防进程注入、防数据篡改等安(ān)全保护能(néng)力。
爱加密作(zuò)為(wèi)國(guó)内知名(míng)的移动信息安(ān)全综合服務(wù)提供商(shāng),通过不断探索与实践,已覆盖政企、运营商(shāng)、金融、医(yī)疗、教育、能(néng)源等多(duō)个行业的安(ān)全业務(wù)场景。并参与了中(zhōng)央网信办(bàn)、工(gōng)信部、公(gōng)安(ān)部、市场监督管理(lǐ)总局等國(guó)家监管单位制定移动应用(yòng)、移动支付相关的标准规范;未来将继续凭借自身技(jì )术优势、业務(wù)资质(zhì)优势、产(chǎn)品方案优势等,守护互联世界。

 

加入收藏