Heim >häufiges Problem >Anti-Cheating in der Spieleentwicklung und eine kurze Einführung in seine Prinzipien
Vorwort
Wie man Cheaten verhindert, spielt immer noch eine sehr wichtige Rolle in der Spieleentwicklung, was auch das Spiel betrifft Rentabilität: Wenn keine Anti-Cheating-Maßnahmen ergriffen werden, wird die von uns entwickelte App möglicherweise am nächsten Tag online veröffentlicht oder es wird am nächsten Tag eine geknackte kostenlose Version veröffentlicht. Das habe ich natürlich persönlich erlebt Es ist einfacher, von betrügerischen Unternehmen betrogen zu werden. Die PC-Version des einst beliebten Hühnerkampfspiels ist tatsächlich sehr verbreitet. Dies liegt auch daran, dass es bei Arbeitssuchenden keine Prävention gibt Die Frage, wie Betrug bei der Bewerbung verhindert werden kann, besteht natürlich darin, den Daten auf dem Client zu vertrauen. Natürlich kann diese Lösung so gestaltet werden In einigen Situationen, in denen die Interaktion zwischen Client und Server relativ gering ist, beträgt der durch jeden Schuss verursachte Schaden. Es ist unmöglich, die Interaktion jedes Mal zu überprüfen und die Erfahrung ist sehr schlecht, wenn es nicht überprüft wird, wird der Client den Waffenattributwert ändern. Wie wird dieses Problem gelöst?
Wie man den Client betrügt
Mobile Version
Als ich anfing, Handyspiele zu spielen, muss ich gespielt haben Jeder, der das Spiel spielt, weiß, dass es damals auch sehr beliebt war und jeder im Freundeskreis seine Ergebnisse veröffentlichte „Eight Gate Artifacts“, um die Punktzahlen zu betrügen und zu ändern und sie dann auf eine sehr hohe Punktzahl zu ändern. Wenn Sie Ihre Punktzahlen in Ihrem Freundeskreis veröffentlichen, sehen Sie „sehr großartig“ aus und befriedigen Ihre eigene Eitelkeit Score-Speicherwert, um den Effekt des Betrugs zu erzielen.
PC-Version
Es gibt auch entsprechende Software zum Modifizieren des Speichers auf dem PC, wie zum Beispiel Cheat Engine, die dem achttürigen Artefakt auf Mobiltelefonen ähnelt. Wie man es anwendet, ist in der folgenden Abbildung dargestellt:
So verhindern Sie Betrug
Unity Development empfiehlt ein Plug-in-Anti-Cheat-Toolkit , laden Sie es selbst aus dem Asset Store herunter. Das spezifische Prinzip besteht darin, dass der auf der Benutzeroberfläche angezeigte Wert durch Datenverschleierung tatsächlich der von uns berechnete Wert ist, sodass der Speichermodifikator die Speicheradresse nicht anhand des auf der Benutzeroberfläche angezeigten Werts finden kann.
Anti-Cheating-Prinzip
private int curATK; private int curAtkKey; public int CurATK { get { return curATK ^ curAtkKey; } set { curAtkKey = Random.Range(0, 0xffff); curATK = value^curAtkKey; } }
Analyse: Die ^-Operation ist eine XOR-Operation, die ein wenig Binärwissen erfordert. Die XOR-Operation bedeutet, dass die gleiche 0 und die Differenz 1 ist. Hier ist ein Beispiel: 3 ^ 4 = 7, die Binärzahl, die 3 entspricht, ist 11, die Binärzahl, die 4 entspricht, ist 100, das Ergebnis der Binärzahl nach der XOR-Operation ist 111 und die entsprechende Dezimalzahl ist 7. Überprüfen Sie es mit das Programm unten:
Analyse
Verstehen Sie anhand des oben genannten Verfahrens wirklich, wie man Betrug verhindern kann? Der von uns eingegebene Wert beträgt beispielsweise 4. Die Anzeige auf unserer Benutzeroberfläche lautet jedoch nicht direkt Coin.Text = num.ToString(). Auf diese Weise kann der Spieler den Speicher von num leicht ändern. Das ist Betrug. Der auf unserer Benutzeroberfläche angezeigte Wert ist der Wert von „hiddenValue^cryptoKey“. Selbst wenn der Spieler den Wert von „num“ findet und ändert, hat dies keinen Einfluss auf die tatsächliche Anzahl der angezeigten Goldmünzen.
Analyse-Plug-in Anti-Cheat Toolkit
Wir bei Unity-Entwicklern schätzen, dass viele Leute dieses Plug-in verwenden werden. Lesen wir Beachten Sie, dass es die grundlegenden Datentypen von Unity in einen entsprechenden Datentyp kapselt, z. B. int->ObscuredInt, Float->ObscuredFloat, string->ObscuredString usw. Nehmen Sie ObscuredInt als Beispiel:
Sie werden feststellen, dass es eine Struktur entsprechend Int kapselt und einen Verwirrungsfaktor cryptoKey = 444444 aufweist. Schauen wir uns ObscuredString an, eine durch den String-Typ gekapselte Klasse seine Verwirrung Der Faktor ist string cryptoKey="4441". Wenn wir dieses Plug-in verwenden, ohne etwas zu ändern, dann bin ich ein Hacker und weiß, dass ein bestimmtes Spiel derzeit von Unity entwickelt wird und die Daten einer Anti-Cheat-Verarbeitung unterzogen wurden , wie kann ich dann den Anti-Cheat-Schutz knacken? Das Plug-in ist definitiv das erste, was mir in den Sinn kommt, und wenn ich diese Verwirrungsfaktoren kenne, wird es für mich relativ einfach sein, es zu knacken Um Betrug weiter zu verhindern, ist es sehr wichtig, die Mischfaktoren des Plug-Ins zu verwechseln oder zu ändern.
Das obige ist der detaillierte Inhalt vonAnti-Cheating in der Spieleentwicklung und eine kurze Einführung in seine Prinzipien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!