常见apk应用加固主要有dex文件、sdk文件、so文件加固这三类。本文介绍了3种apk加固的策略和1种apk加固工具。
1.dex加固
上图为dex加固技术演化,几种方式加固程度不同:
混淆代码:最原始也是最基础的防护措施;
整体dex加固(加壳);
拆分dex加固:函数抽取及动态恢复,增加内存dump的难度;
虚拟机加固:自定义指令虚拟机解释器,指令可混淆;
java2c加固:将dex指令转换为native指令执行,可增加混淆、字符串加密功能。
整体dex加固,拆分dex加固,均有相应的脱壳机,当前的防护程度几乎为零。当前性能最强的加固方案是java2c,将java指令转成c/c 指令,并做虚假控制流、字符串加密等处理,逆向难度最高。如下图所示,即为java2c加固前后的区分:
2.so加固
so库文件一般存放着核心算法、重要协议等重要信息。根据so结构特点,在二进制层面进行局部函数加解密。如下图所示案例,so加固前导出函数有369个函数,加固后只有42个函数,其他的都是可以做加密的隐藏的。
3.sdk加固
sdk的加固策略和dex类似,这里不做详细说明。想要了解更多sdk加固信息,可以点击以下文章《为什么sdk加固那么重要?网易易盾专家的四点解读》
4.网易易盾apk加固工具
网易易盾提供专业的android apk加固服务,有效防止应用被逆向分析、反编译、二次打包,防止嵌入各类病毒、广告等恶意代码,保障开发者和用户的利益。网易易盾提供游戏类、非游戏类、通用类apk加固工具,android apk加固点击免费试用,下载和使用流程如下:
相关阅读: