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下发布。