Reversing Native Libraries

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.

Sie können ihre Website besuchen und ihren Motor kostenlos ausprobieren unter:


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

Android-Apps können native Bibliotheken verwenden, die in der Regel in C oder C++ für leistungsintensive Aufgaben geschrieben sind. Auch Malware-Ersteller verwenden diese Bibliotheken, da sie schwieriger zu reverse-engineeren sind als DEX-Bytecode. Der Abschnitt legt den Schwerpunkt auf Reverse-Engineering-Fähigkeiten, die speziell auf Android zugeschnitten sind, anstatt Assembly-Sprachen zu lehren. ARM- und x86-Versionen von Bibliotheken werden für die Kompatibilität bereitgestellt.

Schlüsselpunkte:

  • Native Bibliotheken in Android-Apps:

  • Werden für leistungsintensive Aufgaben verwendet.

  • In C oder C++ geschrieben, was Reverse Engineering herausfordernd macht.

  • In .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 die Implementierung von Java-Methoden in nativem Code.

  • NDK ist ein Android-spezifischer Satz von Tools zum Schreiben von nativem Code.

  • JNI und NDK verbinden Java (oder Kotlin)-Code mit nativen Bibliotheken.

  • Bibliotheks-Laden & Ausführung:

  • Bibliotheken werden in den Speicher geladen mit System.loadLibrary oder System.load.

  • JNI_OnLoad wird beim Laden der Bibliothek ausgeführt.

  • Von 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 automatische Verknüpfung ermöglicht.

  • Statische Verknüpfung: Verwendet RegisterNatives für die Verknüpfung und bietet Flexibilität bei der Funktionsbenennung und -struktur.

  • Reverse-Engineering-Tools und -Techniken:

  • Tools wie Ghidra und IDA Pro helfen bei der Analyse von nativen 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 von nativen Funktionen zu üben.

Ressourcen:

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.

Sie können ihre Website besuchen und ihren Motor kostenlos ausprobieren unter:

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated