Manual DeObfuscation

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Ručne tehnike deobfuskacije

U oblasti softverske bezbednosti, proces čitanja nejasnog koda, poznat kao deobfuskacija, je ključan. Ovaj vodič istražuje različite strategije za deobfuskaciju, fokusirajući se na tehnike statičke analize i prepoznavanje obfuskacijskih obrazaca. Takođe, uvodi vežbu za praktičnu primenu i predlaže dodatne izvore za one koji su zainteresovani za istraživanje naprednih tema.

Strategije za statičku deobfuskaciju

Kada se suočavate sa obfuskiranim kodom, mogu se primeniti različite strategije u zavisnosti od prirode obfuskacije:

  • DEX bajtkod (Java): Jedan efikasan pristup uključuje identifikaciju metoda deobfuskacije aplikacije, a zatim repliciranje ovih metoda u Java fajlu. Taj fajl se izvršava kako bi se obrnula obfuskacija na ciljanim elementima.

  • Java i nativni kod: Drugi metod je prevođenje algoritma deobfuskacije u skriptni jezik poput Python-a. Ova strategija ističe da je primarni cilj ne potpuno razumevanje algoritma, već efikasno izvršavanje istog.

Prepoznavanje obfuskacije

Prepoznavanje obfuskiranog koda je prvi korak u procesu deobfuskacije. Ključni pokazatelji uključuju:

  • Odsustvo ili premeštanje stringova u Java-i i Android-u, što može ukazivati na obfuskaciju stringova.

  • Prisustvo binarnih fajlova u assets direktorijumu ili pozivi DexClassLoader-a, što ukazuje na dekompresiju koda i dinamičko učitavanje.

  • Korišćenje nativnih biblioteka zajedno sa neidentifikovanim JNI funkcijama, što ukazuje na potencijalnu obfuskaciju nativnih metoda.

Dinamička analiza u deobfuskaciji

Izvršavanjem koda u kontrolisanom okruženju, dinamička analiza omogućava posmatranje ponašanja obfuskiranog koda u realnom vremenu. Ova metoda je posebno efikasna u otkrivanju unutrašnjih mehanizama složenih obfuskacijskih obrazaca koji su dizajnirani da sakriju pravi cilj koda.

Primene dinamičke analize

  • Dekripcija u toku izvršavanja: Mnoge tehnike obfuskacije uključuju šifrovanje stringova ili delova koda koji se dešifruju samo tokom izvršavanja. Kroz dinamičku analizu, ovi šifrovani elementi mogu biti uhvaćeni u trenutku dešifrovanja, otkrivajući njihov pravi oblik.

  • Prepoznavanje tehnika obfuskacije: Praćenjem ponašanja aplikacije, dinamička analiza može pomoći u identifikaciji specifičnih tehnika obfuskacije koje se koriste, kao što su virtualizacija koda, paketi ili dinamička generacija koda.

  • Otkrivanje skrivene funkcionalnosti: Obfuskirani kod može sadržati skrivene funkcionalnosti koje nisu očigledne samo statičkom analizom. Dinamička analiza omogućava posmatranje svih putanja koda, uključujući one koje se uslovno izvršavaju, kako bi se otkrile takve skrivene funkcionalnosti.

Reference i dalje čitanje

  • BlackHat USA 2018: "Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library" [video]

  • Ova prezentacija se bavi reverznom inženjeringom jedne od najkompleksnijih anti-analitičkih nativnih biblioteka koje sam video da se koriste u Android aplikacijama. Obuhvata uglavnom tehnike obfuskacije u nativnom kodu.

  • REcon 2019: "The Path to the Payload: Android Edition" [video]

  • Ova prezentacija razmatra niz tehnika obfuskacije, isključivo u Java kodu, koje je jedan Android botnet koristio kako bi sakrio svoje ponašanje.

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated