Por que editar a memória do cliente do jogo funciona? Por que tantas ferramentas de "proteção contra hackers" estão chegando com os clientes?
Se eu fosse projetar um jogo cliente-servidor, tudo aconteceria no servidor (a simulação do mundo do jogo) e os clientes seriam apenas consumidores passivos recebendo atualizações de status da parte do mundo perto de seus personagens, enviando apenas algumas informações como pressionamentos de teclas ou comandos de movimento / ação. Talvez eu esteja perdendo alguma coisa aqui, mas com esse design, qualquer hack como aumentar meu STR em 200 na memória do cliente (se o valor estiver presente) simplesmente não terá efeito.
A única explicação que posso pensar é que os jogos nos quais a edição de memória funciona permitem que partes da simulação sejam executadas no cliente e no servidor e depois sincronizem todos os clientes periodicamente. Entendo que o design para jogos de estratégia em tempo real com um número fixo de jogadores depois que uma partida é configurada, mas por que nos MMORPGs? É uma estratégia para reduzir a carga do servidor?
fonte
Respostas:
Embora seja ideal, é praticamente improvável validar todas as entradas em relação ao servidor, tanto em termos de carga computacional quanto em latência na confirmação de entrada para o cliente.
Consequentemente, geralmente existem algumas coisas que não são validadas no servidor em muitos MMOs. Em alguns casos, isso inclui certas classes de movimento de personagens, razão pela qual existem hackers de teletransporte e velocidade. As proteções do lado do cliente ajudam a fornecer uma barreira extra a esses hacks, embora, é claro, com tempo suficiente eles possam ser ignorados. Para combater isso, muitos desses jogos empregariam uma estratégia de registro e verificação posterior e rotação das proteções reais empregadas.
Há também a questão da tela de outros hacks simples de captura de memória que podem coletar informações e transmitir pressionamentos de tecla e outras entradas de volta através do cliente mais rapidamente do que um humano normalmente pode reagir. Ou podem procurar informações que possam ser transmitidas ao cliente, mas ainda não necessariamente visíveis (como as posições das criaturas que estão por perto, mas ainda não foram exibidas em nenhum lugar, como era comum nos primeiros hacks de mapas do Diablo).
fonte
Uma das razões pelas quais existem proteções é que a leitura do estado do jogo pode permitir que os bots saibam o estado do jogo e ajam de acordo.
Por exemplo, triturando em um MMO: se o "bot" sabe o que há em torno da multidão, ele pode enviar comandos para os clientes do jogo para selecionar a multidão, atingi-la até que sua vida seja 0, pegar a pilhagem, enxaguar e repetir. Com isso, mesmo que todas as alterações na simulação sejam feitas / confirmadas no servidor, alguns jogadores podem trapacear. Os comandos podem ser enviados através de cliques ou teclas falsas do mouse ou através da gravação de memória.
Essa é uma das razões pelas quais os MMOs usam proteção de memória.
fonte
Muitos MMOs são projetados com previsão de acertos do lado do cliente. Portanto, se houver um acerto no cliente, ele enviará o resultado ao servidor que ocorreu um acerto. Nesse caso, o servidor não é verdadeiramente autoritário e, portanto, é possível trapacear.
Para ser honesto, se eu estivesse projetando um MMO, tornaria o servidor totalmente autoritário, com o cliente enviando apenas valores de entrada fixos para o servidor e o servidor resolvendo o resultado.
Quanto ao porquê isso ainda não foi feito por muitos MMOs, só consigo pensar em carga adicional de servidor e 'resposta retardada' que vem com um servidor totalmente autoritário, pois apenas quebra a sensação e a capacidade de resposta do jogo.
fonte