Reversing Native Libraries

Support HackTricks

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.

Mambo Muhimu:

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

Rasilimali:

Support HackTricks

Last updated