Games for Windows LIVE trainen - Druckversion +- Home of Gamehacking - Archiv (http://archiv-homeofgamehacking.de) +-- Forum: Gamehacking (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=3) +--- Forum: Tutorials für Fortgeschrittene (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=8) +--- Thema: Games for Windows LIVE trainen (/showthread.php?tid=179) |
|||||
Games for Windows LIVE trainen - Acubra - 27.12.2010 Der “All you need to know about xlive.dll” Guide Dieses Tutorial wurde exklusiv für http://www.homeofgamehacking.de geschrieben und darf ohne meine Zustimmung nicht auf anderen Seiten veröffentlicht werden. Dieses Tutorial dient ausschliesslich zu lernzwecken und der Autor übernimmt keine Haftung für ,gegebenenfalls durch dieses Tutorial, beim Anwender entstandene Schäden. Ausserdem distanziert er sich von jeglichen illegalen Taten, die durch Hilfe dieses Tutorials begangen werden konnten und können.
Hey, Da in letzter Zeit vermehrt Fragen auftauchen zum Thema xlive.dll, insbesondere wie man die Debugger- und Integritychecks dieser umgeht, habe ich mir gedacht das ich ein Tutorial zu dieser Thematik schreibe. Ich werde versuchen so gut wie möglich auf die einzelnen Funktionen der xlive.dll einzugehen und diese auch zu erläutern. 2. Ziel Ziel dieses Tutorials soll es sein, das ihr in der Lage seid mit dem Debugger eurer Wahl das jeweilige Spiel genauer unter die Lupe zu nehmen, ohne das ihr Probleme mit der dem Schutz der xlive.dll bekommt. Ausserdem hoffe ich das das Tutorial euer allgemeines Verständnis was Gamehacking und Schutzmechanismen angeht erweitern wird. 3. Vorraussetzungen Obwohl ich das Tutorial so einfach und anfängerfreundlich wie möglich gestalten will, dürft ihr dennoch kein völliger „Noob“ in Sachen Gamehacking sein. Es ist definitiv von Vorteil wenn ihr schon eure eigenen Erfahrungen mit dem ein oder anderem Spiel gemacht habt und euch auch vllt. Schon an die xlive Spiele herangewagt habt. Des Weiteren müsst ihr eine ordentliche Portion Spass und Zeit mitbringen und dürft nicht gleich frustriert aufgeben wenn etwas mal nicht klappt. Der Umgang mit einem Debugger wie OllyDBG sollte euch vertraut sein und ihr solltet selbst ein wenig technisches Verständnis und Eigeninitiative mitbringen. 4. Theoretische Überlegung Gut, dann wollen wir mal. Was wissen wir? Wir wissen das die xlive.dll nur bei sogenannten GFWL(Games for Windows LIVE) Spielen zum Einsatz kommt. Des Weiteren wissen wir das die Xlive.dll essentiell wichtig für das Spiel ist um die Spielstände korrekt zu laden und zu speichern. Soweit so gut. Wenn wir nun versuchen ein Spiel zu trainen und die richtigen Opcodes, die auf die gefunden Adressen zugreifen, zu finden, stürzt das Spiel in den meisten Fällen schier grundlos ab. D.h., dass die Xlive.dll ständig überprüft ob das Spiel in irgendeiner Weise von außen beeinflusst wird oder in einem Debugger läuft. Dies kann man auf viele verschieden Arten prüfen. Die gängigste und einfachste Variante ist die Returnvalue des IsDebuggerPresent Aufrufes zu checken. Auszug aus der MSDN : Zitat:If the current process is running in the context of a debugger, the return value is nonzero.Natürlich gibt es noch weitere Methoden, wie zum Beispiel zu checken ob ein Breakpoint auf der ReadFile API gesetzt wurde. Dies bringt uns zum ersten Ansatz die Xlive.dll „unschädlich“ zu machen. Wir können die .dll auf alle möglichen Debuggerchecks durchsuchen und diese unwirksam machen, bevor sie unseren Debugger bemerken und das Spiel zum Absturz bringen. Da dies jedoch sehr schwer und zeitaufwändig ist und ein sehr hohes technisches Know How vorraussetzt, sehen wir uns erst einmal nach anderen Methoden um. Wenn man die Debuggerchecks unwirksam machen kann, müsste man doch eigtl. auch in der Lage sein seinen Debugger zu „verstecken“, oder? Genau. Und genau dieses Feature bietet der Allrounder unter den Memoryscannern, die CheatEngine. Durch Aktivieren der Option „Enable use of the process watcher“ im Extra Tab der Settings, lassen wir die Cheatengine einen Treiber laden, welcher sämtliche Usermodefunktionen in eine virtuelle Umgebung verlegt. Allerdings muss man um dieses Feature unter Windows 7 benutzen zu können beim Booten F8 drücken und Windows mit der Option starten, dass auch von Microsoft unsignierte Treiber geladen werden können. Dies sollte jedoch das geringste Problem darstellen. Eine mögliche dritte Methode ist einfach die XLive.dll daran zu hindern geladen zu werden, bzw. sie einfach zu verändern, sodass sie nicht geladen wird. Die Xlive.dll hat wie schon erwähnt einige Integritychecks, welcher checken ob das Spiel, welches sie schützen soll verändert wurde oder nicht. Ausserdem wird beim Laden der .dll geguckt, ob diese von außen schon vor dem Start des Spiels verändert wurde. Wenn sie verändert wurde, wird sie einfach nicht geladen. Die logische Schlussfolgerung daraus ist, dass zwar die Spielstände nicht geladen werden können, jedoch die Schutzmechanismen der Xlive.dll auch nicht in Kraft treten. Viel einfacher geht es ja jetzt nicht mehr. Welche dieser Methoden ihr jetzt benutzt ist euch überlassen, nur bedenkt das bei der letzten eben die Savegames nicht mehr funktionieren. Nun zum letzten Teilpunkt. Der Integritycheck der XLive.dll. Da ihr ja nun wisst wie man erfolgreich das GFWL debuggt und man so relativ leicht die Ansatzpunkte für eine CodeInjection findet, zeige/sage ich euch nun wie man umgeht das die XLive.dll merkt das man den Code des Spiels verändert hat. Dazu muss ich Credits an Psych geben, welcher sich sehr viel Arbeit gemacht hat um eine Bytesequenz herauszufinden, nach der man suchen kann und welche einen an den Anfang einer Routine führt. Diese ist dafür zuständig um zu prüfen ob irgendwelche Codeabschnitte im Spiel geändert wurden. Die Bytesequenz ist folgende. Code:
Code:
Code:
Code:
Aber das ist nur mein Beispielcode. RE: Games for Windows LIVE trainen - iNvIcTUs oRCuS - 27.12.2010 Ok, wie ich die XLive Checks umgehe wusste ich zwar schon aber trotzdem ist das ein gutes Tutorial geworden. Vielleicht solltest Du aber noch erwähnen das dass Offset nicht bei jedem gleich sein muss da es verschiedene Versionen der XLive Software gibt. Villeicht schreibst Du am besten noch dazu welche Version Deine XLive.dll hat. grEEtZ sILeNt heLLsCrEAm RE: Games for Windows LIVE trainen - Acubra - 27.12.2010 Hey, danke erstmal für dein Feedback. Das mit der Xlive Version hast du ja mit deinem Post schon erledigt. Ich habe momentan die Dateiversion 3.2.3.0 (Produktversion 3.2.0003.0). RE: Games for Windows LIVE trainen - iNvIcTUs oRCuS - 27.12.2010 Ok vielleicht sollte man der Richtigkeit halber erwähnen das CE so nicht wirklich im Kernelmode arbeitet. Der Treiber der von CE geladen wird ist mehr einer VM (Virtualisierungssoftware) gleich. Sagt eigentlich auch schon der Name - DBVM. RE: Games for Windows LIVE trainen - reptile - 09.01.2011 thx , werd das mir in ruhe mal durchlesen .... |