45

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

 5 years ago
source link: http://www.freebuf.com/sectool/184626.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

加固是保护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,加固强度比较低。

EbmuQzq.jpg!web

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

Obfuscator-LLVM的混淆样式如下:

FRF3Ebv.jpg!web

网易iOS加固

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

fmm2mib.jpg!web

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

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

使用过程如下:

qeMva2R.jpg!web

360 iOS加固

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

MnI3A3V.jpg!web

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

IneAz2f.jpg!web

数字遁甲iOS加固

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

YbuI3iU.jpg!web

3YnIv2F.jpg!web

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

MBNrEzI.jpg!web

顶象iOS加固

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

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

JnQfema.jpg!web

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

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

fqaQNzy.jpg!web

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

3ABB3qJ.jpg!web

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

32mqArJ.jpg!web

五款iOS加固工具比较

ERNrm2z.jpg!web

写在最后的总结

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加固在线使用时,不需要上传源码,这与其他几个在线加固的产品不同。

*本文作者:奔驰雪铁龙,转载请注明来自FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK