首页> 技术观点 > 13项iOS加固技术详解,不让应用“裸奔”的关键步骤!

13项iOS加固技术详解,不让应用“裸奔”的关键步骤!

发布时间:2024-02-27
爱加密拥有四种iOS加固产品:基于源代码的源对源加固产品;基于Xcode工具链的源代码混淆产品;基于bitcode的IPA整包加固产品;基于汇编指令的IPA整包加固产品。
爱加密iOS加固产品兼容ARM/ARM64/x86等常见处理器平台,同时混淆方式多样,可联合混用,随机性强。本期将主要为大家讲述基于源代码的源对源加固产品,加固技术分为防篡改、动态防护、混淆加密三大部分。

 

 

防篡改

 

1、完整性保护
对应用进行完整性校验,发现应用被重签名,应用自动退出运行。

2、代码段校验

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

3、资源文件完整性保护

对应用资源文件进行完整性校验,发现资源文件被篡改,则退出运行。

动态防护

 

1、防动态调试

对应用进行防调试保护,防调试主要分为两种方式,一种是阻止调试器附加,一种是检测是否有调试器存在。检测到配置防动态调试功能的类、方法、函数被GDB、Xcode、LLDB工具进行动态调试时,应用自动退出运行。

2、防动态注入

对应用进行防动态注入保护,检测应用被Frida、Cydia Substrate等工具动态注入代码时,应用自动退出运行。

3、防Hook攻击

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

 

混淆加密

 

爱加密在混淆加密方面拥有7项技术,并可采用混淆多样性技术,使同一源代码每次混淆后得到的代码都不相同,提高攻击者分析的难度。

1、字符串加密

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

2、等效指令替换

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

3、虚假控制流

在C/C++函数中,插入一些虚假的不可达指令或多余的跳转指令,在运行时刻这些插入的指令不会运行,但在静态分析时刻却难以知晓这一点。

4、控制流扁平化

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

 

5、不透明谓词

将代码中分支跳转判断条件由原来的确定值变为表达式,增加程序逻辑复杂性,降低代码可读性。

6、符号混淆

对方法名、类名进行混淆,增大分析难度,无法通过方法名、类名快速定位程序核心代码。

7、局部变量名混淆

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

 

加入收藏