【Android 插件化】VAHunt 引入 | VAHunt 原理 | 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 插件化】VAHunt 引入 | VAHunt 原理 | VAHunt 识别插件化引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 插件化】使用插件化引擎
- 下一篇: 【Android 插件化】VAHunt