Warum erlaubt das Bearbeiten des Client-Speichers in einigen MMOs das Betrügen?

19

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?

Hatoru Hansou
quelle
2
Neben der Serverauslastung gibt es auch ein Latenzproblem. Minecraft handhabt beispielsweise alle Bewegungen clientseitig, einfach weil es die einfachste Lösung ist (aus reinen clientseitigen Bewegungen, clientseitigen Vorhersagen oder verzögerten Bewegungen). (Minecraft hat kein Vorhersage-Framework, da es normalerweise ein langsames Spiel ist.
Daher ist das

Antworten:

21

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
Das würde das Interesse daran erklären, das Gedächtnis des Spielclients zu untersuchen, und das Interesse, dies zu verhindern. Der Teleportations-Hack, den ich im letzten Spiel gesehen habe.
Hatoru Hansou
2
Interessanterweise besagt das Spiel Ark: Survival Evolved , dass auf dem Server alles validiert ist (bis auf die Eingaben, iirc). Nicht gerade ein WoW-MMO, aber es unterstützt 70ppl-Server in Alpha (plus Tonnen von NPC-Dinos und vom Spieler gebauten Strukturen). Sie können die Verzögerung sicherlich spüren, aber es wird immer besser. Ich stelle mir vor, dass dies immer beliebter wird, je besser die Technologie wird.
Slicedtoad
5
"70 Personen" ist mindestens eine Größenordnung (mehrere, tatsächlich) weniger Personen pro Server als die MMOs, an denen ich gearbeitet habe. Beachten Sie auch, dass fast jeder angibt , alles auf dem Server zu tun, um Hackern nicht die Möglichkeit zu geben, Hacks zu entwickeln.
@slicedtoad Das wollte ich gerade erwähnen. Beachten Sie, dass die meisten MMOs ohnehin Instanzen verwenden, sodass die ARK-Methode in diesen funktionieren kann. Es ist (noch) nicht möglich, dies für eine große Anzahl von Spielern zu tun.
Mast
10

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.

Vaillancourt
quelle
Ok, Bots haben mehr Sinn, auch wenn Sie sich nicht in den Gott-Modus versetzen können, ein Programm zu haben, das alles für Sie tut, ist auch Betrug. Aber warum können die "Hacker" in dem Spiel, das ich gespielt habe, mit einem einzigen Treffer töten? Ist das nicht ein Hinweis darauf, dass Spielspeicher und Server diese Änderungen irgendwie validieren?
Hatoru Hansou
1
@ HatoruHansou Ja. Und der nervige Teil ist, dass unbemannte Bots von selbst laufen können. Stellen Sie sich also 10 Computer vor, die von einem einzigen Mitarbeiter eines Goldbauern überwacht werden, Charaktere online sind und 24 Stunden am Tag aktiv sind. Ihr MMO ist ruiniert. Einige haben sogar eine spezielle Behandlung für andere Spieler ("Bleib nicht auf meinem Rasen, das ist mein Zimmer" (war schon da .. Lineage II am Anfang)).
Vaillancourt
Lassen Sie die Bot-Population unkontrolliert wachsen und Ihr Spiel könnte sehr bald aus dem Geschäft sein. Ok, der Bot alleine reicht aus, um den Anti-Hack-Schutz zu rechtfertigen. Ich werde noch eine Weile warten, bevor ich die Antwort akzeptiere.
Hatoru Hansou
@ HatoruHansou sicher :) Ich bin nicht sicher, ob ich alle Gründe für den Speicherschutz sowieso :)
Vaillancourt
6

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.

Greg Quinn
quelle
Das würde erklären, dass die Speicherhacks effektiv sind. Haben Sie einige Links zu Artikeln / Veröffentlichungen über kein maßgebliches Server-Design?
Hatoru Hansou
4
Last ist nicht das einzige Problem - Reaktionsfähigkeit ist der Schlüssel. Jedes vernetzte Echtzeitspiel muss Techniken zum Ausblenden der Latenz verwenden. Um sicherzustellen, dass alle zustimmen, muss der Server die Ereignisse, die auf den einzelnen Clients aufgetreten sind, so ordnen, dass Situationen wie "Ich habe dich zuerst erschossen" und "Nein, ich habe dich zuerst erschossen" vermieden werden. Speedhacks für Spiele wie Counter-Strike basieren auf dem Missbrauch dieser Synchronisation durch Manipulation der vom Server wahrgenommenen Latenz usw. (dies ist einer der Gründe, warum die meisten CS-Server Spieler mit einer Latenz von mehr als 100-200 ms stoßen).
Luaan
3
Dies kann einfach nicht vermieden werden, es sei denn, Sie machen ein Spiel, das ausschließlich auf Runden basiert. Es wird immer Latenzen geben, und alle am Netzwerkspiel beteiligten Computer müssen sich auf eine "gemeinsame Zeit" einigen, um Ereignisse zu bestellen. Selbst mit den besten Systemen für das Latenzmanagement wird es immer Inkonsistenzen geben, aber wir haben es sehr gut geschafft, diese zu verbergen. Das Problem ist, dass, sobald Sie anfangen, diese winzigen Dinge herzustellen, es einfacher ist, einen subtilen Käfer vorbeiziehen zu lassen - beispielsweise, wenn der Kunde das gleiche Monster zweimal nach dem Abschuss töten kann, wenn er vorgibt, dass der zweite Abschuss vor dem ersten erfolgt ist. Es ist schwer .
Luaan,