iOS代码加密方案

来源:fairguard 发布时间:2020-07-11 10:10:16 点击数:

一、前言

iOS系统从iOS 1 (2007) 到目前iOS 13 (2020),已经经历了13代,和安卓的开源生态相比iOS一直是都是闭源生态,这确实相对安全些,但是这也容易被人们忽略了其自身App的安全性,导致大部分公司开发App时不会投入成本在自身App的安全方面,一旦系统越狱后被逆向研究App,结果往往是比安卓更恐怖的,所以说在系统闭源前提下,我们也需要对App自身的安全进行加固防护,不能太依赖系统的环境。特此FairGuard提供一套完整的iOS代码加密方案,一键傻瓜式操作。

二、 iOS App保护

iOS App客户端的加密防护工作可以分为如下几个角度:

1、代码本身防护

1.1 代码逻辑的混淆

1.2 字符串的加密

1.3 Objective-C类名和方法名的混淆

2、代码行为防护

2.1 本地存储时的保护(NSUserDefaults,sqlite文件数据加密)

2.2 网络传输数据保护

3、代码对抗防护

3.1 反调试保护

3.2 反越狱保护

3.3 反重签名保护

3.4 反修改器保护

三、 代码本身防护

目前能用的方案大部分是基于IR(LLVM编译框架的一个中间代码)层做混淆Pass,这也是针对代码逻辑混淆的比较好的方案。目前网上有一个项目是Obfuscator-LLVM,由瑞士伊夫尔东莱班的应用科学与艺术大学信息安全小组研发的,完全开源,接入的话是编译成XcodeToolchain加入混淆编译C C++ Flag,支持 控制流平坦化、伪代码插入,但是不支持字符串混淆这个有另外一个项目。

下面我们可看看使用FairGuard iOS加固方案混淆后的效果图:

FairGuard iOS加固方案混淆后的效果

我们FairGuard目前支持代码逻辑混淆、字符串混淆,也是基于LLVM的IR层的混淆Pass,但是不是使用开源的LLVM项目,而是通过HOOK了Xcode里面Apple的clang,在其执行优化的过程拦截执行我们优化Pass,最小程度的减少用户接入成本和体验效果。对用户来说完全无感知。

四、代码行为防护

2.1 本地存储时的保护(NSUserDefaults,sqlite文件数据加密)

在执行NSUserDefaults、sqlite存储操作的时候对文件进行加密处理在存储即可如:

// 获取需要加密文件的二进制数据

NSData *data = [NSData dataWithContentsOfFile:@“~/Desktop/fairGuard.jpg"];

// 对Data进行加密

NSData *deData = [data decryptDate];

// 最后将加密后的文件存储到到 NSUserDefaults 或者 sqlite

2.2 网络传输数据保护

对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取数据,。

Md5(完整性): 传输前对整个数据做一个Md5保证数据的完整性。

Md5(完整性): 传输前对整个数据做一个Md5保证数据的完整性。

AES(机密性): 传输前对Body数据做一个加密保证数据的机密性。

AES(机密性): 传输前对Body数据做一个加密保证数据的机密性。

五、代码对抗防护

当你的代码本身和行为都做了很好的防护后,可能逆向者会进行动态调试,这时候我们就是代码运行时的对抗防护了。

3.1反调试保护

可以使用网上公开的ptrace、syscall、sysctl、异常等方式,之后再对这段防护代码加上之前的保护后效果会更佳。

3.2反越狱保护

可以从多个维度检测、例如检查某些App的安装、文件的存在、目录的访问权限来综合判断

Cydia Check、Inaccessible Files Check、Plist Check、 Symbolic Link Check

3.3反重签名保护

原理可以用加固时存储当时的BundleId和当时二进制的签名,运行时也获取一遍并且与加固时的进行对比来防护。

3.4反修改器保护

在代码对抗防护,FairGuard不但提供本地检测代码,并且保护了检测代码,还提供了在线特征更新检测,定期更新,在最短的时间保护了App的安全性。如下:

在线特征更新检测

六、FairGuard一键加固演示

FairGuard一键加固演示


丨结语

FairGuard 专注于游戏加固与反外挂,为 Unity / Cocos / UE 等引擎的游戏提供深度一体化加密保护方案。

目前产品已经被FunPlus、Garena、三七互娱、游族等多家头部公司采用。TapTap排行榜以及买量排行榜上亦有多个游戏使用。

产品咨询联系方式:

QQ:2079128588

微信:fairguard01

技术交流QQ群:1105310296

即刻体验FairGuard

即刻体验FairGuard

免费试用游戏游戏安全保护, 对接专业技术服务!

免费体验
首 页
产 品
方 案
客 服
帮助