Dealing with Obfuscated Binaries – Part 2

Dealing with Obfuscated Binaries – Part 2

Introdução ao Tutorial sobre Denuvo

Compreendendo os Caminhos no Programa

  • Mojtaba introduz o tutorial, focando em como os caminhos funcionam no programa e a lógica por trás da escolha entre o caminho "happy" e "non-happy".
  • O arquivo discutido é identificado como o ticket Denuvo, que será rastreado para entender seu funcionamento.

Explorando o Caminho Não Feliz

  • Para encontrar o caminho não feliz, basta alterar uma das especificações do sistema usadas pelo Denuvo como impressão digital.
  • A função get username é mencionada como parte dessa impressão digital; Mojtaba sugere modificar o resultado dela.

Funcionamento do Ticket Denuvo

Deletando o Ticket

  • Ao alterar as especificações do sistema, o ticket Denuvo é deletado se não houver correspondência com as especificações.
  • O programa solicita um novo ticket ao servidor após a exclusão.

Localizando Pontos Críticos

  • É necessário encontrar um ponto antes da decisão entre os caminhos happy e non-happy, possivelmente logo após a leitura do ticket Denuvo.

Análise de Dados na Memória

Descriptografando Dados

  • O código parece estar em um loop, provavelmente descriptografando dados e escrevendo-os em outro local na memória.
  • A validação dos dados descriptografados é observada; a função responsável não está ofuscada.

Estruturas Principais do Ticket Denuvo

Componentes do Ticket

  • O ticket contém quatro estruturas principais: AI (app ID), UI (user ID), GT (game token), OL (ownership list).
  • Os tokens de jogo e listas de propriedade estão codificados em base64; Mojtaba demonstra como seguir esses dados até sua forma descriptografada.

Conclusão Temporária

Encerramento do Tutorial

  • Mojtaba conclui esta parte do tutorial, prometendo finalizar a análise na próxima sessão e descobrir onde o Denuvo armazena a impressão digital.