Reversing Native Libraries
WhiteIntel to wyszukiwarka zasilana dark-web, która oferuje darmowe funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali skompromentowani przez złośliwe oprogramowanie kradnące.
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ć 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ń wymagających dużej wydajności. Twórcy złośliwego oprogramowania również korzystają z tych bibliotek, ponieważ są trudniejsze do inżynierii odwrotnej niż kod bajtowy DEX. Sekcja ta podkreśla umiejętności inżynierii odwrotnej dostosowane do Androida, zamiast uczyć języków asemblera. Wersje bibliotek dla ARM i x86 są dostarczane dla zapewnienia kompatybilności.
Kluczowe punkty:
Biblioteki natywne w aplikacjach Android:
Używane do zadań wymagających dużej wydajności.
Napisane w C lub C++, co utrudnia inżynierię odwrotną.
Znajdują się w formacie
.so
(obiekt współdzielony), podobnie jak binaria w systemie 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 Java w kodzie natywnym.
NDK to zestaw narzędzi specyficznych dla Androida do pisania kodu natywnego.
JNI i NDK łączą kod Java (lub Kotlin) z bibliotekami natywnymi.
Ładowanie i wykonywanie bibliotek:
Biblioteki są ładowane do pamięci za pomocą
System.loadLibrary
lubSystem.load
.JNI_OnLoad jest wykonywane po załadowaniu biblioteki.
Metody natywne zadeklarowane w Javie łączą się z funkcjami natywnymi, umożliwiając wykonanie.
Łączenie metod Java z funkcjami natywnymi:
Linkowanie dynamiczne: Nazwy funkcji w bibliotekach natywnych pasują do określonego wzoru, co umożliwia automatyczne linkowanie.
Linkowanie statyczne: Używa
RegisterNatives
do linkowania, co zapewnia elastyczność w nazewnictwie funkcji i strukturze.Narzędzia i techniki inżynierii odwrotnej:
Narzędzia takie jak Ghidra i IDA Pro pomagają w analizie bibliotek natywnych.
JNIEnv
jest kluczowe dla zrozumienia funkcji JNI i interakcji.Dostarczono ćwiczenia do praktyki ładowania bibliotek, łączenia metod i identyfikowania funkcji natywnych.
Zasoby:
Nauka asemblera ARM:
Sugerowane dla głębszego zrozumienia podstawowej architektury.
Podstawy asemblera ARM z Azeria Labs jest zalecane.
Dokumentacja JNI i NDK:
Debugowanie bibliotek natywnych:
WhiteIntel to wyszukiwarka zasilana dark-web, która oferuje darmowe funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali skompromentowani przez złośliwe oprogramowanie kradnące.
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:
Last updated