tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

Ručne Tehnike De-obfuskacije

U oblasti bezbednosti softvera, proces pretvaranja obfuskovanog koda u razumljiv, poznat kao de-obfuskacija, je ključan. Ovaj vodič se bavi različitim strategijama za de-obfuskaciju, fokusirajući se na tehnike statičke analize i prepoznavanje obrazaca obfuskacije. Pored toga, uvodi vežbu za praktičnu primenu i predlaže dodatne resurse za one koji su zainteresovani za istraživanje naprednijih tema.

Strategije za Statičku De-obfuskaciju

Kada se radi sa obfuskovanim kodom, može se primeniti nekoliko strategija u zavisnosti od prirode obfuskacije:

  • DEX bytecode (Java): Jedan efikasan pristup uključuje identifikaciju metoda de-obfuskacije aplikacije, a zatim repliciranje ovih metoda u Java datoteci. Ova datoteka se izvršava kako bi se obrnula obfuskacija na ciljnim elementima.
  • Java i Nativni Kod: Druga metoda je prevođenje algoritma de-obfuskacije u skriptni jezik poput Pythona. Ova strategija naglašava da primarni cilj nije potpuno razumevanje algoritma, već njegovo efikasno izvršavanje.

Prepoznavanje Obfuskacije

Prepoznavanje obfuskovanog koda je prvi korak u procesu de-obfuskacije. Ključni indikatori uključuju:

  • odsustvo ili premeštanje stringova u Javi i Androidu, što može sugerisati obfuskaciju stringova.
  • prisutnost binarnih datoteka u direktorijumu resursa ili pozivi ka DexClassLoader, što ukazuje na raspakivanje 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 De-obfuskaciji

Izvršavanjem koda u kontrolisanom okruženju, dinamička analiza omogućava posmatranje kako se obfuskovani kod ponaša u realnom vremenu. Ova metoda je posebno efikasna u otkrivanju unutrašnjih mehanizama složenih obrazaca obfuskacije koji su dizajnirani da sakriju pravu nameru koda.

Primene Dinamičke Analize

  • Dešifrovanje u Vremenu Izvršavanja: Mnoge tehnike obfuskacije uključuju enkripciju stringova ili kodnih segmenata koji se dešifruju samo u trenutku izvršavanja. Kroz dinamičku analizu, ovi enkriptovani elementi mogu se uhvatiti 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, pakovanje ili dinamičko generisanje koda.
  • Otkrivanje Sakrivenih Funkcionalnosti: Obfuskovani kod može sadržati skrivene funkcionalnosti koje nisu očigledne samo kroz statičku analizu. Dinamička analiza omogućava posmatranje svih putanja koda, uključujući one koje se izvršavaju uslovno, kako bi se otkrile takve skrivene funkcionalnosti.

Reference i Dalje Čitanje

  • https://maddiestone.github.io/AndroidAppRE/obfuscation.html
  • BlackHat USA 2018: “Raspakivanje Pakovanog Raspakivača: Obrnuto Inženjerstvo Android Anti-Analiza Biblioteke” [video]
  • Ova prezentacija se bavi obrnutim inženjeringom jedne od najkompleksnijih anti-analiza nativnih biblioteka koje sam video da koristi Android aplikacija. Pokriva uglavnom tehnike obfuskacije u nativnom kodu.
  • REcon 2019: “Put do Tereta: Android Izdanje” [video]
  • Ova prezentacija diskutuje o nizu tehnika obfuskacije, isključivo u Java kodu, koje je Android botnet koristio da sakrije svoje ponašanje.

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks