Warum funktioniert das Bearbeiten des Speichers des Spieleclients? Warum werden so viele "Hack Protection" -Tools mit den Clients geliefert?
Wenn ich ein Client-Server-Spiel entwerfen würde, würde alles auf dem Server stattfinden (die Simulation der Spielwelt) und Kunden wären nur passive Konsumenten, die Statusaktualisierungen des Teils der Welt in der Nähe ihrer Charaktere erhalten und nur einige Informationen wie senden Tastenanschläge oder Bewegungs- / Aktionsbefehle. Vielleicht fehlt mir hier etwas, aber mit diesem Design hat jeder Hack wie das Erhöhen der STR um 200 im Client-Speicher (wenn der Wert überhaupt vorhanden ist) einfach keine Wirkung.
Die einzige Erklärung, die ich mir vorstellen kann, ist, dass Spiele, in denen die Speicherbearbeitung funktioniert, Teile der Simulation auf dem Client und dem Server ausführen und dann alle Clients regelmäßig synchronisieren. Ich kann dieses Design für Echtzeit-Strategiespiele mit einer festen Anzahl von Spielern nach der Konfiguration eines Matches verstehen, aber warum in MMORPGs? Ist es eine Strategie zur Reduzierung der Serverlast?
quelle
Antworten:
Idealerweise ist es praktisch unwahrscheinlich, jede einzelne Eingabe gegenüber dem Server zu validieren , sowohl hinsichtlich der Rechenlast als auch der Latenz bei der Eingabebestätigung für den Client.
Folglich gibt es normalerweise eine Handvoll Dinge, die in vielen MMOs auf dem Server nicht validiert sind . In einigen Fällen gehören dazu bestimmte Klassen der Charakterbewegung, weshalb es Teleportations- und Geschwindigkeits-Hacks gibt. Clientseitige Schutzmechanismen stellen eine zusätzliche Barriere für diese Hacks dar, obwohl sie bei ausreichender Zeit natürlich umgangen werden können. Um dem entgegenzuwirken, würden viele solche Spiele eine Strategie der Protokollierung und nachträglichen Überprüfung und Rotation der tatsächlich verwendeten Schutzmaßnahmen anwenden.
Es gibt auch das Problem des Bildschirms anderer einfacher Speicher-Scraping-Hacks, die Informationen sammeln und Tastendruck und andere Eingaben schneller über den Client zurücksenden können, als ein Mensch normalerweise reagieren kann. Oder sie können nach Informationen suchen, die möglicherweise an den Client übertragen werden, aber noch nicht unbedingt sichtbar sind (z. B. die Positionen von Kreaturen, die sich in der Nähe befinden, aber noch nirgendwo angezeigt werden, wie es bei frühen Diablo-Kartenhacks üblich war).
quelle
Einer der Gründe, warum es Schutz gibt, ist, dass das Lesen des Spielstatus es Bots ermöglichen könnte, den Status des Spiels zu kennen und entsprechend zu handeln.
Zum Beispiel das Mahlen in einem MMO: Wenn der "Bot" weiß, um welchen Mob es sich handelt, kann er Befehle an die Spiel-Clients senden, um den Mob auszuwählen, ihn zu treffen, bis sein Leben 0 ist, die Beute aufzunehmen, zu spülen und zu wiederholen. Selbst wenn alle Änderungen an der Simulation serverseitig vorgenommen / bestätigt wurden, können einige Spieler schummeln. Die Befehle könnten über gefälschte Mausklicks oder Tastendrücke oder über Speicherschreiben gesendet werden.
Dies ist einer der Gründe, warum MMOs den Speicherschutz verwenden.
quelle
Viele MMOs wurden mit clientseitiger Treffervorhersage entwickelt. Wenn es also einen Treffer auf dem Client gibt, sendet es das Ergebnis an den Server, dass es einen Treffer gab. In diesem Fall ist der Server nicht wirklich autorisierend und daher ist Betrug möglich.
Um ehrlich zu sein, wenn ich ein MMO entwerfe, würde ich den Server vollständig autorisieren, wobei der Client nur geklemmte Eingabewerte an den Server sendet und der Server das Ergebnis auflöst.
Was den Grund angeht, warum dies von vielen MMOs noch nicht getan wird, kann ich nur an zusätzliche Serverlast und Antwortverzögerung denken, die mit einem vollständig autorisierten Server einhergehen, da dies nur das Gefühl und die Reaktionsfähigkeit des Spiels beeinträchtigt.
quelle