前言:
安卓应用主要基于Java开发,极易被破解,造成代码或关键接口暴露,甚至被别人加入广告,病毒等二次打包发布,给公司和用户均带来巨大的风险,应对破解的最便捷有效的方式就是加固。通过加固可以在一定程度上达到反编译和防止被二次打包的效果。
通过大量网上调查并结合实际操作,对以下4个主流的加固平台从破解难易度,兼容性,加固后对应用的影响(体积,启动速度),操作难度,使用成本,客服响应速度几个方面给出评测。
加固是非常专业的领域,该评测并未深入到实现原理及技术细节,仅供参考。
1.360加固保 链接:http://jiagu.360.cn/
2.阿里聚安全 链接:http://jaq.alibaba.com/
3.爱加密 链接:http://ijiami.cn/AppProtect
4.腾讯乐固 链接:http://legu.qcloud.com/
一.破解难度
目前加固技术基本都发展到第三代,前2代的加固技术破解难度不大,基本被淘汰,这里只针对第三代加固技术,由于各加固服务商加固原理大致相同,这里不做区分,统一评估。
目前的破解基本是针对免费版,下面的破解难易度判断基于论坛和网络搜集的破解博客
第三代加固技术的主要特点是:
- Dex Method代码动态解密
- So代码膨胀混淆
- 对前2代漏洞修改或增强
那么第三代是否无法破解呢?答案是否定的,在看雪论坛的Android版块,可以看到大量成功破解360,腾讯,百度等第三代加固方案的文章,甚至有的做成了专门的破解工具。下面列出几个例子:
腾讯乐固破解:http://bbs.pediy.com/thread-210532.htm
360和腾讯乐固的开源的双破方案:https://github.com/spriteviki/Dex2oatHunter
百度破解:http://bbs.pediy.com/thread-211162.htm
阿里加固破解:http://bbs.pediy.com/thread-210880.htm
爱加密破解:http://blog.csdn.net/jiangwei0910410003/article/details/51620236
阿里聚安全反编译很容易看到源代码的。只是对部分方法由java层移到了native层, 需要配合阿里的安全组件才能真正起到保护的目的。
这里有一篇博客总结了目前针对全部3代加固技术的破解方案,从文中可见对于专业人员来讲,第三代加固破解难度并不高。
当然加固和破解是不断博弈的过程,公布出来的破解方案也基本会被加固商升级封堵,比如360和阿里的反应都是非常快速的。但由于在各大应用市场已经存在大量使用旧的加固方案的应用,因此只要破解较早版本的APK,基本就可以获取你应用的大部分关键信息了。所以使用第三代加固方案的应用,即便是用最新的加固策略,也是一定可以破解的,只是时间早晚的问题。
二.兼容性
目前各个厂商网站上宣传的兼容性普遍较高,但都很少有敢承诺100%兼容,如阿里,爱加密,腾讯等均承认加固会影响原程序的兼容性及性能。
对我们应用采用testin标准兼容测试,终端数100款,通过率大致如下:
未加固 | 阿里加固 | 腾讯加固 | 360加固 | 梆梆加固 | 爱加密 |
---|---|---|---|---|---|
100% | 100% | 99% | 98% | 98% | 97% |
兼容性: 阿里 > 腾讯 > 360 = 梆梆 > 爱加密
以下是搜集到的各平台关于兼容性的反馈:
360加固问题
- 大部分问题集中在2016年上半年之前
百度加固问题
- 百度加固后 导致我的应用都无法用了 真是被坑大了:https://tieba.baidu.com/p/4375684485
腾讯乐固
- 乐固加固后App Crash:http://bbs.qcloud.com/thread-25537-1-1.html
关于兼容性还可以参考知乎上的这篇评测文章。
三.加固后对应用的影响(体积,启动速度)
以下数据基于启信宝3.6.2版
- 对体积的影响
未加固 | 阿里加固 | 腾讯加固 | 360加固 | 梆梆加固 | 爱加密 |
---|---|---|---|---|---|
11.9MB | 11.2MB | 11.6MB | 12.2MB | 13.9MB | 13.6MB |
2.对启动速度的影响(首次/第二次)
未加固 | 阿里加固 | 腾讯加固 | 360加固 | 梆梆加固 | 爱加密 |
---|---|---|---|---|---|
1s833ms/788ms | 2s71ms/882ms | 1s877ms/1s681ms | 3s187ms/2s33ms | 3s803ms/2s212ms | 2s592ms/2s247ms |
- 腾讯加固虽然体积和启动速度看起来不错,但在测试时无法在三星note4上进行网络请求,其他加固包正常。
四.操作复杂度
各平台加固功能使用下来基本不会出现操作疑问,主要是步骤和流程都类似。体验上360和阿里稍好一些。爱加密体验较差。
五.使用成本
-
360:
免费提供给开发者。
-
阿里聚安全:
有免费服务,也有付费的企业用户服务,明码标价,费用比较高.
-
爱加密:
有免费版和企业版,费用未知
-
腾讯乐固:
有免费基础版和至尊版,至尊版需一个月内在腾讯云消耗金额大于10万元。
六.客服响应速度(基于论坛及网友反馈)
-
360:
有论坛和在线客服,回帖较快。
-
阿里聚安全:
有在线客服,企业版提供1v1服务。
-
爱加密:
有在线客服,企业版提供1v1服务,12小时内响应。
-
腾讯乐固:
有论坛和在线客服,至尊版提供1v1服务
总结
以上分析基于免费版加固,企业级加固肯定加固强度高一个等级,再加上代码加花混淆等操作,相信一般人员很难破解,而且网上企业级破解样例很少,短期内可以有效保证代码安全。因而继续使用梆梆加固还是很有必要的,但出于兼容性考虑,有时候需要给用户提供别的加固包,这里结合使用成本,以上分析及实际使用体验(启动速度,兼容性,操作复杂度)给出2个备选方案:
- 360加固(dex级)
- 阿里加固(核心方法级)+ 安全组件
- 360加固包已经提供部分用户使用,目前没有异常反馈。