【Android 插件化】VAHunt 引入 | VAHunt 原理 | VAHunt 识别插件化引擎
文章目录
一、VAHunt 引入
从应用开发者角度出发 , 保护自己开发的应用不被恶意开发者使用插件化虚拟引擎二次打包 , 并植入恶意代码插件 , 避免自己的应用运行在插件化引擎中 , 是很有必要的 ;
从应用市场角度出发 , 识别出基于插件化引擎的恶意软件 , 并避免恶意软件上架 , 是一项很重要的工作 ;
VAHunt 是用于对 APK 文件进行静态分析 , 可以识别出 使用了插件化引擎的 恶意应用 ;
GitHub : https://github.com/whucs303/VAHunt
二、VAHunt 原理
VAHunt 原理 :
使用 aapt 工具从 APK 文件中提取 AndroidManifest.xml 清单文件 , 从 AndroidManifest.xml 中可以提取应用中的组件信息 , 之后需要根据这些组件 , 查询是否有插件化引擎的特点 ;
使用 dexdump 工具反编译 Dex 字节码文件 , 获取 Smali 代码 , 如果有多个 Dex 文件 , 合并这些 Dex 文件 , 并使用 FlowDroid 为每个 APK 文件建立控制流图 ;
首先识别出该应用是否是插件化应用 , 然后识别该应用时良性应用 , 还是恶意应用 ;
三、识别插件化引擎
识别插件化引擎 :
插件化引擎特点参考 【Android 插件化】静态分析应用 APK 安装包是否使用了插件化引擎 ( 虚拟化引擎运行特点 | 恶意软件特点 ) 一、插件引擎运行特点 ;
之前已经记录了 AndroidManifest.xml 清单文件中的组件信息 , 如果该应用是插件化应用 , 那么假设这些组件都是占坑用的 “桩” 组件 , 用于欺骗 AMS 用的 ;
获取 Intent 操作 : 假设当前应用是插件化应用 , 那么启动插件化组件 , 需要先创建 Intent
, 然后设置插件化信息到 extra 中 , 插件化一般是将 插件 Intent 放在该 Intent
的 数据中 , 提取该 Intent
操作的所有 API , 观察是否有设置插件组件信息 ;
Intent 状态转换 : 如果在一个 Intent
中 , 包含了另外一个 插件 Intent
或者插件信息 , 那么该 Intent 极有可能是一个插件 Intent
;
宿主应用 中 , 在主线程 启动 Activity , Intent 的目标对象是 “桩” 组件 , 将其传入 AMS , 欺骗 AMS , 然后从 AMS 切换到主线程后 , 将 Intent 中隐藏的插件 Intent 取出 , 创建该插件组件 , 并启动该组件 ;
相关文章
- 代码加密 android,Android 开发怎样做代码加密或混淆「建议收藏」
- android移动点餐系统内容和要求,基于Android云计算的移动点餐系统
- android 的hook技术,Android Native Hook技术(一)
- android签名/打包
- android 权限列表
- android activity singletask,Android Activity启动模式之singleTask实例详解
- android sdk安装过程,图文详解Android 3.0 SDK安装教程
- android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解…
- iphone4装android,iPhone4可安装Android实现双系统启动.pdf
- android telephony 原理解析与开发指南_Android逆向pdf
- android toast全屏,Android Toast实现全屏显示
- 错误代码as-3_android studio is currently
- Android ANR分析(trace文件的产生流程)
- Android webview 加载html 页面缩放的问题
- 【Android 应用开发】自定义View 和 ViewGroup
- 【Android 异步操作】手写 Handler ( 总结 | Message | MessageQueue | Looper | Handler ) ★
- 【错误记录】Android Studio 编译时 Kotlin 代码编译报错 ( 升级支持库时处理 @NonNull 参数 )
- 谷歌大量删除 Android 开源项目中 Fuchsia 相关代码
- 【ijkplayer】编译 Android 版本的 ijkplayer ⑥ ( 进入 ijkplayer-android/android 目录 | 执行 compile-ijk.sh 脚本完成编译 )
- 【Android 屏幕适配】屏幕适配通用解决方案 ⑥ ( 约束布局 ConstraintLayout 百分比布局方案 | 将设计稿尺寸自动转为约束布局百分比标签属性 | 将输出结果设置到组件标签中 )
- zxing-android-embedded扫描彩色二维码识别不出的解决方案
- 华为手机Android Studio的Logcat无任何内容输出的解决方案详解手机开发
- [android] 看博客学习Android常见的几种RuntimeException详解手机开发
- android Universal Image Loader for Android 说明文档 (1)详解手机开发
- Android多线程实现文件断点下载详解编程语言
- Android系统与Linux之间的联系(android和linux)
- android电话状态监听(来电和去电)实现代码
- Android系统自带样式(android:theme)
- Android开发笔记之:如何安全中止一个自定义线程Thread的方法
- Android下如何使用百度地图sdk