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