# Reversing Native Libraries {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 馃挰 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} ### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io) 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: {% 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艅 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` lub `System.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](https://azeria-labs.com/writing-arm-assembly-part-1/) z Azeria Labs jest zalecane. * **Dokumentacja JNI i NDK:** * [Specyfikacja JNI Oracle](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html) * [Porady JNI Androida](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](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io) 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: {% embed url="https://whiteintel.io" %} {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 馃挰 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}