在 【Android 插件化】VAHunt 引入 | VAHunt 原理 | VAHunt 识别插件化引擎 和
【Android 插件化】VAHunt 检测插件化引擎的具体细节 博客中 , 简单介绍了如何检测插件化引擎 ;
下一步就需要在检测出插件化引擎之后 , 检测该应用是否是恶意应用 ;
大多数基于插件化的 恶意应用 , 都会对 恶意插件 加密 , 或从网络中下载 ;
恶意软件的宿主应用 , 一般会以静默方式加载插件 , 并且将下载或解密后的恶意插件 , 隐藏起来 ;
下图是 基于插件化引擎 的 恶意应用 与 良性应用 区别 :
恶意软件 解密 或 下载 恶意插件后 , 通常会隐藏恶意插件 ;
加载 APK 插件的常用路径 :
getInstalledPackages()
, 或执行 Runtime().exec(“pm list packages”)
命令 , 获取安装的 APK 文件 ;静默执行插件的行为总结 : 静默安装和执行恶意插件 ;
installApp()/installPackage()
安装应用 , 并且静默安装 ;public void setComponentEnabledSetting (ComponentName componentName, int newState, int flags)
方法 , 设置组件 ;FLAG_NOT_TOUCH_MODAL
标识 , 不阻塞触摸事件 , 运行时避免被用户发现 ;