Android_emuroot adalah skrip Python yang memungkinkan pemberian hak akar dengan cepat ke shell yang berjalan pada mesin virtual Android yang menggunakan gambar emulator yang disediakan Google yang disebut Google API Playstore , untuk membantu para insinyur terbalik masuk lebih dalam dalam penyelidikan mereka.
Android_emuroot mengharuskan emulator Playstore Google API diluncurkan dengan opsi Stub QEMU GDB diaktifkan, dan menggunakannya untuk mengubah proses metadata yang disimpan dalam memori dalam struktur tugas kernel. Gagasan utamanya adalah memulai dari shell dengan hak istimewa terendah, kemudian untuk menemukan struktur kredensial yang terkait dalam memori kernel untuk menggantikannya dengan struktur lain yang memiliki hak istimewa tertinggi.
Menerapkan modifikasi memori ini pada emulator Playstore Google API menyajikan dua keunggulan berikut:
Android_emuroot perlu sudah memiliki Android SDK yang berfungsi. Menginstal alat baris perintah direkomendasikan (dapat diunduh melalui Android Studio GUI: Tools> Android> SDK Manager> SDK Tools).
Android_emuroot adalah skrip Python yang menggunakan fasilitas ADB serta fasilitas GDB dari dua modul Python berikut:
Pastikan Anda memiliki modul ini atau menginstalnya melalui PIP: pip3 install -r requirements.txt .
NB: Android_emuroot mendukung Python 2 dan Python 3.
Bergantung pada arsitektur perangkat keras dan versi kernel dari emulator, tata letak memori dari gambar QEMU terkait bervariasi. Dengan demikian lokasi tambalan memori yang diimplementasikan oleh Android_emuroot juga bervariasi.
Untuk saat ini, Android_emuroot mendukung versi emulator berikut:
| Versi Android | API | Arsitektur | Inti | Membangun |
|---|---|---|---|---|
| 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 |
Pastikan AVD yang ingin Anda root didasarkan pada satu emulator daftar ini.
NB: Emulator dapat diunduh melalui SDKManager, alat dari Android Studio Toolchain, dengan GUI atau di baris perintah, misalnya seperti ini: sdkmanager --install "system-images;android-27;google_apis_playstore;x86" . Kemudian, Buat Perangkat Virtual Android (AVD) yang sesuai, melalui AVD Manager GUI atau dengan AVDManager seperti ini: avdmanager create avd -n my_avd_name -k "system-images;android-27;google_apis_playstore;x86" .
Android_emuroot perlu berinteraksi dengan keduanya:
Skema di bawah ini menunjukkan interaksi antara semua elemen:

Android Debug Bridge (ADB) adalah alat baris perintah dari Android Studio Toolchain yang memungkinkan berkomunikasi dengan perangkat Android. Server ADB adalah komponen yang mengelola komunikasi antara android_emuroot dan daemon ADB yang diluncurkan pada perangkat. Secara default, server ADB mendengarkan di 127.0.0.1 Port 5037 . adb start-server memungkinkan Anda memastikan bahwa ada server yang berjalan.
Pastikan server ADB Anda berjalan.
Persyaratan lain untuk menggunakan android_emuroot adalah dengan melampirkan server GDB ke AVD Anda saat meluncurkannya. Emulator, alat baris perintah lain dari Android Studio Toolchain, memungkinkan untuk meluncurkan AVD dengan banyak opsi. Di antara mereka: -qemu -s (shorthang untuk -qemu -gdb tcp::1234 ) yang membuka server GDB di port TCP 1234.
Gunakan opsi ini untuk menyediakan server GDB.
Berikut adalah contoh sederhana penggunaan emulator:
emulator -avd my_avd_name [options] -qemu -s
Dengan cara ini, server GDB akan dilampirkan ke AVD my_avd_name dan android_emuroot akan dapat memunculkan klien GDB -nya dan melakukan tambalan memori.
Setelah server ADB dan server GDB beroperasi, Anda siap menggunakan android_emuroot.
Android_emuroot memiliki 3 mode:
single --magic-name NAME : Untuk memberikan hak istimewa hanya untuk 1 shell yang diberikan dalam parameteradbd [--stealth] : Untuk memberikan hak istimewa ke seluruh server adbd ; setiap cangkang baru akan ditanamkan sebagai rootsetuid --path NAME : Untuk menginstal Binary Root Setuid pada sistem fileRincian lebih lanjut tentang penggunaan dan internal alat: penggunaan terperinci
Android_emuroot telah ditulis oleh Mouad Abouhali dan Anaïs Gantet dari Airbus-Seclab.
Android_emuroot dirilis di bawah GPLV2.