hacktricks/mobile-pentesting/android-app-pentesting/manual-deobfuscation.md
2024-02-10 13:03:23 +00:00

64 lines
6.2 KiB
Markdown

<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai repository di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) su GitHub.
</details>
## 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](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
* BlackHat USA 2018: "Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library" \[[video](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
* 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](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
* Questa presentazione discute una serie di tecniche di obfuscation, esclusivamente nel codice Java, che un botnet Android stava utilizzando per nascondere il suo comportamento.
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai repository di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) su GitHub.
</details>