hacktricks/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md

4.4 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:

WhiteIntel

WhiteIntel ni injini ya utaftaji inayotumia dark-web ambayo inatoa huduma za bure kuchunguza ikiwa kampuni au wateja wake wameathiriwa na malware za wizi.

Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na malware za wizi wa habari.

Unaweza kutembelea tovuti yao na kujaribu injini yao bure kwa:

{% embed url="https://whiteintel.io" %}


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

Programu za Android zinaweza kutumia maktaba za asili, kwa kawaida zilizoandikwa kwa C au C++, kwa kazi za msingi za utendaji. Wabunifu wa programu hasidi pia hutumia maktaba hizi, kwani ni ngumu kuzigeuza kuliko bytecode ya DEX. Sehemu hii inasisitiza ujuzi wa kugeuza maktaba za asili zilizobinafsishwa kwa Android, badala ya kufundisha lugha za mkutano. Toleo la ARM na x86 la maktaba hutolewa kwa utangamano.

Mambo Muhimu:

  • Maktaba za Asili katika Programu za Android:

  • Hutumiwa kwa kazi zenye mahitaji makubwa ya utendaji.

  • Zimeandikwa kwa C au C++, hivyo kugeuza ni changamoto.

  • Zinapatikana katika muundo wa .so (faili za kushirikishwa), sawa na programu za Linux.

  • Wabunifu wa malware wanapendelea nambari za asili ili kufanya uchambuzi kuwa mgumu.

  • Kiolesura cha Java Native (JNI) & NDK ya Android:

  • JNI inaruhusu njia za Java kutekelezwa kwa nambari za asili.

  • NDK ni seti ya zana maalum ya Android kutunga nambari za asili.

  • JNI na NDK hupitisha nambari za 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 kwa Java zinahusishwa 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 uunganishaji wa moja kwa moja.

  • Unganishaji wa Stesheni: Hutumia RegisterNatives kwa uunganishaji, kutoa mabadiliko katika majina ya kazi na muundo.

  • Zana na Mbinu za Kugeuza:

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

  • JNIEnv ni muhimu kwa kuelewa njia za JNI na mwingiliano.

  • Mazoezi yanatolewa kufanya mazoezi ya kupakia maktaba, kuunganisha njia, na kutambua kazi za asili.

Vyanzo: