<summary><strong>Aprenda hacking AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
No campo da **segurança de software**, o processo de tornar o código obscuro compreensível, conhecido como **desofuscação**, é crucial. Este guia explora várias estratégias de desofuscação, focando em técnicas de análise estática e reconhecimento de padrões de ofuscação. Além disso, ele apresenta um exercício para aplicação prática e sugere recursos adicionais para aqueles interessados em explorar tópicos mais avançados.
- **Bytecode DEX (Java)**: Uma abordagem eficaz envolve identificar os métodos de desofuscação do aplicativo e replicar esses métodos em um arquivo Java. Este arquivo é executado para reverter a ofuscação nos elementos visados.
- **Java e Código Nativo**: Outro método é traduzir o algoritmo de desofuscação para uma linguagem de script como Python. Esta estratégia destaca que o objetivo principal não é entender completamente o algoritmo, mas executá-lo de forma eficaz.
- A **ausência ou embaralhamento de strings** em Java e Android, o que pode sugerir ofuscação de strings.
- A **presença de arquivos binários** no diretório de ativos ou chamadas para `DexClassLoader`, indicando desempacotamento de código e carregamento dinâmico.
Ao executar o código em um ambiente controlado, a análise dinâmica **permite observar como o código ofuscado se comporta em tempo real**. Este método é particularmente eficaz para descobrir o funcionamento interno de padrões de ofuscação complexos que são projetados para ocultar a verdadeira intenção do código.
- **Descriptografia em Tempo de Execução**: Muitas técnicas de ofuscação envolvem a criptografia de strings ou segmentos de código que só são descriptografados em tempo de execução. Através da análise dinâmica, esses elementos criptografados podem ser capturados no momento da descriptografia, revelando sua forma verdadeira.
- **Identificação de Técnicas de Ofuscação**: Ao monitorar o comportamento do aplicativo, a análise dinâmica pode ajudar a identificar técnicas específicas de ofuscação sendo usadas, como virtualização de código, empacotadores ou geração de código dinâmico.
- **Descoberta de Funcionalidades Ocultas**: O código ofuscado pode conter funcionalidades ocultas que não são aparentes apenas através da análise estática. A análise dinâmica permite observar todos os caminhos de código, incluindo aqueles executados condicionalmente, para descobrir tais funcionalidades ocultas.
* BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[vídeo](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
* Esta palestra aborda engenharia reversa de uma das bibliotecas nativas de anti-análise mais complexas que vi sendo usada por um aplicativo Android. Ela cobre principalmente técnicas de ofuscação em código nativo.
* REcon 2019: “The Path to the Payload: Android Edition” \[[vídeo](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
* Esta palestra discute uma série de técnicas de ofuscação, exclusivamente em código Java, que um botnet Android estava usando para ocultar seu comportamento.