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

6.5 KiB

Odwracanie bibliotek natywnych

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

WhiteIntel

WhiteIntel to wyszukiwarka zasilana dark-webem, 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ć dalsze informacje, sprawdź: 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 odwracanie 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.

  • Deklarowane w Javie metody natywne łączą się z funkcjami natywnymi, umożliwiając ich 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:

WhiteIntel

WhiteIntel to wyszukiwarka zasilana dark-webem, 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: