Reversing Native Libraries
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kwa maelezo zaidi angalia: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html
Programu za Android zinaweza kutumia maktaba za asili, ambazo kwa kawaida zimeandikwa kwa C au C++, kwa kazi zinazohitaji utendaji wa juu. Waumbaji wa programu za hasidi pia hutumia maktaba hizi, kwani ni vigumu zaidi kuzirekebisha kuliko bytecode ya DEX. Sehemu hii inasisitiza ujuzi wa kurekebisha ambao umeandaliwa kwa Android, badala ya kufundisha lugha za mkusanyiko. Toleo la ARM na x86 la maktaba linapatikana kwa ajili ya ulinganifu.
Maktaba za Asili katika Programu za Android:
Zinatumika kwa kazi zinazohitaji utendaji wa juu.
Zimeandikwa kwa C au C++, na kufanya kurekebisha kuwa changamoto.
Zinapatikana katika muundo wa .so
(kipande kilichoshirikiwa), sawa na binaries za Linux.
Waumbaji wa programu za hasidi wanapendelea msimbo wa asili ili kufanya uchambuzi kuwa mgumu.
Java Native Interface (JNI) & Android NDK:
JNI inaruhusu mbinu za Java kutekelezwa katika msimbo wa asili.
NDK ni seti maalum ya zana za Android za kuandika msimbo wa asili.
JNI na NDK huunganisha msimbo wa Java (au Kotlin) na maktaba za asili.
Upakiaji wa Maktaba & Utekelezaji:
Maktaba zinapakiwa kwenye kumbukumbu kwa kutumia System.loadLibrary
au System.load
.
JNI_OnLoad inatekelezwa wakati wa upakiaji wa maktaba.
Mbinu za asili zilizotangazwa na Java huunganisha na kazi za asili, na kuwezesha utekelezaji.
Kuunganisha Mbinu za Java na Kazi za Asili:
Kuunganisha Kitaalamu: Majina ya kazi katika maktaba za asili yanalingana na muundo maalum, kuruhusu kuunganisha kiotomatiki.
Kuunganisha Kikatiba: Inatumia RegisterNatives
kwa kuunganisha, ikitoa kubadilika katika uandishi wa majina ya kazi na muundo.
Zana na Mbinu za Kurekebisha:
Zana kama Ghidra na IDA Pro husaidia kuchambua maktaba za asili.
JNIEnv
ni muhimu kwa kuelewa kazi na mwingiliano wa JNI.
Mazoezi yanatolewa ili kufanyia mazoezi upakiaji wa maktaba, kuunganisha mbinu, na kutambua kazi za asili.
Kujifunza Mkusanyiko wa ARM:
Inapendekezwa kwa kuelewa kwa kina muundo wa msingi.
Msingi wa Mkusanyiko wa ARM kutoka Azeria Labs inapendekezwa.
Hati za JNI & NDK:
Kurekebisha Maktaba za Asili:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)