Android Application-Level Virtualization (App Cloning)
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Application-level virtualization (aka app cloning/container frameworks such as DroidPlugin-class loaders) एक single host app के अंदर कई APKs चलाता है जो lifecycle, class loading, storage, और permissions को नियंत्रित करता है। Guests अक्सर host UID के अंदर execute होते हैं, जिससे Android की सामान्य per-app isolation collapse हो जाती है और detection मुश्किल हो जाता है क्योंकि system एक ही process/UID देखता है।
Baseline install/launch vs virtualized execution
- Normal install: Package Manager APK निकालता है →
/data/app/<rand>/com.pkg-<rand>/base.apk, एक unique UID असाइन करता है, और Zygote एक process fork करता है जोclasses.dexलोड करता है। - Dex load primitive:
DexFile.openDexFile()openDexFileNative()को delegate करता है जो absolute paths का उपयोग करता है; virtualization layers आमतौर पर इसे hook/redirect करते हैं ताकि guest dex host-controlled paths से लोड हो। - Virtualized launch: Host अपने UID के तहत process शुरू करता है, custom loader के साथ guest का
base.apk/dex लोड करता है, और Java proxies के जरिए lifecycle callbacks expose करता है। Guest storage API calls host-controlled paths पर remap कर दिए जाते हैं।
Abuse patterns
- Permission escalation via shared UID: Guests host UID के तहत चलते हैं और all host-granted permissions inherit कर सकते हैं भले ही guest manifest में declare न हों। Over-permissioned hosts (massive
AndroidManifest.xml) “permission umbrellas” बन जाते हैं। - Stealthy code loading: Host
openDexFileNative/class loaders को hook करता है ताकि runtime पर guest dex inject, replace, या instrument किया जा सके, जिससे static analysis bypass हो जाती है। - Malicious host vs malicious guest:
- Evil host: dropper/executor की तरह काम करता है, guest व्यवहार को instrument/filter करता है, crashes में छेड़छाड़ करता है।
- Evil guest: shared UID का दुरुपयोग करके other guests’ data तक पहुँचता है, उन्हें ptrace करता है, या host permissions का फायदा उठाता है।
Fingerprinting & detection
- Multiple base.apk in one process: एक container अक्सर एक ही PID में कई APKs को map करता है।
adb shell "cat /proc/<pid>/maps | grep base.apk"
# Suspicious: host base.apk + unrelated packages mapped together
- Hooking/instrumentation artifacts: maps में ज्ञात libs (e.g., Frida) खोजें और disk पर सत्यापित करें।
adb shell "cat /proc/<pid>/maps | grep frida"
adb shell "file /data/app/..../lib/arm64/libfrida-gadget.so"
- Crash-tamper probe: जानबूझकर exception (e.g., NPE) trigger करें और देखें कि process सामान्य रूप से मरता है या नहीं; ऐसे hosts जो lifecycle/crash paths intercept करते हैं, crashes को swallow या rewrite कर सकते हैं।
Hardening notes
- Server-side attestation: संवेदनशील ऑपरेशन्स को Play Integrity tokens के पीछे लागू करें ताकि केवल genuine installs (न कि dynamically loaded guests) server-side पर स्वीकार किए जाएँ।
- Use stronger isolation: अत्यधिक संवेदनशील कोड के लिए, UID साझा करने वाले app-level containers की बजाय Android Virtualization Framework (AVF)/TEE-backed execution को प्राथमिकता दें।
References
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।


