04. Punkbuster How-To: Das MD5-Tool

wgs./w@Lly
Punkbuster How To: Das MD5-Tool

Kommen wir zum nächsten Schutzmechanismus von Punkbuster, dem MD5Tool.

Als erstes sollte man erläutern, was ein MD5 Hashwert überhaupt ist.
MD5 ist nicht - wie oft behauptet - ein Verschlüsselungsmechanismus, sondern ein Algorithmus zur Berechnung eines 32-stelligen Hashwerts. Aus einem Hash Wert lässt sich im Gegensatz zu einer verschlüsselten Nachricht der Klartext nicht wieder herstellen. Als extrem simpler Hashwert kann man sich die Quersumme einer Zahl vorstellen:
8715631 = 8+7+1+5+6+3+1 = 31
Aus der 31 wird man nie wieder auf die 8715631 schließen können. Aber durch pures ausprobieren lässt sich natürlich eine Zahl finden die auch denselben "Hashwert" erzeugt: 4154692 = 4+1+5+4+6+9+2 = 31

Bei MD5 ist der Algorithmus natürlich sehr viel komplexer und das Ergebnis - der Hashwert - ist immer 32-stellig, ganz egal wie lang die "Eingabe" ist. Die Wahrscheinlichkeit, dass 2 unterschiedliche Dateien zu denselben Fingerabdruck führen liegt bei 1:300 Sextillionen
(ausgeschrieben: 300,000,000,000,000,000,000,000,000,000,000,000,000 )
Zum Vergleich: 6 Richtige im Lotto 1:139 838 160

Wenn man nun also weiß das die md5sum einer unveränderten Datei iw_00.iwd = A83621F19AEDDA2D184D61F77985ECD8 ist, wird kein Cheater innerhalb der Lebenszeit unserer Sonne in der Lage sein, mit dem oben erwähnten "Ausprobieren-Prinzip" in dieser Datei einen Wallhack zu verstecken, ohne dass sich der Hash ändert. Selbst der BlueGene/L des US-Kernforschungszentrums bräuchte ~ 5 Billionen Jahre um durch reines Ausprobieren dieses Problem zu bewältigen. Unsere Sonne wird noch ca 6 Milliarden Jahre existieren.

Bei Wikipedia finden sich weiterführende Informationen zur Hash-Funktion und zu MD5.

********

Das MD5Tool ist daher ein sehr mächtiges, unbestechliches Werkzeug um die Dateien der Spieler auf Veränderungen zu überprüfen.

Sind irgendwelche Hacks in den Spieldateien versteckt, so weicht der MD5 Hashwert von den uns bekannten "Soll-Ergebnis" ab.
Es gibt zum Beispiel Spezialisten, die einfach ihre Hintergrundgeräusche aus den Spieldateien gelöscht haben. Auch hier greift das MD5Tool. Denn wen sie etwas rauslöschen, verändern sie den Inhalt, und damit zwangsläufig den MD5 Hashwert, was von Punkbuster registriert wird und zum Kick vom Server führt.

Mit dem MD5-Tool können sogar ganze Spieleordner auf Dateien hin überprüft werden die dort nichts zu suchen haben. Hacks werden meistens über *.dll im Spieleordner betrieben und starten mit wenn das Spiel gestartet wird.

Nun kann man Regeln ähnlich wie bei der CVAR Liste definieren und nach solchen Dateien suchen lassen. Damit eine Definition möglich wird muss man sich jedoch zuvor die Arbeit machen und den Hashwert der originalen, sauberen, unveränderten Dateien berechnen.
Eine Zeile, die z.B. die Datei "CoD2MP_s.exe" vergleicht sieht folgendermaßen aus:

pb_sv_md5tool a "" v CoD2MP_s.exe SZ1974272 AT0 LEN2048 D06BED67BE8233BCC68204E9770411A0

Doch soll hier weiter nicht drauf eingangen werden, da es im Grunde unwichtig ist, sofern es einmal richtig konfiguriert wurde.

Da es wirklich sehr viel Arbeit ist solche Listen zu erstellen, sollte man sich an diejenigen wenden, die diesen Aufwand bereits betrieben haben und immer noch machen: Bei Punksbusted (PsB) findet man Listen, die regelmäßig geupdated werden: von PsB empfohlene Server-Settings.

Man schreibt diese MD5Tool-Anweisungen nicht in die "normale" Punkbuster-Konfigurationsdatei (also die pbsv.cfg), da diese sonst sehr unübersichtlich wäre.
Stattdessen sollte man diese Checks in die "pbsvuser.cfg" hineinpacken, welche dann nur die MD5Tool-Prüfungen enthält und über den in der pbsv.cfg enthaltenen Befehl "pb_sv_load pbsvuser.cfg" geladen wird.
Diese MD5-Tool Liste wird von punksbusted.com regelmäßig überarbeitet und ergänzt; sämtliche neu erkannten Hacks werden nach und nach hinzugefügt.
Diese Datei hat z.B. bei CoD’Classic mittlerweile weit über 500 Einträge und somit eine wirklich komplexe Sammlung vorzuweisen.

Dieser Schutzmechanismus in Verbindung mit der CVAR Liste sollte Cheats, die mehr oder weniger über das Spiel selbst erfolgen nicht mehr möglich machen oder zumindest stark einschränken.


********

(c) 2007 - w@Lly’ (http://www.opferlamm-clan.de)
Mit freundlicher Genehmigung von Karol Babioch ~ Achtung: kein Kopieren/Weiterverwenden ohne Rücksprache!
Email an wally[at]opferlamm-clan.de oder via xfire: scheuselchen