【Android 插件化】VAHunt 引入 | VAHunt 原理 | VAHunt 识别插件化引擎
文章目錄
- 一、VAHunt 引入
- 二、VAHunt 原理
- 三、識(shí)別插件化引擎
一、VAHunt 引入
從應(yīng)用開發(fā)者角度出發(fā) , 保護(hù)自己開發(fā)的應(yīng)用不被惡意開發(fā)者使用插件化虛擬引擎二次打包 , 并植入惡意代碼插件 , 避免自己的應(yīng)用運(yùn)行在插件化引擎中 , 是很有必要的 ;
從應(yīng)用市場(chǎng)角度出發(fā) , 識(shí)別出基于插件化引擎的惡意軟件 , 并避免惡意軟件上架 , 是一項(xiàng)很重要的工作 ;
VAHunt 是用于對(duì) APK 文件進(jìn)行靜態(tài)分析 , 可以識(shí)別出 使用了插件化引擎的 惡意應(yīng)用 ;
GitHub : https://github.com/whucs303/VAHunt
二、VAHunt 原理
VAHunt 原理 :
使用 aapt 工具從 APK 文件中提取 AndroidManifest.xml 清單文件 , 從 AndroidManifest.xml 中可以提取應(yīng)用中的組件信息 , 之后需要根據(jù)這些組件 , 查詢是否有插件化引擎的特點(diǎn) ;
使用 dexdump 工具反編譯 Dex 字節(jié)碼文件 , 獲取 Smali 代碼 , 如果有多個(gè) Dex 文件 , 合并這些 Dex 文件 , 并使用 FlowDroid 為每個(gè) APK 文件建立控制流圖 ;
首先識(shí)別出該應(yīng)用是否是插件化應(yīng)用 , 然后識(shí)別該應(yīng)用時(shí)良性應(yīng)用 , 還是惡意應(yīng)用 ;
三、識(shí)別插件化引擎
識(shí)別插件化引擎 :
插件化引擎特點(diǎn)參考 【Android 插件化】靜態(tài)分析應(yīng)用 APK 安裝包是否使用了插件化引擎 ( 虛擬化引擎運(yùn)行特點(diǎn) | 惡意軟件特點(diǎn) ) 一、插件引擎運(yùn)行特點(diǎn) ;
之前已經(jīng)記錄了 AndroidManifest.xml 清單文件中的組件信息 , 如果該應(yīng)用是插件化應(yīng)用 , 那么假設(shè)這些組件都是占坑用的 “樁” 組件 , 用于欺騙 AMS 用的 ;
獲取 Intent 操作 : 假設(shè)當(dāng)前應(yīng)用是插件化應(yīng)用 , 那么啟動(dòng)插件化組件 , 需要先創(chuàng)建 Intent , 然后設(shè)置插件化信息到 extra 中 , 插件化一般是將 插件 Intent 放在該 Intent 的 數(shù)據(jù)中 , 提取該 Intent 操作的所有 API , 觀察是否有設(shè)置插件組件信息 ;
Intent 狀態(tài)轉(zhuǎn)換 : 如果在一個(gè) Intent 中 , 包含了另外一個(gè) 插件 Intent 或者插件信息 , 那么該 Intent 極有可能是一個(gè)插件 Intent ;
宿主應(yīng)用 中 , 在主線程 啟動(dòng) Activity , Intent 的目標(biāo)對(duì)象是 “樁” 組件 , 將其傳入 AMS , 欺騙 AMS , 然后從 AMS 切換到主線程后 , 將 Intent 中隱藏的插件 Intent 取出 , 創(chuàng)建該插件組件 , 并啟動(dòng)該組件 ;
總結(jié)
以上是生活随笔為你收集整理的【Android 插件化】VAHunt 引入 | VAHunt 原理 | VAHunt 识别插件化引擎的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 插件化】使用插件化引擎
- 下一篇: 【Android 插件化】VAHunt