As empresas por trás dos videogames estão frequentemente em uma eterna corrida contra os criadores de cracks e cheats. Por exemplo, em janeiro de 2023, a Activision ganhou um processo contra a EngineOwning, um conhecido fornecedor de cheats para jogos como Call of Duty. O tribunal ordenou que a EngineOwning pagasse milhões em indenizações, estabelecendo, no mínimo, um precedente interessante.

Em publicações anteriores, destacamos casos de arquivos desse tipo que são utilizados para distribuir códigos maliciosos, além dos riscos que eles representam. No entanto, além da questão ética envolvida em seu uso, você já se perguntou por que os softwares antivírus ou antimalware os classificam como maliciosos?

ejemplo-dowloader.
 Imagem 1: Um aimbot em operação. Fonte: Medium

Como eles funcionam?

Para responder a essa pergunta, vamos começar pelo "como". Aqui, precisamos examinar dois conceitos fundamentais: modificação de arquivos e injeção de código na memória.

Quando falamos de cracks, é comum que esses programas modifiquem arquivos específicos do jogo ou do software a ser crackeado. Geralmente, esses arquivos são executáveis (.exe no Windows) ou bibliotecas dinâmicas (.dll no Windows, .so no Linux). Esses componentes são partes essenciais do software, contendo as instruções que o sistema operacional utiliza para rodar o jogo ou o programa.

Por exemplo, um crack pode modificar o arquivo executável principal de um jogo para remover a verificação de licença, identificando e alterando as partes do código que verificam se o usuário inseriu uma chave válida ou se o jogo está sendo executado em um ambiente de teste. O crack reescreve essas seções de código para que elas sempre retornem um resultado positivo, mesmo que o jogo não tenha sido comprado ou que a chave correta não tenha sido inserida.

No caso dos cheats, eles podem modificar arquivos de configuração, arquivos que contêm dados do jogo (como tabelas de estatísticas), ou até mesmo introduzir novos arquivos no sistema do jogo. Por exemplo, um cheat pode alterar um arquivo que controla as estatísticas do personagem para conceder ao jogador saúde infinita ou munição ilimitada.

Outra técnica, porém mais avançada, é a injeção de código na memória. Quando um programa é executado, seja ele um videogame, um navegador da web ou qualquer outro tipo de software, o sistema operacional o carrega na memória principal para acessar as instruções e os dados do programa rapidamente, de modo que o programa seja executado com eficiência e sem atrasos. Além disso, esse (e qualquer outro) programa pode modificar seus próprios dados durante a execução.

Quando um jogo está em execução, partes do seu código e dados relacionados (como a posição do jogador, nível de saúde, etc.) ficam armazenados na memória. Cheats que injetam código diretamente na memória modificam esses dados em tempo real. Por exemplo, eles podem buscar na memória do jogo o valor que representa a quantidade de munição do jogador e, uma vez localizado, substituí-lo por um número maior, concedendo munição infinita ao jogador.

ejemplo-dowloader.
Imagem 2: Desmontagem do jogo Solitaire em um programa de injeção de memória publicado em um site de compilação.

A injeção de código também pode envolver a inserção de novas instruções no fluxo de execução do jogo. Isso é feito por meio de técnicas como hooking, em que o cheat intercepta as funções do jogo e as redireciona para seu próprio código. Dessa forma, quando o jogo tenta executar uma função, na verdade ele está executando um código que altera seu comportamento.

Por que o antimalware detecta cracks ou cheats como maliciosos?

Ao entender como esses tipos de arquivos funcionam, podemos nos aprofundar no motivo pelo qual o software de proteção os detectaria como código malicioso, independentemente de ele executar ou não ações prejudiciais.

Tanto a modificação de arquivos críticos quanto a injeção de código na memória são técnicas que podem ser empregadas por softwares legítimos e por malwares. No entanto, devido ao seu potencial de causar prejuízos, essas técnicas geralmente são vistas com desconfiança por programas antimalware.

Quando um crack ou cheat modifica arquivos executáveis ou bibliotecas dinâmicas, ele está alterando diretamente o código que o software original utiliza para funcionar. Esse comportamento é muito semelhante ao de técnicas maliciosas, nas quais certos tipos de malware modificam arquivos executáveis legítimos para inserir seu próprio código. Dessa forma, sempre que o arquivo é executado, ações maliciosas são realizadas.

Além disso, cracks e cheats frequentemente precisam modificar as verificações de segurança implementadas pelo próprio jogo para evitar a detecção de modificações. Seja uma assinatura digital ou uma proteção de licença, o software de proteção pode interpretar essas alterações como sinais de ações maliciosas.

No que diz respeito à injeção de código na memória, há diversos sinais de alarme para o software de segurança.

Em primeiro lugar, ameaças como trojans e rootkits geralmente injetam seu próprio código na memória de outros processos para se esconder e assumir o controle do sistema. Isso permite que eles operem sem serem detectados em segundo plano. Como os cheats e alguns cracks também injetam código na memória para modificar o comportamento do jogo, o antimalware pode detectar esse comportamento como indicativo de uma ameaça.

Além disso, a técnica de "hooking" é comum em exploits e malwares avançados que tentam interceptar e manipular dados confidenciais. Portanto, qualquer tentativa de injetar código que altere o fluxo de execução é vista com desconfiança.

Por fim, muitos programas antimalware utilizam técnicas de proteção contra exploits, como a randomização de espaços de memória (ASLR), para prevenir a injeção de código na memória. Se um cheat tentar injetar código e acionar comportamentos que esses mecanismos foram projetados para evitar, o antimalware poderá detectá-lo e bloqueá-lo, identificando-o como uma possível ameaça.

Malware oculto

Agora, o que acontece quando o desenvolvedor desses programas tem más intenções? Em uma postagem publicada anteriormente, vimos campanhas maliciosas usando brechas como cortina de fumaça.

Um desenvolvedor mal-intencionado pode ocultar habilmente malware dentro de um crack ou cheat, aproveitando a confiança do usuário na funcionalidade aparente do software. Mesmo que o crack ou cheat cumpra sua função principal, como desbloquear recursos do jogo ou oferecer vantagens ilegais, ele pode conter código oculto projetado para causar danos.

Uma das formas mais comuns é por meio da injeção de código malicioso. O crack, quando executado, pode inserir esse código no processo do jogo ou no sistema operacional, permitindo que o malware execute ações como a instalação de backdoors, o registro de pressionamentos de teclas ou o roubo de arquivos confidenciais.

Além disso, os desenvolvedores mal-intencionados podem empregar técnicas avançadas de evasão, ocultando o malware em camadas de criptografia que são descriptografadas somente na memória durante a execução do crack. Também é possível que o malware modifique arquivos críticos do sistema ou do jogo, estabelecendo sua persistência mesmo que o jogo seja desinstalado.

Essa combinação de técnicas torna o malware incorporado em um crack ou cheat bastante perigoso, pois o usuário pode estar aproveitando os benefícios que o software oferece, enquanto, em segundo plano, seu sistema é comprometido de maneiras que podem ter consequências graves e duradouras.

Conclusão

Além de violar as políticas de uso de videogames, cracks e cheats representam um sério risco à segurança digital dos usuários devido às funções que executam. Por trás da promessa de desbloquear conteúdo ou oferecer benefícios, pode estar escondido um malware projetado para comprometer o sistema, roubar dados confidenciais ou instalar outros softwares maliciosos. A sofisticação dessas ameaças e sua capacidade de evitar a detecção ressaltam a importância de evitar o uso de software não autorizado e confiar apenas em fontes legítimas e seguras.