为了保护公司的App安全,我用遍了市面上的加固产品

2,695 阅读4分钟

加固是保护App安全的重要手段之一,不仅能够保障App代码安全,防止被破解入侵篡改,更是等保、测试等合规性要求。

最近,公司开发了一款运动App,主要面向苹果用户。我试遍了市场主流的iOS加固产品。虽然国内外的都有,但是差距很大。当然,能够拿出来单独说的不超过6款。以下是iOS App加固产品选型时的一点心得,主要有Obfuscator-LLVM、网易iOS加固、360iOS加固、顶象iOS加固和数字遁甲iOS加固。

Obfuscator-LLVM

Obfuscator-LLVM是瑞士西北应用科技大学安全实验室于2010年6月份发起的一个项目,该项目旨在提供一套开源的针对LLVM的代码混淆工具,以增加对逆向工程的难度。后期转向商业项目strong.protect。目前,OLLVM已经支持LLVM-4.0版本。

作为代码混淆的优秀开源项目,Obfuscator-LLVM提供控制流扁平化、指令替换、虚假控制流等功能,不支持swift和Bitcode,加固强度比较低。

Obfuscator-LLVM使用时必须集成到xcode上,也就是插件形式进行加固,开发调试很简单。

Obfuscator-LLVM的混淆样式如下:

网易iOS加固

iOS加固(dun.163.com/product/ios… 是网易易盾下面的一个移动安全产品。主要提供字符串加密、代码逻辑混淆、字符串混淆和反调试等功能,也不支持swift和Bitcode,加固强度中等。

网易iOS加固是一套独立工具,开发调试程度一般。

它提供了15天的企业免费试用。需要提供bundleID和邮箱。

使用过程如下:

360iOS加固

360iOS加固(jiagu.360.cn/#/global/in… 是360加固保旗下的产品。主要提供源代码进行常量加密、逻辑混淆、结构替换、多路径执行等保护,同样也不支持swift和Bitcode,加固强度中等。

360iOS加固是在线加固的形式。在官网注册账号,上传文件即可使用。 开发调试程度比较麻烦。

数字遁甲iOS加固

数字遁甲是新崛起的一个加固厂商。其iOS加固产品主要提供二进制加固、字符串混淆和高级反调试等功能,不支持swift和Bitcode,加固强度较低。

数字遁甲也是在线加固的形式,使用比较简单。直接上传ipa文件,然后获取提取码,再用提取码下载加固后的ipa文件。但是在开发调试方面同样不方便。

以下是一个加固后的结果。

顶象iOS加固

顶象iOS加固(www.dingxiang-inc.com/business/io… 是顶象技术端安全旗下产品,主要提供代码虚拟化、字符串加密、代码混淆等功能。支持swift和Bitcode两种(这也是目前唯一支持该两类语言加固的工具),加固强度较高。

多说一句,该产品团队人员主要来自阿里巴巴移动安全产品团队。

顶象iOS加固比较有意思,提供两种在线和插件两种形式。

在线添加参加,然后直接上传文件即可使用。

为了文件上传方便,顶象还做了一个辅助工具,用来提取加固需要的文件和合并文件。

第二种方式是插件,与Obfuscator-LLVM类似,也是到xcode上。 使用流程如下:

加固效果如下(一个简单的计算器demo)。

五款iOS加固工具比较

写在最后的总结

1、功能。这几款工具都具备了市面上目前常见的字符串加密、代码和符号混淆、代码混乱等基础功能。其中,网易iOS加固和数字遁甲iOS加固还提供了防调试功能,开启后自动注入防调试代码,省去了手写;而顶象iOS加固集成了代码虚拟化功能,开启后会使函数体消失,进入虚机运行,整体加固效果较佳。

2、操作。Obfuscator-LLVM集成到新版xcode(9.4.1)上,操作比较麻烦。网易iOS加固单独工具操作比较简单,但是不能集成到xcode使用;360加固和数字遁甲iOS加固是在线服务,也比较简单;顶象iOS加固既可以在线使用,也可以集成到xcode上,可谓两不误。

3、语言支持。swift是苹果2014年发布一个新编程语言,bitcode是编译的中间语言,都是比较常用的。但是除了顶象iOS加固外,其他均不支持。

4、配置方式。Obfuscator-LLVM、网易iOS加固、顶象iOS加固的配置方式类似。

5、版本更新。Obfuscator-LLVM是全部免费的,但是已经停止了更新。其他产品都有更新。

6、加固文件。顶象iOS加固在线使用时,不需要上传源码,这与其他几个在线加固的产品不同。