# Odwracanie bibliotek natywnych
Nauka hakowania AWS od zera do bohatera z htARTE (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 z htARTE (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.