6.2 KiB
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai repository di HackTricks e HackTricks Cloud su GitHub.
Tecniche di De-obfuscation Manuale
Nel campo della sicurezza del software, il processo di rendere comprensibile il codice oscurato, noto come de-obfuscation, è cruciale. Questa guida approfondisce diverse strategie per la de-obfuscation, concentrandosi sulle tecniche di analisi statica e sul riconoscimento dei modelli di obfuscation. Inoltre, introduce un esercizio per l'applicazione pratica e suggerisce ulteriori risorse per coloro interessati ad esplorare argomenti più avanzati.
Strategie per la De-obfuscation Statica
Nel trattare con il codice oscurato, possono essere utilizzate diverse strategie a seconda della natura dell'obfuscation:
- Bytecode DEX (Java): Un approccio efficace consiste nell'identificare i metodi di de-obfuscation dell'applicazione, quindi replicare questi metodi in un file Java. Questo file viene eseguito per invertire l'obfuscation sugli elementi mirati.
- Java e Codice Nativo: Un altro metodo consiste nel tradurre l'algoritmo di de-obfuscation in un linguaggio di scripting come Python. Questa strategia sottolinea che l'obiettivo principale non è comprendere completamente l'algoritmo, ma eseguirlo in modo efficace.
Riconoscimento dell'Obfuscation
Il riconoscimento del codice obfuscato è il primo passo nel processo di de-obfuscation. Gli indicatori chiave includono:
- L'assenza o la confusione delle stringhe in Java e Android, che possono suggerire l'obfuscation delle stringhe.
- La presenza di file binari nella directory delle risorse o chiamate a
DexClassLoader
, che suggeriscono il decompressione del codice e il caricamento dinamico. - L'uso di librerie native insieme a funzioni JNI non identificabili, che indicano un'eventuale obfuscation dei metodi nativi.
Analisi Dinamica nella De-obfuscation
Eseguendo il codice in un ambiente controllato, l'analisi dinamica consente di osservare come il codice obfuscato si comporta in tempo reale. Questo metodo è particolarmente efficace nel rivelare il funzionamento interno di modelli di obfuscation complessi progettati per nascondere la vera intenzione del codice.
Applicazioni dell'Analisi Dinamica
- Decrittazione in Tempo di Esecuzione: Molte tecniche di obfuscation prevedono la crittografia di stringhe o segmenti di codice che vengono decrittati solo durante l'esecuzione. Attraverso l'analisi dinamica, questi elementi crittografati possono essere catturati nel momento della decrittazione, rivelando la loro vera forma.
- Identificazione delle Tecniche di Obfuscation: Monitorando il comportamento dell'applicazione, l'analisi dinamica può aiutare a identificare specifiche tecniche di obfuscation utilizzate, come la virtualizzazione del codice, i packer o la generazione dinamica del codice.
- Scoperta di Funzionalità Nascoste: Il codice obfuscato può contenere funzionalità nascoste che non sono evidenti solo attraverso l'analisi statica. L'analisi dinamica consente di osservare tutti i percorsi del codice, inclusi quelli eseguiti condizionalmente, per scoprire tali funzionalità nascoste.
Riferimenti e Ulteriori Letture
- https://maddiestone.github.io/AndroidAppRE/obfuscation.html
- BlackHat USA 2018: "Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library" [video]
- Questa presentazione illustra l'ingegneria inversa di una delle librerie native anti-analisi più complesse che ho visto utilizzate da un'applicazione Android. Copre principalmente le tecniche di obfuscation nel codice nativo.
- REcon 2019: "The Path to the Payload: Android Edition" [video]
- Questa presentazione discute una serie di tecniche di obfuscation, esclusivamente nel codice Java, che un botnet Android stava utilizzando per nascondere il suo comportamento.
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai repository di HackTricks e HackTricks Cloud su GitHub.