Pourquoi éditer la mémoire du client de jeu fonctionne? Pourquoi tant d'outils de «protection contre le piratage» fournis avec les clients?
Si je devais concevoir un jeu client-serveur, tout se passerait sur le serveur (la simulation du monde du jeu) et les clients ne seraient que des consommateurs passifs recevant des mises à jour de statut de la partie du monde près de leurs personnages, n'envoyant que des informations comme touches ou commandes de déplacement / action. Peut-être que je manque quelque chose ici, mais avec cette conception, tout hack comme augmenter ma STR de 200 dans la mémoire du client (si la valeur est présente) n'aura tout simplement aucun effet.
La seule explication que je peux penser est que les jeux dans lesquels la modification de la mémoire fonctionne permettent à des parties de la simulation de s'exécuter sur le client et le serveur, puis de synchroniser périodiquement tous les clients. Je peux comprendre que la conception de jeux de stratégie en temps réel avec un nombre fixe de joueurs une fois qu'un match est configuré, mais pourquoi dans les MMORPG? Est-ce une stratégie pour réduire la charge du serveur?
la source
Réponses:
Bien qu'idéal, il est pratiquement improbable de valider chaque entrée par rapport au serveur, à la fois en termes de charge de calcul et de latence dans la confirmation d'entrée pour le client.
Par conséquent, il y a généralement une poignée de choses qui ne sont pas validées sur le serveur dans de nombreux MMO. Dans certains cas, cela inclut certaines classes de mouvement de personnage, c'est pourquoi il existe des téléportations et des hacks rapides. Les protections côté client aident à fournir une barrière supplémentaire à ces hacks, bien que, bien sûr, avec un temps suffisant, ils puissent être contournés. Pour lutter contre cela, de nombreux jeux de ce type utiliseraient une stratégie d'enregistrement et de vérification et de rotation après coup des protections réelles utilisées.
Il y a aussi le problème de l'écran d'autres hacks simples de grattage de mémoire qui peuvent rassembler des informations et transmettre la pression des touches et d'autres entrées via le client plus rapidement qu'un humain ne peut normalement réagir. Ou ils peuvent rechercher des informations qui peuvent être transmises au client mais qui ne sont pas encore nécessairement visibles (comme les positions des créatures qui sont à proximité mais qui ne sont encore affichées nulle part, comme cela était courant dans les premiers hacks de la carte Diablo).
la source
L'une des raisons pour lesquelles il existe des protections est que la lecture de l'état du jeu pourrait permettre aux bots de connaître l'état du jeu et d'agir en conséquence.
Par exemple, broyer dans un MMO: si le "bot" sait quel mob se trouve, il peut envoyer des commandes aux clients du jeu pour sélectionner le mob, le frapper jusqu'à ce que sa durée de vie soit 0, ramasser le butin, rincer et répéter. Avec cela, même si toutes les modifications apportées à la simulation sont effectuées / confirmées côté serveur, certains joueurs peuvent tricher. Les commandes peuvent être envoyées via de faux clics de souris ou des raccourcis clavier, ou via l'écriture en mémoire.
C'est l'une des raisons pour lesquelles les MMO utilisent la protection de la mémoire.
la source
De nombreux MMO sont conçus avec une prédiction de succès côté client. Donc, s'il y a un hit sur le client, il envoie ce résultat au serveur qu'il y a eu un hit. Dans ce cas, le serveur ne fait pas vraiment autorité, et donc la triche est possible.
Pour être honnête, si je concevais un MMO, je donnerais au serveur toute son autorité, le client envoyant uniquement des valeurs d'entrée bloquées au serveur et le serveur résolvant le résultat.
Quant à savoir pourquoi cela n'est pas encore fait par de nombreux MMO, je ne peux que penser à la charge de serveur supplémentaire et au `` retard de réponse '' qui vient avec un serveur entièrement autorisé, car cela brise simplement la sensation et la réactivité du jeu.
la source