Reversing Native Libraries

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

Inne sposoby wsparcia HackTricks:

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:


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ń wymagających wysokiej 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 JNI i interakcji.

  • Ćwiczenia są dostarczane do praktyki ładowania bibliotek, łączenia metod i identyfikowania funkcji natywnych.

Zasoby:

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:

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

Inne sposoby wsparcia HackTricks:

Last updated