失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【Android 插件化】基于插件化的恶意软件的加载策略分析 ( 自定义路径加载插件 |

【Android 插件化】基于插件化的恶意软件的加载策略分析 ( 自定义路径加载插件 |

时间:2023-10-25 03:19:16

相关推荐

【Android 插件化】基于插件化的恶意软件的加载策略分析 ( 自定义路径加载插件 |

文章目录

一、自定义路径加载插件二、系统路径加载插件三、用户同意后加载插件四、隐藏恶意插件

一、自定义路径加载插件

插件化应用中 , 宿主应用 加载 插件 APK , 需要获取该插件 APK 文件路径 , 可以在 Assets 资源目录 , 也可以在 Android 内置存储 或 SD 卡存储控件中 ;

恶意插件 , 解密或从网络上下载后 , 也需要存放在一个文件目录中 ;

常见的自定义路径如下 :

分析上述 API 调用 , 搜索 APK 文件 , 并判断该文件是否是使用 插件化引擎 安装的插件 ;

这里的安装指的是将插件 APK 拷贝到指定的文件目录 ;

二、系统路径加载插件

恶意软件 会 诱导用户加载 系统中安装的 恶意软件 , 宿主应用没有向该系统路径写入数据的权限 ;

加载插件流程 :

首先 , 要请求获取包列表 ( Package List ) , 向用户显示该列表 ;

然后 , 引导用户选择列表中的应用执行 ;

最后 , 宿主应用可以从系统数据空间中选择 APK 文件 , 拷贝到自己的存储空间 , 也就是安装了该插件 ;

调用PackageManager.getInstalledPackages()方法 , 可以获取已安装的应用程序 , 可以从调用该方法为起点进行分析 , 继续向后分析 , 查看哪些应用被展示给了用户 , 恶意应用就在这些应用中 ;

三、用户同意后加载插件

基于插件化的 良性应用 , 如果要装载插件 , 需要弹出弹窗 , 请求用户同意 , 用户同意后 , 才能安装插件 ;

恶意应用 安装插件时 , 基本都是静默安装 , 不经过用户同意 , 并且安装后尽可能隐藏插件 ;

这里的安装插件指的是将插件存放在指定的位置 ;

定位插件安装界面 , 如果发现插件安装操作在 Activity 生命周期中进行操作 , 则说明该安装操作肯定是静默安装 , 没有征得用户同意 ;

如果插件安装界面 , 插件安装操作 , 都在 onClick 等 UI 交互方法中 , 说明该安装操作不是静默安装 ;

程序启动的 Activity , 一般都带有android.intent.category.LAUNCHER标识 ;

四、隐藏恶意插件

安装 良性应用 后 , 一般会让用户选择是否将应用图标添加到 Launcher 界面 , 如果选择是 , 则可以在主界面看到安装后的应用图标 ;

安装 恶意应用 后 , 恶意应用大多会将自己隐藏 , 并且在后台运行 ;

① 隐藏图标 :恶意软件不在 Launcher 主界面显示应用图标 , 以及 Activity 界面 , 用户在 UI 界面中看不到该应用的任何信息 ;

修改清单文件 , 去掉

<category android:name=”android.intent.category.LAUNCHER” />

信息 , 就可以隐藏应用图标 ;

如下设置 , 也可以隐藏应用图标 :

getPackageManager().setComponentEnabledSetting(getComponentName(), PONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);

② 后台运行 :恶意软件 作为服务在后台运行 ;

③ 界面透明 :恶意软件 设置FLAG_NOT_TOUCH_MODAL标识 , 可以使主要布局透明 , 并且移除状态栏 , 标题栏 ;

分析 宿主软件 中 , 是否存在上述隐藏插件应用的行为 ;

参考 :VAHunt: Warding Off New Repackaged Android Malware in App-Virtualization’s Clothing

【Android 插件化】基于插件化的恶意软件的加载策略分析 ( 自定义路径加载插件 | 系统路径加载插件 | 用户同意后加载插件 | 隐藏恶意插件 )

如果觉得《【Android 插件化】基于插件化的恶意软件的加载策略分析 ( 自定义路径加载插件 |》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。