tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Handmatige De-obfuscation Tegnieke

In die wêreld van sagteware sekuriteit, is die proses om obscured kode verstaanbaar te maak, bekend as de-obfuscation, van kardinale belang. Hierdie gids verken verskeie strategieë vir de-obfuscation, met fokus op statiese analise tegnieke en die herkenning van obfuscation patrone. Daarbenewens word 'n oefening vir praktiese toepassing bekendgestel en verdere hulpbronne voorgestel vir diegene wat belangstel om meer gevorderde onderwerpe te verken.

Strategieë vir Statiese De-obfuscation

Wanneer daar met obfuscated kode gewerk word, kan verskeie strategieë toegepas word, afhangende van die aard van die obfuscation:

  • DEX bytecode (Java): Een effektiewe benadering behels die identifisering van die aansoek se de-obfuscation metodes, en dan die replika van hierdie metodes in 'n Java-lêer. Hierdie lêer word uitgevoer om die obfuscation op die geteikende elemente om te keer.
  • Java en Native Code: 'n Ander metode is om die de-obfuscation algoritme in 'n skriptaal soos Python te vertaal. Hierdie strategie beklemtoon dat die primêre doel nie is om die algoritme ten volle te verstaan nie, maar om dit effektief uit te voer.

Identifisering van Obfuscation

Die herkenning van obfuscated kode is die eerste stap in die de-obfuscation proses. Sleutel aanwysers sluit in:

  • Die afwesigheid of vermenging van strings in Java en Android, wat kan dui op string obfuscation.
  • Die teenwoordigheid van binêre lêers in die batesgids of oproepe na DexClassLoader, wat dui op kode unpacking en dinamiese laai.
  • Die gebruik van native biblioteke saam met onidentifiseerbare JNI funksies, wat moontlike obfuscation van native metodes aandui.

Dinamiese Analise in De-obfuscation

Deur die kode in 'n beheerde omgewing uit te voer, laat dinamiese analise toe om te observeer hoe die obfuscated kode in werklike tyd optree. Hierdie metode is veral effektief om die innerlike werking van komplekse obfuscation patrone wat ontwerp is om die werklike bedoeling van die kode te verberg, te onthul.

Toepassings van Dinamiese Analise

  • Runtime Decryption: Baie obfuscation tegnieke behels die enkripsie van strings of kode segmente wat slegs tydens runtime ontcijfer word. Deur dinamiese analise kan hierdie geënkripteerde elemente op die oomblik van ontcijfering vasgevang word, wat hul werklike vorm onthul.
  • Identifisering van Obfuscation Tegnieke: Deur die aansoek se gedrag te monitor, kan dinamiese analise help om spesifieke obfuscation tegnieke te identifiseer wat gebruik word, soos kode virtualisering, packers, of dinamiese kode generasie.
  • Ontdek van Verborgen Funksionaliteit: Obfuscated kode kan verborgen funksionaliteite bevat wat nie deur statiese analise alleen duidelik is nie. Dinamiese analise laat toe om al die kodepaaie te observeer, insluitend dié wat voorwaardelik uitgevoer word, om sulke verborgen funksionaliteite te ontdek.

Verwysings en Verdere Leeswerk

  • https://maddiestone.github.io/AndroidAppRE/obfuscation.html
  • BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” [video]
  • Hierdie praatjie bespreek die omgekeerde ingenieurswese van een van die mees komplekse anti-analise native biblioteke wat ek gesien het wat deur 'n Android aansoek gebruik word. Dit dek meestal obfuscation tegnieke in native kode.
  • REcon 2019: “The Path to the Payload: Android Edition” [video]
  • Hierdie praatjie bespreek 'n reeks obfuscation tegnieke, slegs in Java kode, wat 'n Android botnet gebruik het om sy gedrag te verberg.

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks