Android Application-Level Virtualization (App Cloning)
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Application-level virtualization (aka app cloning/container frameworks such as DroidPlugin-class loaders) führt mehrere APKs innerhalb einer einzigen Host-App aus, die Lifecycle, class loading, Storage und Berechtigungen kontrolliert. Gäste laufen häufig innerhalb der Host-UID, wodurch die normale pro-App-Isolierung von Android aufgehoben wird und die Erkennung erschwert wird, da das System nur einen Prozess/UID sieht.
Baseline install/launch vs virtualized execution
- Normal install: Package Manager extrahiert das APK →
/data/app/<rand>/com.pkg-<rand>/base.apk, weist eine einzigartige UID zu, und Zygote forkt einen Prozess, derclasses.dexlädt. - Dex load primitive:
DexFile.openDexFile()delegiert anopenDexFileNative()und verwendet absolute Pfade; Virtualisierungsschichten hooken/redirecten dies häufig, um Guest-dex aus host-kontrollierten Pfaden zu laden. - Virtualized launch: Die Host-App startet einen Prozess unter ihrer UID, lädt das
base.apk/dex des Gasts mit einem Custom Loader und stellt Lifecycle-Callbacks über Java-Proxies bereit. Storage-API-Aufrufe des Gasts werden auf host-kontrollierte Pfade umgemappt.
Abuse patterns
- Permission escalation via shared UID: Gäste laufen unter der Host-UID und können alle vom Host gewährten Berechtigungen erben, selbst wenn diese nicht im Manifest des Gasts deklariert sind. Überberechtigte Hosts (umfangreiche
AndroidManifest.xml) werden zu „permission umbrellas“. - Stealthy code loading: Der Host hookt
openDexFileNative/class loader, um Guest-dex zur Laufzeit zu injecten, zu ersetzen oder zu instrumentieren und damit statische Analysen zu umgehen. - Malicious host vs malicious guest:
- Evil host: fungiert als Dropper/Executor, instrumentiert/filtriert das Verhalten des Gasts, manipuliert Abstürze.
- Evil guest: missbraucht die gemeinsame UID, um auf Daten anderer Gäste zuzugreifen, sie per ptrace anzugreifen oder Host-Berechtigungen auszunutzen.
Fingerprinting & detection
- Multiple base.apk in one process: Ein Container mapped oft mehrere APKs im selben PID.
adb shell "cat /proc/<pid>/maps | grep base.apk"
# Suspicious: host base.apk + unrelated packages mapped together
- Hooking/instrumentation artifacts: Suche in den maps nach bekannten libs (z. B. Frida) und prüfe sie auf der Festplatte.
adb shell "cat /proc/<pid>/maps | grep frida"
adb shell "file /data/app/..../lib/arm64/libfrida-gadget.so"
- Crash-tamper probe: Löse gezielt eine Exception aus (z. B. NPE) und beobachte, ob der Prozess normal beendet; Hosts, die Lifecycle-/Crash-Pfade abfangen, können Abstürze verschlucken oder umschreiben.
Hardening notes
- Server-side attestation: Schütze sensitive Operationen mittels Play Integrity-Tokens, sodass nur genuine Installs (nicht dynamisch geladene Gäste) serverseitig akzeptiert werden.
- Use stronger isolation: Für hochsensible Logik bevorzuge das Android Virtualization Framework (AVF)/TEE-gestützte Ausführung statt app-level containers, die eine UID teilen.
References
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


