Android Application-Level Virtualization (App Cloning)
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Application-level virtualization (aka app cloning/container frameworks such as DroidPlugin-class loaders) τρέχει πολλαπλά APK μέσα σε μία host app που ελέγχει lifecycle, class loading, storage, και permissions. Guests συχνά εκτελούνται μέσα στο host UID, καταργώντας τη συνήθη per-app απομόνωση του Android και δυσκολεύοντας την ανίχνευση επειδή το σύστημα βλέπει μία διεργασία/UID.
Baseline install/launch vs virtualized execution
- Κανονική εγκατάσταση: Package Manager εξάγει το APK →
/data/app/<rand>/com.pkg-<rand>/base.apk, αναθέτει ένα unique UID, και ο Zygote κάνει fork μια διεργασία που φορτώνειclasses.dex. - Dex load primitive:
DexFile.openDexFile()αναθέτει σεopenDexFileNative()χρησιμοποιώντας απόλυτες διαδρομές· virtualization layers συνήθως hook/redirect αυτό για να φορτώσουν guest dex από host-controlled paths. - Virtualized launch: Ο host ξεκινά μια διεργασία υπό το UID του, φορτώνει το guest’s
base.apk/dex με custom loader, και εκθέτει lifecycle callbacks μέσω Java proxies. Κλήσεις στο Guest storage API ανακατευθύνονται σε host-controlled paths.
Abuse patterns
- Permission escalation via shared UID: Guests τρέχουν κάτω από το host UID και μπορούν να κληρονομήσουν όλα τα host-granted permissions ακόμα κι αν δεν δηλώνονται στο guest manifest. Over-permissioned hosts (τεράστιο
AndroidManifest.xml) γίνονται “permission umbrellas”. - Stealthy code loading: Host κάνει hook σε
openDexFileNative/class loaders για να inject, replace, ή instrument το guest dex κατά το runtime, παρακάμπτοντας static analysis. - Malicious host vs malicious guest:
- Evil host: λειτουργεί ως dropper/executor, instruments/filters τη συμπεριφορά του guest, τροποποιεί crashes.
- Evil guest: εκμεταλλεύεται το shared UID για να προσεγγίσει δεδομένα άλλων guests, να τα ptrace, ή να αξιοποιήσει host permissions.
Fingerprinting & detection
- Multiple base.apk in one process: Ένα container συχνά κάνει map αρκετά APKs στο ίδιο PID.
adb shell "cat /proc/<pid>/maps | grep base.apk"
# Suspicious: host base.apk + unrelated packages mapped together
- Hooking/instrumentation artifacts: Ψάξτε για γνωστές libs (π.χ., Frida) στα maps και επιβεβαιώστε στο δίσκο.
adb shell "cat /proc/<pid>/maps | grep frida"
adb shell "file /data/app/..../lib/arm64/libfrida-gadget.so"
- Crash-tamper probe: Προκαλέστε σκόπιμα μια εξαίρεση (π.χ., NPE) και παρατηρήστε αν η διεργασία πεθαίνει κανονικά· hosts που παρεμβαίνουν στα lifecycle/crash paths μπορεί να καταπίνουν ή να επαναγράφουν τα crashes.
Hardening notes
- Server-side attestation: Εφαρμόστε ευαίσθητες ενέργειες πίσω από Play Integrity tokens ώστε server-side να γίνονται αποδεκτές μόνο γνήσιες εγκαταστάσεις (όχι dynamically loaded guests).
- Use stronger isolation: Για ιδιαίτερα ευαίσθητο κώδικα, προτιμήστε Android Virtualization Framework (AVF)/TEE-backed εκτέλεση αντί για app-level containers που μοιράζονται UID.
References
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.


