APP加固新方向——混淆和瘦身
在阿里云云栖社区举办的在线培训中,来自阿里移动安全部的陵轩带来了题为《 APP加固新方向——混淆和瘦身》的精彩分享。本次分享的主要内容包括 APP 加固的发展历程以及阿里内部对移动安全加固最新的研究——混淆和 APK 优化瘦身。 直播回顾视频: https://yq.aliyun.com/edu/lesson/play/393 以下内容是根据直播和PPT整理。 加固的意义 从安卓2.x版本起,加固技术就逐渐火了起来。最初,只有一些创业型公司涉及加固领域;随着安卓应用的逐渐升温,诸如阿里、腾讯、百度等大型互联网公司逐渐涉及该领域。 那么为什么要对APP进行加固呢?主要原因有三点:首先安卓的APP应用通常采用Java语言编写的,开发门槛低,容易被反编译(解释性语言的弊端);其次安卓市场比较混乱且可自签名,进而导致大量应用被二次打包,植入广告、木马;同时,手机Root后,黑客可利用Hook等技术手段可对应用进行动态攻击,获取应用的核心逻辑。综合这三点来看,安卓应用的安全系数是非常低的,因此APP加固就有了意义:应用加固之后可以有效减少反编译、二次打包、植入广告木马等操作。 传统加固 第一代加固技术采用的是Dex加密存储,解密时落地;落地之后通过自定义的DexClassLoader将解密出的Dex加载到内存中,然后程序运行该文件(Dex是APK的Java代码经过编译后生成的文件