Dealing with Obfuscated Binaries – Part 1

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.