常见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加固点击免费试用,下载和使用流程如下:
相关阅读: