# Odwracanie bibliotek natywnych
Nauka hakowania AWS od zera do bohatera zhtARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
## WhiteIntel
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące dane**.
Ich 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ń krytycznych dla wydajności. Twórcy złośliwego oprogramowania również korzystają z tych bibliotek, ponieważ są trudniejsze do zreversowania niż bajty DEX. Sekcja podkreśla umiejętności odwracania inżynierii dostosowane do Androida, zamiast nauczania języków asemblera. Wersje bibliotek ARM i x86 są dostarczane dla kompatybilności.
### Kluczowe punkty:
- **Biblioteki natywne w aplikacjach na Androida:**
- Używane do zadań wymagających wysokiej wydajności.
- Napisane w C lub C++, co sprawia, że odwrócenie inżynierii jest trudne.
- Znalezione w formacie `.so` (shared object), podobnie jak binarne pliki 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 Javy w kodzie natywnym.
- NDK to zestaw narzędzi specyficznych dla Androida do pisania kodu natywnego.
- JNI i NDK łączą kod Javy (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 podczas ładowania biblioteki.
- Metody natywne zadeklarowane w Javie łączą się z funkcjami natywnymi, umożliwiając wykonanie.
- **Łączenie Metod Javy z Funkcjami Natywnymi:**
- **Łączenie Dynamiczne:** Nazwy funkcji w bibliotekach natywnych pasują do określonego wzorca, co umożliwia automatyczne łączenie.
- **Łączenie Statyczne:** Wykorzystuje `RegisterNatives` do łączenia, zapewniając elastyczność w nazewnictwie funkcji i strukturze.
- **Narzędzia i Techniki Odwracania Inżynierii:**
- Narzędzia takie jak Ghidra i IDA Pro pomagają analizować biblioteki natywne.
- `JNIEnv` jest kluczowy do zrozumienia funkcji i interakcji JNI.
- Ćwiczenia są dostarczane do praktyki ładowania bibliotek, łączenia metod i identyfikowania funkcji natywnych.
### Zasoby:
- **Nauka Assemblera ARM:**
- Zalecane dla głębszego zrozumienia architektury.
- [Podstawy Assemblera ARM](https://azeria-labs.com/writing-arm-assembly-part-1/) od Azeria Labs są polecane.
- **Dokumentacja JNI i NDK:**
- [Specyfikacja JNI Oracle'a](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html)
- [Porady dotyczące JNI w Androidzie](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
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje sprawdzania, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące dane**.
Ich 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" %}
Nauka hakowania AWS od zera do bohatera zhtARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.