Reversing Native Libraries
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
oderSystem.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:
Lernen von ARM-Assembly:
Empfohlen für ein tieferes Verständnis der zugrunde liegenden Architektur.
ARM Assembly Basics von Azeria Labs wird empfohlen.
JNI & NDK-Dokumentation:
Debuggen von nativen Bibliotheken:
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:
Last updated