0Pricing
Ethical Hacking Academy · Lektion

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/ und resources.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.so

Kurze Ü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

  1. Android-App-Struktur
  2. Statische APK-Analyse
  3. Dynamische Analyse mit Frida
  4. Unsichere Speicherung und Kommunikation
← Zurück zu Ethical Hacking Academy