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

Manual De-obfuscation Techniques

Katika eneo la usalama wa programu, mchakato wa kufanya msimbo uliofichwa kueleweka, unaojulikana kama de-obfuscation, ni muhimu. Mwongo huu unachunguza mikakati mbalimbali ya de-obfuscation, ukizingatia mbinu za uchambuzi wa statiki na kutambua mifumo ya obfuscation. Aidha, unatoa zoezi la matumizi ya vitendo na kupendekeza rasilimali zaidi kwa wale wanaopenda kuchunguza mada za juu zaidi.

Mikakati ya Static De-obfuscation

Wakati wa kushughulika na obfuscated code, mikakati kadhaa inaweza kutumika kulingana na asili ya obfuscation:

  • DEX bytecode (Java): Njia moja yenye ufanisi ni kutambua mbinu za de-obfuscation za programu, kisha kuiga mbinu hizi katika faili la Java. Faili hii inatekelezwa ili kubadilisha obfuscation kwenye vipengele vilivyokusudiwa.
  • Java na Native Code: Njia nyingine ni kutafsiri algorithimu ya de-obfuscation katika lugha ya skripti kama Python. Mikakati hii inaonyesha kwamba lengo kuu si kuelewa kikamilifu algorithimu bali kuitekeleza kwa ufanisi.

Kutambua Obfuscation

Kutambua msimbo uliofichwa ni hatua ya kwanza katika mchakato wa de-obfuscation. Viashiria muhimu ni pamoja na:

  • ukosefu au kuchanganya kwa nyuzi katika Java na Android, ambayo inaweza kuashiria obfuscation ya nyuzi.
  • uwepo wa faili za binary katika saraka ya mali au wito kwa DexClassLoader, ukionyesha unpacking ya msimbo na upakiaji wa dynamic.
  • Matumizi ya maktaba za asili pamoja na kazi za JNI zisizoweza kutambulika, kuashiria uwezekano wa obfuscation ya mbinu za asili.

Dynamic Analysis in De-obfuscation

Kwa kutekeleza msimbo katika mazingira yaliyodhibitiwa, uchambuzi wa dynamic unaruhusu kuangalia jinsi msimbo uliofichwa unavyofanya kazi kwa wakati halisi. Njia hii ni bora katika kufichua kazi za ndani za mifumo tata ya obfuscation ambayo imeundwa kuficha nia halisi ya msimbo.

Maombi ya Dynamic Analysis

  • Runtime Decryption: Mbinu nyingi za obfuscation zinahusisha kuficha nyuzi au sehemu za msimbo ambazo zinafichuliwa tu wakati wa utekelezaji. Kupitia uchambuzi wa dynamic, vipengele hivi vilivyofichwa vinaweza kukamatwa wakati wa kufichuliwa, vikifunua sura yao halisi.
  • Kutambua Mbinu za Obfuscation: Kwa kufuatilia tabia ya programu, uchambuzi wa dynamic unaweza kusaidia kutambua mbinu maalum za obfuscation zinazotumika, kama vile virtualization ya msimbo, packers, au uzalishaji wa msimbo wa dynamic.
  • Kufichua Uwezo wa Siri: Msimbo uliofichwa unaweza kuwa na uwezo wa siri ambao hauonekani kupitia uchambuzi wa statiki pekee. Uchambuzi wa dynamic unaruhusu kuangalia njia zote za msimbo, ikiwa ni pamoja na zile zinazotekelezwa kwa masharti, ili kufichua uwezo huo wa siri.

References and Further Reading

  • https://maddiestone.github.io/AndroidAppRE/obfuscation.html
  • BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” [video]
  • Hotuba hii inazungumzia uhandisi wa nyuma wa moja ya maktaba za asili za kupambana na uchambuzi ngumu zaidi ambazo nimeona zikitumika na programu ya Android. Inashughulikia hasa mbinu za obfuscation katika msimbo wa asili.
  • REcon 2019: “The Path to the Payload: Android Edition” [video]
  • Hotuba hii inajadili mfululizo wa mbinu za obfuscation, pekee katika msimbo wa Java, ambazo botnet ya Android ilikuwa ikitumia kuficha tabia yake.

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