Dealing with Obfuscated Binaries – Part 1
Introdução ao Tutorial sobre Deobfuscação
Apresentação do Tema
- Moaba introduz o tutorial, focando em como hackers e crackers superam a ofuscação.
- O vídeo é simplificado para evitar uma duração excessiva, omitindo definições complexas que exigiriam conhecimento avançado em ciência da computação.
Público-Alvo
- O tutorial é voltado para aqueles que desejam entender a lógica de um código ou ajustá-lo sem as dificuldades impostas pela ofuscação.
- A automação completa da deobfuscação não é viável; construir sua própria ferramenta é essencial.
Definindo Deobfuscação
Nova Definição Prática
- A deobfuscação é vista como uma forma de entender rapidamente o que acontece em um código sem precisar analisá-lo linha por linha.
Pontos Fracos da Ofuscação
Identificação das Vulnerabilidades
- A memória é um ponto fraco: se o código original acessa um endereço específico, isso permanece após a ofuscação.
- Instruções especiais, como CPU ID, não podem ser alteradas durante a ofuscação e servem como âncoras úteis.
- Implementações ruins são comuns; funções críticas podem estar menos ofuscadas, permitindo ajustes fáceis.
- Chamadas de API do Windows não podem ser ofuscadas e são essenciais para comunicação com o sistema operacional.
Estratégias para Análise de Código Ofuscado
Métodos Eficazes
- Testar entradas inválidas pode revelar informações valiosas sobre o comportamento do programa.
- Consultar trabalhos anteriores de outros engenheiros reversos pode economizar tempo e esforço na análise.
Aplicação Prática no Denuvo
Objetivos do Tutorial
- O foco está em entender como funciona um dos melhores sistemas DRM (Denuvo), enfatizando que este tutorial tem fins educacionais.
Metodologia Inicial
- O primeiro objetivo é fazer suposições gerais sobre o funcionamento do código DRM.
- Utilizar ferramentas como API Monitor para observar chamadas feitas pelo programa às APIs do Windows.
Análise das Chamadas de API
Observações Importantes
- Identificar quais dados estão sendo solicitados pelo jogo pode fornecer pistas sobre seu funcionamento interno.
Investigação Detalhada
- Notar solicitações específicas por arquivos importantes e endereços relacionados à API Steam pode indicar áreas críticas a serem exploradas.
Compreensão do Ticket Denuvo
Processamento e Validação
- Um ticket Denuvo contém informações processadas no servidor da Denuvo, permitindo acesso ao jogo apenas em computadores específicos.
Estudo Adicional através de Write-ups
Recursos Úteis
- Revisão de artigos relevantes ajuda a formar uma compreensão mais clara sobre a estrutura do Denuvo e suas operações internas.
Encontrando o Ponto de Entrada Original (OEP)
Estratégia para Localização
- Comparar com jogos construídos na mesma engine onde a proteção foi removida pode facilitar encontrar padrões semelhantes no código.