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.