Android_emuroot是一個Python腳本,它允許在Android虛擬機上飛行的根特權,這些機器使用Google提供的仿真器圖像,稱為Google API PlayStore ,以幫助反向工程師深入研究他們的調查。
Android_emuroot要求啟用QEMU GDB Stub選項啟動Google API PlayStore模擬器,並使用它來更改存儲在內核任務結構中的內存中的過程元數據。主要想法是從具有最低特權的外殼開始,然後在內核內存中找到其相關的憑證結構,以通過具有最高特權的另一個結構代替它。
在Google API PlayStore模擬器上實現此內存修改,提出了以下兩個優點:
Android_emuroot需要已經有一個工作的Android SDK。建議安裝命令行工具(可通過Android Studio GUI下載:工具> Android> Android> SDK Manager> SDK工具)。
Android_emuroot是一個Python腳本,使用ADB設施以及以下兩個Python模塊的GDB設施:
確保您擁有這些模塊,或通過PIP: pip3 install -r requirements.txt安裝它們。
NB:Android_emuroot支持Python 2和Python 3。
根據硬件體系結構和模擬器的內核版本,相關QEMU圖像的內存佈局各不相同。因此,由Android_emuroot實現的內存補丁的位置也有所不同。
目前,Android_emuroot支持以下模擬器:
| Android版本 | API | 建築學 | 核心 | 建造 |
|---|---|---|---|---|
| Android 7.0 | 24 | x86 | 3.10 | Google-api-Playstore |
| Android 7.1.1 | 25 | x86 | 3.10 | Google-api-Playstore |
| Android 8.0 | 26 | x86 | 3.18 | Google-api-Playstore |
| Android 8.1 | 27 | x86 | 3.18 | Google-api-Playstore |
確保您要紮根的AVD基於此列表的一個模擬器。
NB:模擬器可以通過SDKManager(來自Android Studio工具鏈的工具,帶有GUI或命令行)下載,例如: sdkmanager --install "system-images;android-27;google_apis_playstore;x86" 。然後,通過AVD Manager GUI或使用這樣的AvdManager創建Android虛擬設備(AVD): avdmanager create avd -n my_avd_name -k "system-images;android-27;google_apis_playstore;x86" 。
Android_emuroot需要與兩者進行互動:
下面的方案顯示了所有元素之間的相互作用:

Android調試橋(ADB)是Android Studio工具鏈的命令行工具,可與Android設備進行通信。 ADB服務器是管理Android_emuroot與設備上啟動的ADB守護程序之間通信的組件。默認情況下,ADB服務器在127.0.0.1端口5037上收聽。 adb start-server可讓您確保運行服務器。
確保您的ADB服務器正在運行。
使用Android_emuroot的另一個要求是在啟動它時將GDB服務器附加到AVD上。 Android Studio工具鏈的另一個命令行工具模擬器允許啟動具有很多選項的AVD。其中: -qemu -s ( -qemu -gdb tcp::1234 ),該tcp端口1234上打開GDB服務器。
使用此選項獲取可用的GDB服務器。
這是模擬器用法的一個簡單示例:
emulator -avd my_avd_name [options] -qemu -s
這樣,將將GDB服務器連接到AVD my_avd_name ,並且Android_emuroot將能夠產生其GDB客戶端並執行內存補丁。
ADB服務器和GDB服務器都可以運行後,您就可以使用Android_emuroot了。
Android_emuroot有3種模式:
single --magic-name NAME :僅將根特權授予參數中的1個外殼adbd [--stealth] :授予整個adbd服務器的根特權;每個新的外殼都將產生為根setuid --path NAME :在文件系統上安裝setuid root二進制有關用法和工具內部的更多詳細信息:詳細使用
Android_emuroot是由Mouad Abouhali和Airbus-Seclab的AnaïsGantet撰寫的。
Android_emuroot在GPLV2下發布。