mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
72 lines
5.5 KiB
Markdown
72 lines
5.5 KiB
Markdown
# Umkehrung von nativen Bibliotheken
|
|
|
|
<details>
|
|
|
|
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
|
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
|
|
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
|
|
|
|
</details>
|
|
|
|
**Weitere Informationen finden Sie unter: [https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html](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 leistungskritische Aufgaben geschrieben sind. Auch Malware-Ersteller verwenden diese Bibliotheken, da sie schwerer umzukehren sind als DEX-Bytecode. Der Abschnitt legt den Schwerpunkt auf Reverse Engineering-Fähigkeiten, die speziell auf Android zugeschnitten sind, anstatt Assemblersprachen zu lehren. Es werden ARM- und x86-Versionen von Bibliotheken bereitgestellt, um die Kompatibilität zu gewährleisten.
|
|
|
|
### Schlüsselpunkte:
|
|
- **Native Bibliotheken in Android-Apps:**
|
|
- Werden für leistungskritische Aufgaben verwendet.
|
|
- Werden in C oder C++ geschrieben, was das Reverse Engineering erschwert.
|
|
- Werden 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 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-Loading & Ausführung:**
|
|
- Bibliotheken werden mit `System.loadLibrary` oder `System.load` in den Speicher geladen.
|
|
- JNI_OnLoad wird beim Laden der Bibliothek ausgeführt.
|
|
- Von Java deklarierte native Methoden verknüpfen sich mit nativen Funktionen und ermöglichen die Ausführung.
|
|
|
|
- **Verknüpfung von Java-Methoden mit nativen Funktionen:**
|
|
- **Dynamische Verknüpfung:** Funktionsnamen in nativen Bibliotheken entsprechen einem bestimmten Muster, das automatische Verknüpfung ermöglicht.
|
|
- **Statische Verknüpfung:** Verwendet `RegisterNatives` für die Verknüpfung und bietet Flexibilität bei der Benennung und Strukturierung von Funktionen.
|
|
|
|
- **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](https://azeria-labs.com/writing-arm-assembly-part-1/) von Azeria Labs wird empfohlen.
|
|
|
|
- **JNI & NDK-Dokumentation:**
|
|
- [Oracle's JNI-Spezifikation](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html)
|
|
- [Android's JNI-Tipps](https://developer.android.com/training/articles/perf-jni)
|
|
- [Erste Schritte mit dem NDK](https://developer.android.com/ndk/guides/)
|
|
|
|
- **Debuggen von nativen Bibliotheken:**
|
|
- [Debuggen von Android Native Libraries mit JEB Decompiler](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3)
|
|
|
|
<details>
|
|
|
|
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
|
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
|
|
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
|
|
|
|
</details>
|