Android市面常见加固方案评测

前言:

安卓应用主要基于Java开发,极易被破解,造成代码或关键接口暴露,甚至被别人加入广告,病毒等二次打包发布,给公司和用户均带来巨大的风险,应对破解的最便捷有效的方式就是加固。通过加固可以在一定程度上达到反编译和防止被二次打包的效果。

通过大量网上调查并结合实际操作,对以下4个主流的加固平台从破解难易度,兼容性,加固后对应用的影响(体积,启动速度),操作难度,使用成本,客服响应速度几个方面给出评测。

加固是非常专业的领域,该评测并未深入到实现原理及技术细节,仅供参考。

1.360加固保 链接:http://jiagu.360.cn/

2.阿里聚安全 链接:http://jaq.alibaba.com/

3.爱加密 链接:http://ijiami.cn/AppProtect

4.腾讯乐固 链接:http://legu.qcloud.com/

一.破解难度

目前加固技术基本都发展到第三代,前2代的加固技术破解难度不大,基本被淘汰,这里只针对第三代加固技术,由于各加固服务商加固原理大致相同,这里不做区分,统一评估。

目前的破解基本是针对免费版,下面的破解难易度判断基于论坛和网络搜集的破解博客

第三代加固技术的主要特点是:

  1. Dex Method代码动态解密
  2. So代码膨胀混淆
  3. 对前2代漏洞修改或增强

那么第三代是否无法破解呢?答案是否定的,在看雪论坛的Android版块,可以看到大量成功破解360,腾讯,百度等第三代加固方案的文章,甚至有的做成了专门的破解工具。下面列出几个例子:

腾讯乐固破解:http://bbs.pediy.com/thread-210532.htm

360和腾讯乐固的开源的双破方案:https://github.com/spriteviki/Dex2oatHunter

360加固破解:http://www.wjdiankong.cn/apk%E8%84%B1%E5%A3%B3%E5%9C%A3%E6%88%98%E4%B9%8B-%E8%84%B1%E6%8E%89360%E5%8A%A0%E5%9B%BA%E7%9A%84%E5%A3%B3/

百度破解: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加固问题
  1. 360加固后会有锁屏广告
  2. 360加固后,导致ANR概率增大
  • 大部分问题集中在2016年上半年之前
百度加固问题
  1. 百度加固后 导致我的应用都无法用了 真是被坑大了:https://tieba.baidu.com/p/4375684485
腾讯乐固
  1. 乐固加固后App Crash:http://bbs.qcloud.com/thread-25537-1-1.html

关于兼容性还可以参考知乎上的这篇评测文章

三.加固后对应用的影响(体积,启动速度)

以下数据基于启信宝3.6.2版

  1. 对体积的影响
未加固 阿里加固 腾讯加固 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和阿里稍好一些。爱加密体验较差。

五.使用成本

  1. 360:

    免费提供给开发者。

  2. 阿里聚安全:

    有免费服务,也有付费的企业用户服务,明码标价,费用比较高.

  3. 爱加密:

    有免费版和企业版,费用未知

  4. 腾讯乐固:

    有免费基础版和至尊版,至尊版需一个月内在腾讯云消耗金额大于10万元

六.客服响应速度(基于论坛及网友反馈)

  1. 360:

    有论坛和在线客服,回帖较快。

  2. 阿里聚安全:

    有在线客服,企业版提供1v1服务。

  3. 爱加密:

    有在线客服,企业版提供1v1服务,12小时内响应。

  4. 腾讯乐固:

    有论坛和在线客服,至尊版提供1v1服务

总结

以上分析基于免费版加固,企业级加固肯定加固强度高一个等级,再加上代码加花混淆等操作,相信一般人员很难破解,而且网上企业级破解样例很少,短期内可以有效保证代码安全。因而继续使用梆梆加固还是很有必要的,但出于兼容性考虑,有时候需要给用户提供别的加固包,这里结合使用成本,以上分析及实际使用体验(启动速度,兼容性,操作复杂度)给出2个备选方案:

  1. 360加固(dex级)

  2. 阿里加固(核心方法级)+ 安全组件

  • 360加固包已经提供部分用户使用,目前没有异常反馈。