/dev: Driver contra cheats no modo Kernel
Aviso: este artigo está repleto de jargões técnicos e fala sobre ferramentas contra cheats que não são exclusivas do League of Legends. Outros jogos, como o Projeto A, serão protegidos por tais atualizações antes mesmo do próprio LoL.
Em um estudo conjunto que durou aproximadamente 8 anos e foi financiado com cerca de 20 milhões de dólares em investimentos federais, alguns grandes cientistas conseguiram estipular uma data para a invenção da trapaça: algum dia entre 3,5 milhões de anos antes da Era Comum (também conhecida como "a.C.") e 20 de novembro de 1985. Mesmo que a origem seja indeterminada, uma de suas verdades já foi aceita como fato consolidado: trapaceiros sempre trapacearão.
Nessas últimas duas décadas, o desenvolvimento dos cheats e da tecnologia que os combate cresceu, deixando de ser uma honrosa batalha pelo controle da memória do cliente do jogo para se tornar uma luta contra vários métodos que tentam modificar o sistema operacional inerente (ou até mesmo o hardware) da máquina usada pelo trapaceiro. Essas técnicas comprometem a habilidade que um sistema contra cheats tem de recuperar dados relevantes, e esse efeito aumenta caso o sistema contra cheats rode no Modo Usuário.
O que é o Modo Usuário?
É um modo que dita o nível de privilégio dentro de um sistema operacional. Sendo mais específico: é o nível mais restritivo em que um software pode rodar. O seu navegador, sua cópia legítima do WinRAR e seus jogos favoritos rodam nesse modo. Dentro dele, um aplicativo não pode "ver o lado de fora" diretamente e acaba dependendo das APIs nativas do sistema operacional para ler ou gravar memórias que já não estejam dentro de seus próprios processos. Vamos dar uma resumida com uma metáfora mais compreensível: nós (no Modo Usuário) precisamos perguntar para a cozinha (o próprio Microsoft Windows) o que foi adicionado à nossa feijoada (nesse caso, o League of Legends).
Se você já se deparou com algum gênio se gabando com um papo de "kkkk tô usando um cheat no anel 0 que é indetectável", era a isso que ele estava se referindo logo antes de ser banido.[1]
Nos últimos anos, desenvolvedores de cheats começaram a aprimorar vulnerabilidades ou corromper a verificação de assinatura do Windows para conseguir rodar seus aplicativos (ou partes deles) no nível do Kernel. O problema é o seguinte: executá-los no Modo Kernel pode resultar na apreensão das chamadas de sistema (nas quais confiamos para recuperar nossos dados), e isso acaba modificando os resultados e os faz parecer legítimos, dificultando a nossa detecção do cheat. Nós já vimos até hardwares especializados utilizando DMA1 para ler e processar a memória do sistema – um vetor que, se for feito perfeitamente, pode não ser detectado2 no Modo Usuário.
Embora a maioria dos jogadores possa achar a ideia de corromper o próprio Windows totalmente ofensiva, um número perturbador de trapaceiros já mostrou bastante entusiasmo quando o assunto envolve aproveitar a oportunidade para pular de cabeça na botnet de um estranho para cancelar a animação dos ataques básicos, podendo andar e atacar perfeitamente dentro do jogo. Podemos afirmar que uma boa quantidade de cheats por aí estão rodando em um nível de privilégio mais alto que o nosso sistema contra cheats. Traduzindo tudo isso para nossa maravilhosa analogia culinária: quando perguntamos ao chef sênior da cozinha se os ingredientes da feijoada vêm fresquinhos direto do produtor, um cara aleatório usando chapéu de cozinheiro chega, convence o gerente do restaurante de que ele está "com tudo sob controle" e, logo em seguida, responde da seguinte maneira: "Aham, com certeza, pode comer sem medo!".
1DMA é a abreviação do termos em inglês "Direct Memory Access" (Acesso direto à memória), um método que permite que um hardware possa, como você já deve ter desconfiado, acessar a memória da máquina diretamente, sem precisar da API do Windows. Algumas das comunidades mais antigas de cheats já usaram esse método[1] para retransmitir memória a um computador separado a fim de processá-la posteriormente e usar cheats do tipo ESP (Percepção extrassensorial).
2Nós contratamos o cara que desenvolveu a técnica de detecção para esses casos.[2]
Por que está me explicando tudo isso?
Ao longo da história, a sua equipe antitrapaça favorita foi forçada a contra-atacar no Modo Usuário, dando certa vantagem aos trapaceiros. E isso faz toda a diferença para eles, já que temos do nosso lado a vantagem de recebermos um salário estável e não termos um toque de recolher rigoroso. No entanto, por mais que gostemos de travar batalhas de segurança de software contra adolescentes, estamos adentrando um universo multijogos[1] , e dar continuidade a essa guerra se tornará algo impraticável.
E é por isso que alguns dos futuros jogos da Riot serão protegidos por um driver que atua no Modo Kernel.
Entrando em pânico? Relaxa...
Existem inúmeras razões pra você ficar de boa.
- O estresse pode causar queda de cabelo, e acho que você não quer ficar careca, quer?
- Essa mudança não nos fornecerá nenhuma capacidade de vigilância eletrônica além das que já tínhamos antes. Se nos importássemos com a receita secreta do pavê de Natal da sua avó, não seria difícil consegui-la utilizando apenas o Modo Usuário para vendê-la ao programa matutino do louro cozinheiro[1] . O propósito desta atualização é monitorar a integridade do sistema (para podermos confiar nos nossos dados) e tornar a vida dos trapaceiros mais difícil se tentarem mexer nos nossos jogos (assim, você não poderá culpar os bots de mira pelas suas derrotas).
- Isso nem é novidade. Vários sistemas contra cheats de terceiros, como EasyAntiCheat, Battleye e Xigncode3, já utilizam um driver que roda em Modo Kernel para proteger seus jogos AAA favoritos. Estamos apenas inserindo nosso próprio subchef à cozinha chamada Windows – assim, quando perguntarmos "esse pão é vegano?[1] ", temos certeza de que receberemos uma resposta honesta.
- Será mais difícil de criar cheats indetectáveis, protegendo você de bots de mira, nos protegendo do Reddit e protegendo os trapaceiros de si mesmos.
- Acreditamos que a proteção contra cheats é um dos componentes mais importantes de um jogo online, e queremos que você possa jogar em um mundo onde não precisará duvidar das habilidades do oponente. A febre do cheat não tem cura, mas vamos continuar fazendo tudo ao nosso alcance para oferecer a melhor experiência competitiva.
Fim de transmissão. Mas retornarei em aproximadamente quatro megassegundos para falar mais sobre os bots nas partidas de ARAM, uma continuação da nossa premiadíssima novela "Removendo os Trapaceiros do LoL[1] ."