Um grundlegende Cheat Engine-Hacks zu verhindern, die die Werte Ihrer Variablen manipulieren, müssen Sie diese Werte ausblenden. In der Regel wird die Cheat Engine verwendet, um den Speicherort interessanter Variablen (z. B. die Menge an Gold oder das Leben oder die Upgrade-Stufe einer Fähigkeit) zu ermitteln, indem nach dem bekannten Wert dieser Variablen gesucht wird, mehr vom Spiel gespielt wird und der Wert dazu veranlasst wird ändern, dann würde Cheat Engine eine neue Suche aus dem Ergebnis der vorherigen Suche nach dem neuen Wert durchführen. Auf diese Weise kann der Cheater den Speicherort des Werts vergrößern. Jetzt kann er den Wert dieses Speicherorts mithilfe der Cheat Engine ändern.
Zum Beispiel habe ich 245 GOLD ... mit Cheat Engine suche ich nach 245 und finde viele Speicherplätze. Dann spiele ich noch etwas und bringe mein Gold auf 314, suche dann in der vorherigen Suchausgabe nach dem Wert 314 und finde leicht den Speicherort für GOLD.
Um dies zu verhindern, muss der tatsächliche Wert niemals an einem Speicherort gespeichert werden. Zum Beispiel speichere ich den Wert in einem Objekt, das den tatsächlichen Wert bei Bedarf berechnen muss, wenn er benötigt wird. Nehmen wir also an, der Spieler hat 245 GOLD. Wenn sie nach einem Speicherort mit dem Wert 245 suchen, finden sie möglicherweise viele, aber keiner von ihnen ist der Speicherort, an dem der Goldwert tatsächlich gespeichert ist, dh weil Sie den Wert 245 für Gold nicht speichern. Wenn das Spiel wissen muss, wie viel Gold es hat, fragt es das Objekt, das den Wert dafür enthält, und berechnet es bei Bedarf.
Die Frage ist nun: Wie genau speichern Sie einen Wert so, dass er nicht angezeigt wird? Das wird etwas knifflig und hässlich und ich bin mir sicher, dass es viele Möglichkeiten gibt, dies zu tun. Was ich gerne mache, ist ein boolesches Array (oder Byte-Array) zu speichern. Die Länge des Arrays kann beliebig sein, aber sagen wir, es ist 13. Dann haben Sie einen Zähler, der angibt, wie oft 13 in diesen tatsächlichen Wert geht. Wenn wir also 245 darstellen wollen, hätte der Zähler einen Wert von 18. Jetzt würden für das Array alle Booleschen Werte für den Rest von 245/13 auf true gesetzt ... im Grunde genommen der Modul. In diesem Fall sind das 11, sodass die ersten 11 Booleschen Werte im Array auf true und der Rest auf false gesetzt werden. Um den Wert abzurufen, müssen Sie lediglich den Zähler mit der Array-Länge multiplizieren und dann 1 für jeden Booleschen Satz auf true addieren (beim ersten false anhalten). Jetzt würde die Nummer 245 niemals irgendwo gespeichert werden und es wäre schwierig, den Speicherort zu finden, der manipuliert werden müsste, um die Goldmenge zu ändern. Möglicherweise möchten Sie die Array-Länge auf verschiedene Größen einstellen (möglicherweise zufällig eine Zahl zwischen einem vernünftigen Bereich auswählen), wenn dieses Objekt erstellt wird.
BEARBEITEN: Dies ist nützlich für Multiplayer und Einzelspieler. Es gibt Betrug, der auch im Mehrspielermodus ausgeführt werden kann, bei dem die Werte in den Paketen geändert werden können. Dies würde verschiedene Techniken erfordern, um dies zu verhindern, wie das Signieren jedes Pakets.