hacktricks/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md

97 lines
6.4 KiB
Markdown
Raw Normal View History

# Reversing Native Libraries
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2024-01-03 10:43:38 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
### [WhiteIntel](https://whiteintel.io)
2024-02-04 10:58:49 +00:00
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
{% embed url="https://whiteintel.io" %}
***
**Aby uzyskać więcej informacji, sprawdź:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
Aplikacje na Androida mogą korzystać z bibliotek natywnych, zazwyczaj napisanych w C lub C++, do zadań wymagających dużej wydajności. Twórcy złośliwego oprogramowania również korzystają z tych bibliotek, ponieważ są trudniejsze do inżynierii odwrotnej niż kod bajtowy DEX. Sekcja ta podkreśla umiejętności inżynierii odwrotnej dostosowane do Androida, zamiast uczyć języków asemblera. Wersje bibliotek dla ARM i x86 są dostarczane dla zapewnienia kompatybilności.
2024-02-04 10:58:49 +00:00
2024-02-11 01:46:25 +00:00
### Kluczowe punkty:
2024-02-04 10:58:49 +00:00
* **Biblioteki natywne w aplikacjach Android:**
* Używane do zadań wymagających dużej wydajności.
* Napisane w C lub C++, co utrudnia inżynierię odwrotną.
* Znajdują się w formacie `.so` (obiekt współdzielony), podobnie jak binaria w systemie Linux.
* Twórcy złośliwego oprogramowania preferują kod natywny, aby utrudnić analizę.
* **Java Native Interface (JNI) i Android NDK:**
* JNI pozwala na implementację metod Java w kodzie natywnym.
* NDK to zestaw narzędzi specyficznych dla Androida do pisania kodu natywnego.
* JNI i NDK łączą kod Java (lub Kotlin) z bibliotekami natywnymi.
* **Ładowanie i wykonywanie bibliotek:**
* Biblioteki są ładowane do pamięci za pomocą `System.loadLibrary` lub `System.load`.
* JNI\_OnLoad jest wykonywane po załadowaniu biblioteki.
* Metody natywne zadeklarowane w Javie łączą się z funkcjami natywnymi, umożliwiając wykonanie.
* **Łączenie metod Java z funkcjami natywnymi:**
* **Linkowanie dynamiczne:** Nazwy funkcji w bibliotekach natywnych pasują do określonego wzoru, co umożliwia automatyczne linkowanie.
* **Linkowanie statyczne:** Używa `RegisterNatives` do linkowania, co zapewnia elastyczność w nazewnictwie funkcji i strukturze.
* **Narzędzia i techniki inżynierii odwrotnej:**
* Narzędzia takie jak Ghidra i IDA Pro pomagają w analizie bibliotek natywnych.
* `JNIEnv` jest kluczowe dla zrozumienia funkcji JNI i interakcji.
* Dostarczono ćwiczenia do praktyki ładowania bibliotek, łączenia metod i identyfikowania funkcji natywnych.
2024-02-04 10:58:49 +00:00
### Zasoby:
* **Nauka asemblera ARM:**
* Sugerowane dla głębszego zrozumienia podstawowej architektury.
* [Podstawy asemblera ARM](https://azeria-labs.com/writing-arm-assembly-part-1/) z Azeria Labs jest zalecane.
* **Dokumentacja JNI i NDK:**
* [Specyfikacja JNI Oracle](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html)
* [Porady JNI Androida](https://developer.android.com/training/articles/perf-jni)
* [Rozpoczęcie pracy z NDK](https://developer.android.com/ndk/guides/)
* **Debugowanie bibliotek natywnych:**
* [Debugowanie bibliotek natywnych Androida za pomocą dekompilatora JEB](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana **dark-web**, która oferuje **darmowe** funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali **skompromentowani** przez **złośliwe oprogramowanie kradnące**.
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
{% embed url="https://whiteintel.io" %}
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2024-01-03 10:43:38 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}