用数据告诉你:sdk加固为什么应该选择网易易盾-凯发app官网

在《为什么sdk加固会那么重要?网易易盾专家的四点解读》中,我们介绍了sdk加固的重要性以及易盾sdk加固的2种方案的基本实现原理。作为姊妹篇,这篇文章将为大家解读下易盾sdk加固的特点与优势,以及和某友商的对比测评。  

一、易盾sdk加固有什么特点?

对于接入者而言,一个sdk或通用框架的易用性、稳定性、兼容性、性能是非常重要的指标,而对于安全加固而言加固强度与加固体积又是非常重要的因素,因此我们将从接入的易用性,加固强度、稳定性、性能、加固后体积等核心指标上进行分析。

易用性

易盾sdk加固后直接替换加固前sdk即可,集成后无需做初始化,就像使用未加固前的sdk一样,对接入者完全透明。这一点在自动化构建上将非常方便(后文将具体讲),因此在易用性上易盾sdk加固对开发者是非常友好的。

加固强度

易盾sdk加固方案包含vmp以及java2c两种方案。将待保护类的方法进行抽空,对抽取的指令进行加密处理,在运行时通过自定义虚拟机执行,同时对指令操作码做了重新映射,极大的提高了分析破解的难度。

java2c方案将待保护类的方案进行native化,java层原函数逻辑转为了jni层的c/c 代码实现,由于该过程不可逆,因此从native层还原回原java层逻辑的门槛与难度会大大增加,几乎不可能。

稳定性与兼容性
易盾sdk加固vmp与java2c方案,不仅应用在sdk加固业务,在apk加固也早已应用多时,经受过大量的真机测试与线上环境的考验。这两种方案对对市面上top 100的应用通过云真主机的百台测试机进行测试,通过率达到99.6%以上,远远超出资质要求的90%的标准。对于安卓的操作系统从4.x到10.x版本均可全面兼容,适配的范围广。从各类的应用中挑出一个代表性的进行测试,测试的通过率如下所示:

另一方面在客户对接中,我们也遇到过一些先试用友商sdk加固,但运行测试时出现崩溃转而试用易盾sdk加固的客户,试用后未出现稳定性和兼容性问题。

性能

对于绝大部分场景,sdk加固的vmp方案的性能足以满足用户需求。在少数对性能要求比较高的场景,比如图像绘制,涉及到view与ui状态的实时更新,如果每一帧绘制性能都有所降低,最终可能会造成用户视觉上的卡顿。对于这种场景,可以使用java2c方案进行sdk加固。另一方面,对于某些对性能影响很大但不是很重要的类,也可以通过加类名单过滤的方式过滤掉。

因此在性能方面,易盾sdk加固完全可以覆盖满足用户的各种业务场景。

加固后体积

由于sdk的特殊性,sdk作为一个独立组件,将最终被开发者的用户集成,而sdk相对apk而言一般体积较小,同样的增量对于sdk而言,用户增量感知上是比较明显的,因此sdk加固后体积增量是一个非常重要的指标。

实际上在对接客户过程中,我们了解到某些客户对于sdk加固后的体积,的确是非常在意的,因此我们在体积增量控制这方面也做了很多优化。


部分客户加固前后体积对比数据  

通过上表客户的数据可以看到易盾sdk加固前后体积增量非常小,即使so包含主流的5种abi,体积增量也基本不会超过800kb;另一方面,因为会将java层代码指令抽空,然后加密压缩,因此sdk加固后的体积不会随着aar本身的体积增大,而导致增量越来越大,甚至在某些情况下可能会略有减少。

二、测评

以下测评来自使用易盾sdk加固服务的某客户给的原始包,以及友商加固包。该客户原始包为4830kb的aar包,该aar包含java代码以及so,其jni目录只包含一个armeabi架构的so。


从上表可以看出:

在接入便捷性上:易盾sdk加固完胜,无需初始化意味着对原开发者而言无代码侵入性,使用上就像使用未加固sdk一样,仅需替换加固前sdk即可,这一点在自动化构建流程中优势明显。例如:我们某客户使用多aar模式,要加固的aar共有十多个,aar的加固、接入、编译、打包合并到最终apk的所有流程,都是通过脚本自动完成。如果需要开发者主动在application中做初始化的话,那么在接入以及编译环节,就需要开发者写代码通过字节码注入的手段,修改接入者原始application代码逻辑,以便实现流程的自动化构建。如果同时集成的aar比较多,这些字节码注入工作量会比较大,给接入者增加额外的非业务逻辑代码编写工作量。而易盾sdk加固无需初始化,意味着只需通过脚本替换加固前aar即可做到加固、编译、打包的自动化构建。

在强度方面:目前业界各厂商基本都是使用的第三代vmp保护或最新的类java2c方案,在强度上基本都相当。

在稳定性方面:虽然在客户对接过程中,遇到2个客户是先试用友商sdk加固运行崩溃,转而试用易盾sdk加固。但由于稳定性是最基本指标,基本上各厂商都会进行大量的真机测试与云真机兼容性测试,达到一定数据标准后再对外推出自己的相应服务,所以基本上该指标各厂商差异不会非常大,可以认为基本相当。

在加固后体积增量方面:易盾增量为151kb,友商增量为1171kb,易盾加固后体积增量只占友商的13%不到,优势明显。

另外易盾sdk加固在客户对接过程中,也积累了一些真实场景下与友商相比的差异化方案,比如多aar模式,易盾sdk加固支持多个aar加固后随意搭配,更加灵活,同时这些多个aar同时集成也无需初始化操作。

网易易盾提供专属定制加固服务,有效提高sdk安全等级,点击免费试用。

网站地图