文章目录

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

一、自定义路径加载插件


插件化应用中 , 宿主应用 加载 插件 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(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP
);

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

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

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

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

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

  1. 【Android 插件化】基于插件化引擎的“恶意应用“与“良性应用“区别 | 恶意插件化应用特征

    文章目录 一.基于插件化引擎 的 恶意应用 与 良性应用 区别 二.恶意插件化应用特征 一.基于插件化引擎 的 恶意应用 与 良性应用 区别 在 [Android 插件化]VAHunt 引入 | VA ...

  2. 【Android 插件化】插件化技术弊端 ( 恶意插件化程序的解决方向 | 常用的插件化虚拟引擎 )

    文章目录 一.插件化技术弊端 二.恶意插件化程序的解决方向 三.常用的插件化虚拟引擎 一.插件化技术弊端 在之前的 Android 应用中 , 部分黑客将应用破解 , 植入自己的恶意代码 , 然后进行 ...

  3. 【Android 插件化】使用插件化引擎对应用进行重打包的恶意软件特征 ( 检测困难 | 成本低 | 恶意插件可更换 | 容易传播 )

    文章目录 一.检测困难 二.成本低 三.恶意插件可更换 四.容易传播 一.检测困难 恶意软件开发者 , 开发一个插件化 宿主软件 , 将 APK 安装包直接以插件形式运行 , 同时还会将恶意代码放在另 ...

  4. 【Android 插件化】插件化简介 ( 组件化与插件化 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  5. android插件化、组件化、热补丁傻傻分不清

    时至今日,国内的android技术可谓是走在世界前沿,这或许还得感谢这堵"墙"的作用,正所谓哪里有压迫哪里就有反抗啊 从2015年中旬,android插件化的兴起,到2016年底, ...

  6. login组件的两种用法_Android-模块化、组件化、插件化、热修复-组件化-组件间的通信(本地,下沉,bus,路由)...

    延续上一篇 MonkeyLei:Android-模块化.组件化.插件化.热修复-组件化工程构建+页面路由多种方式实践 ,我们进行搞下组件之间的通信.比如登录成功后怎么通知其他页面刷新: 方式可能有很多 ...

  7. 洋洋洒洒688字带你彻底吃透Zuul的插件机制及定制化开发

    Zuul的插件机制及定制化开发 Zuul的另外一个重要机制就是Filter动态加载机制.Zuul支持的动态Filter由Groovy代码编写,动态管理Groovy的File目录变更并动态编译和加载. ...

  8. php 织梦wap源码,织梦手机静态页生成插件 DEDE WAP静态化 手机端生成静态

    织梦手机静态页生成插件 织梦手机端本身默认没有静态,很多客户都想做手机端静态,这次你们有福了, 织梦手机静态页生成插件是一个安装后,可以生成手机版静态页,提高手机版网页的访问速度,更加有利于SEO. ...

  9. 大型Android项目架构:基于组件化+模块化+Kotlin+协程+Flow+Retrofit+Jetpack+MVVM架构实现WanAndroid客户端

    前言:苟有恒,何必三更眠五更起:最无益,莫过一日曝十日寒. 前言 之前一直想写个 WanAndroid 项目来巩固自己对 Kotlin+Jetpack+协程 等知识的学习,但是一直没有时间.这里重新行 ...

最新文章

  1. trogan连接不上_解决连接不上网(Connection not connected).doc
  2. 在QTP中申明XPath
  3. ubuntu 安装OpenBLAS
  4. 2017-2018-2 『网络对抗技术』Exp1:PC平台逆向破解 20165335
  5. 面向对象程序设计(Java)
  6. C#属性: 利用set实现递归
  7. Android开发之将Android SVG 转 VectorDrawable矢量图的方法
  8. Dubbo消费者代理的调用
  9. LeetCode刷题(24)
  10. 跨进程的 键盘钩子_Delphi下深入Windows编程之钩子原理一
  11. 中兴B860AV2.1-T刷机教程加固件
  12. MySQL的安装图解
  13. 剑指offer--46.47.发散思维能力
  14. python怎么获取向量中非零元素的行号
  15. SQL错误信息:已更新或删除的行值要么不能使该行成为唯一行、要么改变了多个行
  16. CentOS 7 查询CPU、内存、磁盘的使用情况
  17. A-Level经济真题(7)
  18. 后台怎么接收处理从url 客户端传来的json数据格式
  19. php 可视化模板编辑,MetInfo
  20. 跟西乔一起开脑洞,预测AIGC的终极形态

热门文章

  1. android 自由复制与粘贴功能
  2. linux常用性能分析命令详解#TOP
  3. Spring注解使用方法
  4. 双节棍---1、动作和杂记
  5. html和css入门 (三)
  6. mysql五补充部分:SQL逻辑查询语句执行顺序
  7. 从LINQ开始之LINQ to Objects(下)
  8. struts.xml 文件添加DTD文件
  9. linux 上配置swoole
  10. C#学习笔记--详解委托,事件与回调函数