Rückwärtsanalyse von nativen Bibliotheken

Reading time: 3 minutes

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)

Unterstützen Sie HackTricks

Für weitere Informationen siehe: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Android-Apps können native Bibliotheken verwenden, die typischerweise in C oder C++ geschrieben sind, für leistungsintensive Aufgaben. Malware-Ersteller nutzen ebenfalls diese Bibliotheken, da sie schwieriger rückwärts zu analysieren sind als DEX-Bytecode. Der Abschnitt betont die Fähigkeiten zur Rückwärtsanalyse, die auf Android zugeschnitten sind, anstatt Assemblersprachen zu lehren. ARM- und x86-Versionen von Bibliotheken werden zur Kompatibilität bereitgestellt.

Wichtige Punkte:

  • Native Bibliotheken in Android-Apps:
  • Werden für leistungsintensive Aufgaben verwendet.
  • In C oder C++ geschrieben, was die Rückwärtsanalyse herausfordernd macht.
  • Im .so (shared object) Format gefunden, ähnlich wie Linux-Binärdateien.
  • Malware-Ersteller bevorzugen nativen Code, um die Analyse zu erschweren.
  • Java Native Interface (JNI) & Android NDK:
  • JNI ermöglicht es, Java-Methoden in nativen Code zu implementieren.
  • NDK ist ein Android-spezifisches Set von Werkzeugen zum Schreiben von nativem Code.
  • JNI und NDK verbinden Java (oder Kotlin) Code mit nativen Bibliotheken.
  • Bibliotheksladung & Ausführung:
  • Bibliotheken werden mit System.loadLibrary oder System.load in den Speicher geladen.
  • JNI_OnLoad wird beim Laden der Bibliothek ausgeführt.
  • In Java deklarierte native Methoden verknüpfen sich mit nativen Funktionen, was die Ausführung ermöglicht.
  • Verknüpfung von Java-Methoden mit nativen Funktionen:
  • Dynamische Verknüpfung: Funktionsnamen in nativen Bibliotheken entsprechen einem bestimmten Muster, was eine automatische Verknüpfung ermöglicht.
  • Statische Verknüpfung: Verwendet RegisterNatives zur Verknüpfung und bietet Flexibilität bei der Benennung und Struktur von Funktionen.
  • Werkzeuge und Techniken zur Rückwärtsanalyse:
  • Werkzeuge wie Ghidra und IDA Pro helfen bei der Analyse nativer Bibliotheken.
  • JNIEnv ist entscheidend für das Verständnis von JNI-Funktionen und Interaktionen.
  • Übungen werden bereitgestellt, um das Laden von Bibliotheken, die Verknüpfung von Methoden und die Identifizierung nativer Funktionen zu üben.

Ressourcen:

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)

Unterstützen Sie HackTricks