hacktricks/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md
2024-02-11 02:13:58 +00:00

5.1 KiB

Kugeuza Maktaba za Asili

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Kwa habari zaidi angalia: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Programu za Android zinaweza kutumia maktaba za asili, kawaida zimeandikwa kwa C au C++, kwa kazi zenye utendaji mkubwa. Waundaji wa programu hasidi pia hutumia maktaba hizi, kwani ni ngumu kuzirekebisha kuliko kanuni ya DEX. Sehemu hii inasisitiza ujuzi wa kurekebisha nyuma uliozingatia Android, badala ya kufundisha lugha za mkutano. Toleo la ARM na x86 la maktaba linapatikana kwa utangamano.

Mambo Muhimu:

  • Maktaba za Asili katika Programu za Android:

  • Hutumiwa kwa kazi zenye utendaji mkubwa.

  • Zimeandikwa kwa C au C++, hivyo kurekebisha nyuma kunakuwa changamoto.

  • Zinapatikana katika muundo wa .so (kitu kinachoshirikiwa), kama vile programu za Linux.

  • Waundaji wa programu hasidi wanapendelea kanuni ya asili ili kufanya uchambuzi kuwa mgumu zaidi.

  • Java Native Interface (JNI) & Android NDK:

  • JNI inaruhusu njia za Java zitekelezwe kwa kutumia kanuni ya asili.

  • NDK ni seti maalum ya zana za Android za kuandika kanuni ya asili.

  • JNI na NDK hufanya mawasiliano kati ya kanuni ya Java (au Kotlin) na maktaba za asili.

  • Kupakia na Kutekeleza Maktaba:

  • Maktaba hupakiwa kwenye kumbukumbu kwa kutumia System.loadLibrary au System.load.

  • JNI_OnLoad inatekelezwa wakati wa kupakia maktaba.

  • Njia za asili zilizotangazwa katika Java zinaunganishwa na kazi za asili, kuruhusu utekelezaji.

  • Kuunganisha Njia za Java na Kazi za Asili:

  • Unganishaji wa Kudumu: Majina ya kazi katika maktaba za asili yanalingana na muundo maalum, kuruhusu kuunganisha moja kwa moja.

  • Unganishaji wa Stesheni: Hutumia RegisterNatives kwa unganishaji, hutoa uwezo wa kubadilisha majina na muundo wa kazi.

  • Zana na Mbinu za Kurekebisha Nyuma:

  • Zana kama Ghidra na IDA Pro husaidia kuchambua maktaba za asili.

  • JNIEnv ni muhimu kwa kuelewa kazi na mwingiliano wa JNI.

  • Zoezi zinapatikana ili kujifunza kupakia maktaba, kuunganisha njia, na kutambua kazi za asili.

Vyanzo:

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks: