Kurekebisha Maktaba za Asili

Reading time: 3 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

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 mzito. Waumbaji wa programu za hasara pia hutumia maktaba hizi, kwani ni ngumu zaidi kuzirekebisha kuliko DEX bytecode. Sehemu hii inasisitiza ujuzi wa kurekebisha unaolengwa kwa Android, badala ya kufundisha lugha za mkusanyiko. Toleo za ARM na x86 za maktaba zinapatikana kwa ajili ya ulinganifu.

Vidokezo Muhimu:

  • Maktaba za Asili katika Programu za Android:
  • Zinatumika kwa kazi zinazohitaji utendaji mzito.
  • Zimeandikwa kwa C au C++, na kufanya kurekebisha kuwa ngumu.
  • Zinapatikana katika muundo wa .so (kipande kilichoshirikiwa), sawa na binaries za Linux.
  • Waumbaji wa programu za hasara 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.
  • Kuweka na Kutekeleza Maktaba:
  • Maktaba zinawekwa kwenye kumbukumbu kwa kutumia System.loadLibrary au System.load.
  • JNI_OnLoad inatekelezwa wakati wa kuweka maktaba.
  • Mbinu za asili zilizotangazwa na Java huunganisha na kazi za asili, kuruhusu 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 majina na muundo wa kazi.
  • 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 kuweka maktaba, kuunganisha mbinu, na kutambua kazi za asili.

Rasilimali:

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks