Android-App-Struktur
APK-Interna
Android-App-Struktur ist eine kostenlose Ethical Hacking Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ethical Hacking Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ethical Hacking Academy-Kurs umfasst insgesamt 4 Lektionen.
Die APK-Datei
Eine Android-App wird als APK (Android Package) ausgeliefert. Dabei handelt es sich eigentlich um ein ZIP-Archiv, das den kompilierten Code, Ressourcen und Metadaten enthält.
Da es sich um eine ZIP-Datei handelt, können Sie sie einfach entpacken und ihren Inhalt untersuchen. Dies ist der erste Schritt beim Mobile Pentesting.
unzip app.apk -d app_extracted/Aufbau einer APK
Eine extrahierte APK enthält:
AndroidManifest.xml: App-Konfiguration.classes.dex: kompilierter Bytecode.res/undresources.arsc: Ressourcen.lib/: native Bibliotheken.META-INF/: Informationen zur Signierung.
Das Manifest
Die Datei AndroidManifest.xml deklariert die Komponenten, Berechtigungen und Konfiguration der App. In der APK liegt sie in einer binären XML-Form vor, die von Werkzeugen dekodiert werden kann.
Sie ist die wichtigste einzelne Datei, um die Angriffsfläche einer App zu verstehen.
DEX und die Laufzeitumgebung
Java-/Kotlin-Quellcode wird in DEX-Bytecode (Dalvik Executable) in classes.dex kompiliert. Moderne Android-Systeme führen ihn über ART (Android Runtime) aus.
DEX kann wieder in Richtung lesbaren Code konvertiert werden. Dies macht sich die statische Analyse von APKs zunutze.
Die vier Komponenten
Android-Apps bestehen aus vier Komponententypen:
- Activities: Bildschirme bzw. Benutzeroberflächen.
- Services: Hintergrundaufgaben.
- Broadcast Receivers: reagieren auf Systemereignisse.
- Content Providers: teilen Daten zwischen Apps.
Exportierte Komponenten
Eine mit android:exported="true" markierte Komponente kann von anderen Apps aufgerufen werden. Führt eine solche Komponente ohne Prüfungen sensible Aktionen aus, stellt sie eine Angriffsfläche dar.
Pentester suchen nach exportierten Activities, Services und Providern, die Daten preisgeben oder privilegierte Aktionen ausführen.
<activity android:name=".AdminActivity" android:exported="true"/>Berechtigungen
Apps fordern Berechtigungen im Manifest an (zum Beispiel INTERNET, READ_SMS, ACCESS_FINE_LOCATION).
Zu weit gefasste Berechtigungen deuten auf riskantes Verhalten oder übermäßigen Datenzugriff hin. Auch benutzerdefinierte Berechtigungen können falsch konfiguriert sein und unbefugten Zugriff ermöglichen.
<uses-permission android:name="android.permission.READ_SMS"/>App-Sandbox
Android isoliert jede App in einer eigenen Sandbox mit einer eindeutigen Linux-UID. Standardmäßig können Apps nicht auf die Daten anderer Apps zugreifen.
Schwachstellen entstehen, wenn Apps diese Grenze abschwächen, etwa durch weltweit lesbare Dateien oder offengelegte Provider.
Speicherung von App-Daten
Eine installierte App speichert private Daten unter /data/data/<package>/: Datenbanken, gemeinsame Einstellungen und Dateien.
Auf einem gerooteten Gerät oder über Sicherungskopien untersucht ein Pentester dieses Verzeichnis auf unsicher gespeicherte Geheimnisse. Dies wird in einem späteren Kapitel behandelt.
/data/data/com.example.app/Signierung
Jede APK ist digital signiert; die Signatur befindet sich in META-INF/. Android überprüft sie bei der Installation und bei Updates.
Wenn Sie eine App ändern und neu verpacken, müssen Sie sie erneut signieren. Deshalb verlassen sich Entwickler auf die Signierung, um Manipulationen zu erkennen.
Native Bibliotheken
Leistungskritische oder verschleierte Logik kann in nativen Bibliotheken (.so-Dateien) unter lib/ liegen, die aus C/C++ kompiliert wurden.
Diese befinden sich nicht in DEX und erfordern daher eine separate Analyse mit nativen Disassemblern. Entwickler verstecken hier manchmal Geheimnisse, weil sie fälschlicherweise glauben, nativer Code sei schwerer zu untersuchen.
lib/arm64-v8a/libnative.soKurze Überprüfung
Rufen Sie sich ins Gedächtnis, welches Manifest-Attribut eine Komponente für andere Apps sichtbar macht.
Zusammenfassung
Sie verstehen nun die Struktur von Android-Apps:
- Eine APK ist eine ZIP-Datei mit
AndroidManifest.xml,classes.dex, Ressourcen und Signierungsdaten. - Apps verwenden vier Komponenten; exportierte Komponenten stellen eine Angriffsfläche dar.
- Berechtigungen und die app-eigene Sandbox regeln den Zugriff. Private Daten befinden sich unter
/data/data/. - APKs werden signiert, um Manipulationen zu erkennen.
Als Nächstes dekompilieren Sie eine APK im Rahmen der statischen Analyse.
Häufig gestellte Fragen
Ist die Lektion „Android-App-Struktur“ kostenlos?
Ja — der vollständige Text von „Android-App-Struktur“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ethical Hacking Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ethical Hacking Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Android-App-Struktur“?
APK-Interna Du übst Ethical Hacking Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ethical Hacking Academy zu starten?
Keine Vorkenntnisse erforderlich. Ethical Hacking Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Android-App-Struktur“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ethical Hacking Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ethical Hacking Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Android-App-Struktur
- Statische APK-Analyse
- Dynamische Analyse mit Frida
- Unsichere Speicherung und Kommunikation