Android Application-Level Virtualization (App Cloning)
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Application-level virtualization (aka app cloning/container frameworks such as DroidPlugin-class loaders) laat meerdere APKs in een enkele gasheer-app loop wat die lifecycle, class loading, stoorplek en permissies beheer. Gaste voer dikwels binne die gasheer-UID uit, wat Android se normale per-app isolasie laat inklap en opsporing moeilik maak omdat die stelsel een proses/UID sien.
Basiese installasie/opstart vs gevirtualiseerde uitvoering
- Normal install: Package Manager ekstraheer APK →
/data/app/<rand>/com.pkg-<rand>/base.apk, ken ’n unieke UID toe, en Zygote fork ’n proses watclasses.dexlaai. - Dex load primitive:
DexFile.openDexFile()deleger naopenDexFileNative()wat absolute paaie gebruik; virtualiseringslae hook/omlei dit algemeen om gasheer-gekontroleerde paaie te gebruik vir die laai van gast dex. - Virtualized launch: Gasheer begin ’n proses onder sy UID, laai die gasheer se
base.apk/dex met ’n aangepaste loader, en ekspon life-cycle callbacks via Java proxies. Gaste se stoor-API-oproepe word na gasheer-gekontroleerde paaie herlei.
Misbruik patrone
- Permission escalation via shared UID: Gaste loop onder die gasheer-UID en kan alle gasheer-toegewezen permissies ervaar selfs al is dit nie in die gasheer se manifest verklaar nie. Oor-permissieerde gasheer (massiewe
AndroidManifest.xml) word “permission umbrellas”. - Stealthy code loading: Gasheer hook
openDexFileNative/class loaders om gasheer dex tydens runtime te injekteer, vervang of instrumenteer, wat static analysis omseil. - Malicious host vs malicious guest:
- Evil host: tree op as dropper/executor, instrumenteer/filtreer gas-gedrag, knoei aan crashes.
- Evil guest: misbruik gedeelde UID om by ander gaste se data te kom, hulle te ptrace, of gasheer-permissies te benut.
Fingerprinting & detection
- Multiple base.apk in one process: ’n kontainer map dikwels verskeie APKs in dieselfde PID.
adb shell "cat /proc/<pid>/maps | grep base.apk"
# Suspicious: host base.apk + unrelated packages mapped together
- Hooking/instrumentation artifacts: Soek na bekende libs (bv. Frida) in maps en bevestig op skyf.
adb shell "cat /proc/<pid>/maps | grep frida"
adb shell "file /data/app/..../lib/arm64/libfrida-gadget.so"
- Crash-tamper probe: Induk doelbewus ’n exception (bv. NPE) en kyk of die proses normaal sterf; gasheers wat lifecycle/crash-paadjies onderskep kan crashes insluk of herskryf.
Hardening notas
- Server-side attestation: Plaas sensitiewe operasies agter Play Integrity tokens sodat slegs egte installs (nie dinamies gelaaide gaste nie) server-side aanvaar word.
- Use stronger isolation: Vir hoogs sensitiewe kode, verkies die Android Virtualization Framework (AVF)/TEE-backed uitvoering in plaas van app-level kontainers wat ’n UID deel.
References
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.


