Maison >Problème commun >Anti-triche dans le développement de jeux et une brève introduction à ses principes

Anti-triche dans le développement de jeux et une brève introduction à ses principes

(*-*)浩
(*-*)浩avant
2019-08-09 17:11:283210parcourir

Avant-propos

Anti-triche dans le développement de jeux et une brève introduction à ses principes

Comment prévenir la triche joue toujours un rôle très important dans le développement de jeux, ce qui implique également Concernant le jeu rentabilité, si des mesures anti-triche ne sont pas prises, l'application que nous développons peut être publiée en ligne le lendemain ou une version gratuite crackée sera publiée le lendemain. J'en ai fait l'expérience personnellement. Bien sûr, cela est basé sur l'application et. Il est plus facile d'être trompé par des entreprises tricheuses. Je l'ai suivi. La version PC du jeu de combat de poulets autrefois populaire est en fait très répandue en matière de triche. Cela est également dû au fait qu'il n'y a souvent aucune prévention contre la triche. a demandé comment éviter la tricherie lors de la candidature à un emploi. Bien sûr, nous pouvons penser à la manière la plus simple de ne pas faire confiance aux données du client, mais de vérifier les données du serveur. Bien sûr, cette solution peut être conçue comme ceci. dans certaines situations où il y a relativement peu d'interaction client-serveur, en supposant un FPS, les dégâts causés par chaque tir sont d'une image. Il est impossible de vérifier avec le serveur à chaque fois. et l'expérience est très mauvaise. Mais si cela n'est pas vérifié, le client modifiera la valeur de l'attribut de l'arme. Comment résoudre ce problème ?

Comment tromper le client

Version mobile

Quand j'ai commencé à jouer à des jeux mobiles, j'ai dû jouer Flappy Bird. Tous ceux qui jouent à ce jeu savent que c'est un jeu mobile très cruel. Il était également très populaire à l'époque, et tout le monde dans le cercle d'amis publiait ses scores. Plus tard, j'ai appris que je pouvais utiliser une application appelée. "Eight Gate Artifacts" pour tricher et modifier les scores, puis les modifier à des scores très élevés. Publier vos scores dans votre cercle d'amis vous fera paraître "très génial" et satisfera votre propre vanité. valeur de mémoire pour obtenir l'effet de triche.

Version PC

Il existe également des logiciels correspondants pour modifier la mémoire sur PC, tels que Cheat Engine, qui est similaire à l'artefact à huit portes sur les téléphones mobiles. Comment l'appliquer est illustré dans la figure ci-dessous :

Anti-triche dans le développement de jeux et une brève introduction à ses principes

Comment éviter la triche

Le développement d'Unity recommande un plug-in Anti-Cheat Toolkit , téléchargez-le vous-même depuis l'Asset Store. Le principe spécifique est que grâce à l'obscurcissement des données, la valeur affichée sur l'interface utilisateur est en fait la valeur que nous avons calculée, de sorte que le modificateur de mémoire ne peut pas trouver l'adresse mémoire en fonction de la valeur affichée sur l'interface utilisateur.

Principe anti-triche

private int curATK;
private int curAtkKey;
public int CurATK {
    get {
        return curATK ^ curAtkKey;
    }
    set {
        curAtkKey = Random.Range(0, 0xffff);
        curATK = value^curAtkKey;
    }
}

Analyse : L'opération ^ est une opération XOR, qui nécessite un peu de connaissances binaires. L'opération XOR signifie que la même chose est 0 et la différence est 1. Voici un exemple : 3 ^ 4 = 7, le nombre binaire correspondant à 3 est 11, le nombre binaire correspondant à 4 est 100, le résultat du nombre binaire après l'opération XOR est 111 et le nombre décimal correspondant est 7. Vérifiez-le avec le programme ci-dessous :

Anti-triche dans le développement de jeux et une brève introduction à ses principes

Analyse

D'après la procédure ci-dessus, comprenez-vous vraiment comment éviter de tricher ? la valeur que nous saisissons. Par exemple, le nombre actuel de pièces d'or du joueur est 4. Mais l'affichage sur notre interface utilisateur n'est pas directement Coin.Text = num.ToString() De cette façon, le joueur peut facilement modifier la mémoire de num. , ce qui est de la triche. La valeur affichée sur notre interface utilisateur est la valeur de HiddenValue^cryptoKey. Même si le joueur trouve la valeur de num et la modifie, cela n'affectera pas le nombre réel de pièces d'or que nous affichons.

Plug-in d'analyse Anti-Cheat Toolkit

Chez les développeurs Unity, nous estimons que de nombreuses personnes utiliseront ce plug-in. Comment implémente-t-il le cryptage des données ? le manuel. Sachez qu'il encapsule les types de données de base d'Unity dans un type de données correspondant, tel que int->ObscuredInt, Float->ObscuredFloat, string->ObscuredString, etc. Prenons ObscuredInt comme exemple :

Anti-triche dans le développement de jeux et une brève introduction à ses principes Vous constaterez qu'il encapsule une structure correspondant à Int et a un facteur de confusion cryptoKey=444444. Regardons ObscuredString, une classe encapsulée par le type chaîne, et sa confusion Le facteur est la chaîne cryptoKey="4441". Si nous utilisons ce plug-in sans rien modifier, alors si je suis un hacker et que je sais qu'un certain jeu est actuellement développé par Unity et que les données ont été traitées anti-triche. , alors comment puis-je pirater la protection anti-triche ? Le plug-in est certainement la première chose qui me vient à l'esprit, et si je connais ces facteurs de confusion, il me sera relativement facile de le pirater. Pour éviter davantage la triche, il est très important de confondre ou de modifier les facteurs de mixage du plug-in.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Comment utiliser SVNArticle suivant:Comment utiliser SVN