5.5 KiB
Kudukua programu inayoweza kudebugiwa
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako inatangazwa katika HackTricks au kupakua HackTricks kwa muundo wa PDF Angalia MPANGO WA KUJIUNGA!
- Pata swag rasmi ya PEASS & HackTricks
- Gundua The PEASS Family, mkusanyiko wetu wa kipekee wa NFTs
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa HackTricks na HackTricks Cloud repos za github.
Kudukua ukaguzi wa root na uwezo wa kudebugiwa
Sehemu hii ya chapisho ni muhtasari kutoka chapisho https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
Hatua za Kufanya Programu ya Android Iweze Kudebugiwa na Kudukua Ukaguzi
Kufanya Programu Iweze Kudebugiwa
Yaliyomo yamechukuliwa kutoka https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
- Kudondoa APK:
- Tumia zana ya APK-GUI kudondoa APK.
- Katika faili ya android-manifest, ingiza
android:debuggable=true
kuwezesha hali ya kudebugiwa. - Dondoa tena, saini, na zipalign programu iliyobadilishwa.
- Sakinisha Programu Iliyobadilishwa:
- Tumia amri:
adb install <jina_la_programu>
.
- Pata Jina la Pakiti:
- Tekeleza
adb shell pm list packages –3
kuorodhesha programu za watu wengine na kupata jina la pakiti.
- Weka Programu Iwe Ngoja Uunganisho wa Kudebugiwa:
- Amri:
adb shell am setup-debug-app –w <jina_la_pakiti>
. - Kumbuka: Amri hii lazima itekelezwe kila wakati kabla ya kuanza programu ili kuhakikisha inangoja kudebugiwa.
- Kwa uthabiti, tumia
adb shell am setup-debug-app –w -–persistent <jina_la_pakiti>
. - Ili kuondoa alama zote, tumia
adb shell am clear-debug-app <jina_la_pakiti>
.
- Jitayarisha kwa Kudebugiwa kwenye Android Studio:
- Nenda kwenye Android Studio kwa kubonyeza File -> Open Profile or APK.
- Fungua APK iliyobadilishwa.
- Weka Alama za Kusimamisha katika Faili za Java muhimu:
- Weka alama za kusimamisha katika
MainActivity.java
(hasa katika njia yaonCreate
),b.java
, naContextWrapper.java
.
Kudukua Ukaguzi
Programu, katika maeneo fulani, itathibitisha ikiwa inaweza kudebugiwa na pia itafanya ukaguzi wa faili za binary zinazoonyesha kifaa kilichorootiwa. Kudebugiwa kunaweza kutumika kubadilisha habari za programu, kufuta biti ya kudebugiwa, na kubadilisha majina ya faili za binary zinazotafutwa ili kudukua ukaguzi huu.
Kwa ukaguzi wa kudebugiwa:
- Badilisha Mipangilio ya Alama:
- Katika sehemu ya mchanganyiko wa konsoli ya kudebugi, nenda kwenye:
this mLoadedAPK -> mApplicationInfo -> flags = 814267974
. - Kumbuka: Uwakilishi wa binary wa
flags = 814267974
ni11000011100111011110
, ikionyesha kuwa "Flag_debuggable" iko hai.
Hatua hizi zinahakikisha kuwa programu inaweza kudebugiwa na ukaguzi fulani wa usalama unaweza kudukuliwa kwa kutumia kudebugi, kurahisisha uchambuzi au ubadilishaji wa kina wa tabia ya programu.
Hatua ya 2 inahusisha kubadilisha thamani ya alama kuwa 814267972, ambayo inawakilishwa kwa binary kama 110000101101000000100010100.
Kudukua Udhaifu
Onyesho lilifanywa kwa kutumia programu yenye udhaifu ambayo ina kifungo na maandishi. Awali, programu inaonyesha "Crack Me". Lengo ni kubadilisha ujumbe kutoka "Try Again" hadi "Hacked" wakati wa muda wa uendeshaji, bila kubadilisha msimbo wa chanzo.
Kuangalia Udhaifu
- Programu ilidondolewa kwa kutumia
apktool
ili kupata faili yaAndroidManifest.xml
. - Kuwepo kwa
android_debuggable="true"
katika AndroidManifest.xml kunamaanisha programu inaweza kudebugiwa na inaweza kudukuliwa. - Ni muhimu kutambua kuwa
apktool
inatumika tu kuangalia hali ya kudebugiwa bila kubadilisha msimbo wowote.
Kujiandaa kwa Usanidi
- Mchakato ulihusisha kuanzisha emulator, kusakinisha programu yenye udhaifu, na kutumia
adb jdwp
kutambua bandari za Dalvik VM zinazosikiliza. - JDWP (Java Debug Wire Protocol) inaruhusu kudebugiwa kwa programu inayotumika kwenye VM kwa kufunua bandari ya kipekee.
- Uhamishaji wa bandari ulikuwa muhimu kwa kudebugiwa kwa mbali, ikifuatiwa na kuunganisha JDB kwenye programu lengwa.
Kuingiza Kanuni Wakati wa Muda wa Uendeshaji
- Udanganyifu ulifanywa kwa kuweka alama za kusimamisha na kudhibiti mtiririko wa programu.
- Amri kama
classes
namethods <jina_la_darasa>
zilitumika kufunua muundo wa programu. - Alama ya kusimamisha ilowekwa kwenye njia ya
onClick
, na utekelezaji wake ulidhibitiwa. - Am