Post by Gandalfandroid
AVL移動安全團隊在以前的《Xposed惡意插件》一文中分析了一個Xposed惡意插件,可是因爲Xposed模塊須要手動勾選重啓後才能生效,致使應用場景有限。以後網友MindMac提供了一個可自動安裝激活的Xposed惡意插件demo(需Root權限),如下是對此惡意插件的詳細代碼分析。git
安裝開啓該demo後在後臺會自行安裝Xposed,並勾選自身AutomaticXposed,以後自動重啓系統使模塊激活生效:github
啓動樣本即進入Xposed的安裝和激活:安全
首先檢查是否安裝過Xposed,若未安裝則安裝樣本內嵌的Xposed。框架
釋放Xposed安裝apk到sdcard:工具
獲取su權限,經過pm來靜默安裝Xposed:spa
啓動Xposed的InstallService服務,經過Intent參數設置「Enable module」激活樣本:插件
此服務本來實際上並不含有Xposed插件,屬於做者重打包添加,因此此處demo的激活方式只適用於未安裝Xposed的手機,若已安裝則沒法生效。orm
樣本內嵌子包屬於Xposed框架的安裝包,但做者修改過,添加了一個InstallService用來激活插件以及重啓動系統。xml
包結構主要差別對比,上爲原版Xposed框架安裝包,下爲樣本內嵌Xposed:
做者修改過的XposedInstall添加了InstallService,並使其導出以致於能夠被外部調用:
服務運行以後首先檢查手機系統版本和Xposed版本的兼容性,以後則設置勾選插件、重啓系統激活插件:
復現原版Xposed的正常啓動流程,因是樣本直接激活沒有經過正常的Xposed啓動,故需如此:
調用原版ModuleUtil類的setModuleEnabled方法。修改Xposed配置文件,設置插件可用:
配置文件位於:/data/data/de.robv.android.xposed.installer/shared_prefs/enabled_modules.xml,將樣本包名「com.mindmac.xposed」置值爲「1」:
原版ModuleUtil類的updateModulesList方法 給/data/data/de.robv.android.xposed.installer/conf/modules.list文件寫入樣本完整路徑:
配置完成以後,重啓系統以便使設置生效:
該樣本雖然只是一個demo,但實現了自動安裝Xposed及其插件,並自動勾選重啓激活插件的功能。但若被惡意代碼利用,可能會致使更嚴重的損害,請謹慎使用。
不過該樣本目前只適用於未安裝Xposed的手機,已經安裝Xposed後則沒法激活,並且內嵌的Xposed屬於重打包須要另外添加模塊。若是已經安裝了Xposed,在Root權限下經過修改Xposed的配置文件來進行激活會更合適。
最後感謝MindMac 對AVL Team的關心和幫助,用戶可使用AVL Pro對此類工具進行檢測。
附:網友MindMac提供的demo來源:https://github.com/MindMac/XposedAutomation
轉載請註明來自 http://blog.avlyun.com/