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 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

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:

WhiteIntel

WhiteIntel 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: