文章目录
一、插件化技术弊端
二、恶意插件化程序的解决方向
三、常用的插件化虚拟引擎
一、插件化技术弊端
在之前的 Android 应用中 , 部分黑客将应用破解 , 植入自己的恶意代码 , 然后进行重打包 , 再上传到应用市场或其它传播渠道 ;
插件化技术出现之后 , 由于可以使用 宿主软件 自动加载 APK 插件文件 , 任何 APK 安装包都可以在不安装的情况下运行 , 这样黑客自己开发一个宿主程序 , 封装一个第三方 APK 文件 , 完全可以冒充这个被封装的 APK 插件应用 , 在宿主程序中 , 直接写入恶意代码 , 这个比重打包方便很多 , 因此插件化技术被大范围地恶意使用 ;
该操作还可以批量操作 , 使用自动化脚本 , 一晚上甚至可以封装数量巨大的恶意应用 ;
目前的 Android 生态中 , 存在着大量的该类使用插件化技术进行 ;
据统计 , 应用市场中 , 插件化应用中 , 恶意插件化应用 是 正常使用插件化技术应用的 数倍 ;
针对上述问题 , 需要使用一些技术识别 恶意 插件化应用 , 并删除此类应用 ;
二、恶意插件化程序的解决方向
首先 , 要先识别出使用了插件化技术的应用 ;
插件化应用有相同的特点 : 使用了 插件化 技术 的应用 , 都有相同的特点 , 当前的插件化基本都是基于 Hook 的插件化技术 , 这样可以零侵入代码 , 开发的插件 APK 与普通 APK 相同 ;
基本都是 启动 Activity 前 , 先启动 插桩的 Activity , 骗过 AMS , 然后回到 ActivityThread 之前 , 在将真正的插件 Activity 启动起来 , 这样就实现了不安装 APK 文件 ,
( 这里的 Activity 也可以是其它组件 )
然后 , 判断一个插件化应用是良性应用 , 还是恶性应用 ;
找出恶意插件化应用的特点 , 这类恶意插件化应用 , 一般不经过用户同意秘密加载插件 ( 感觉有些大厂的插件化也是偷摸加载的 , 插件化对用户透明 ) , 分析出恶意插件的非法加载插件的指纹特征 , 与正常使用插件化技术的应用进行区分 ;
检测恶意插件化应用 : https://github.com/whucs303/VAHunt
三、常用的插件化虚拟引擎
常用的插件化虚拟引擎 :
VirtualApp : https://github.com/asLody/VirtualApp
DroidPlugin : https://github.com/DroidPluginTeam/DroidPlugin
参考文献 : VAHunt: Warding Off New Repackaged Android Malware
in App-Virtualization’s Clothing