Schreiben Trainer für Spiele (Spiele-Trainer)

Intro:

Alle von uns, vor langer Zeit oder vor kurzem Spiele gespielt - Board, Sport und c ist die Einführung in unser Leben von Computern und Computer. Aufgrund ihres Alters, Gewohnheiten, oder wollen einfach nach einem harten Arbeitstag zu entspannen und aufzumuntern.

Es scheint, dass das Spiel unbegrenzte Möglichkeiten gibt für Selbstverwirklichung: als Rennfahrer, pilot, Killer, oder sogar ein Gott. Aber der Mann ist so beschaffen - eine gewisse Höhe erreicht, will er noch etwas größer und findet deshalb ein neues Ziel oder neue Chancen.

Es ist klar, dass, wenn Spiele zu schaffen, die Entwickler in erster Linie geführt werden, wenn nicht für seinen Geschmack, den Geschmack eines Projektmanagers, manchmal Statistiken. Aber manchmal fühle ich mich wie um die Auswirkungen der Matrix zu verlangsamen, das Spiel zu Indiana Jones bewegt, aber nicht der beweglichste Held der Gaming-Industrie - der Hitman-Killer, lernte an den Wänden zu laufen. Für diese Zwecke und erstellt Trainer.

Theorie:

Trainer (Englisch Trainer.) - Ein Programm, das Verhalten des Spiels zu ändern, in der Regel direkt arbeiten mit dem Speicher des Computers.

In den 1980er und 1990er Jahren, in der Regel die Trainer direkt in die Spiele Hacker-Code eingebettet. Wenn Sie beginnen, müssen Sie zuerst den Trainer mit einem Dialogfeld laufen "Wollen Sie Cheats zu benutzen?", Wurde auf der Spiel-Code durchgeführt. Der Trainer verwendet, um die Namen Zeichen der Addition (+), eine für jeden Trainer Option. Zum Beispiel, "ist eine Gruppe von Hackern: Doom +++" - drei Optionen, zum Beispiel, Unsterblichkeit, unendlich Munition und Teleportation.

Im Gegensatz dazu moderne Trainer, läuft in der Regel als separates Programm, vor dem Spiel, und ihre Namen ein Pluszeichen mit einer Reihe von Optionen nach der Verwendung zum Beispiel "Doom Trainer +15". Darüber hinaus arbeiten moderne Busse mit RAM des Spiels, nicht die ausführbare Datei, wie Änderungen an der ausführbaren Datei durch das Kopierschutzsystem ist kompliziert.

Methoden:

So erstellen Trainer Speicher Dämpfer verwendet, Debugger und Disassembler. Der einfachste Weg, um einen Trainer zu schaffen - finden Wert im Speicher, die mit dem gewünschten Spiel-Option übereinstimmt. Dann ändern Sie es und suchen Sie in der Ergebnisliste wieder. Nach mehreren Iterationen wahrscheinlich bleiben eine kleine Liste von Adressen sind, ändern sich die Werte, auf denen Sie ausprobieren können. Es gibt eine Menge von Werkzeugen wie: ArtMoney, Cheat'o'Matic - automatisieren den Prozess der Suche und Änderung der Werte.

In einigen Fällen ändert sich der Sollwert des Spiels ständig seine Position in dem Speicher. In diesem Fall können wir versuchen, einen Zeiger auf sie eventuell mit einem kleinen Offsetwert zu finden, wenn das Spiel in einer Datenstruktur ist. Wenn der Zeiger die Position in dem Speicher ändert, können Sie Zeiger auf den Zeiger zu suchen, usw. Sie können auch einen Anschlag auf den Punkt setzen auf den Wert des Spiels zu verweisen und den Code zu analysieren, die sie liest oder ändert.

Um es zusammenzufassen - so was ist, DMA? DMA (Dynamic Memory Allocation) - ist eine dynamische Speicherzuweisung. Einfach Spiele setzen, DMA, im Gegensatz zu nicht-DMA-Spiele, verwenden sie Werte in Speicheradressen, die sich ändern nach jedem Start des Spiels gespeichert. Alle Spiele unter DOS - nicht DMA verwenden, während die meisten Spiele unter Win32 seine Verwendung.


Praxis:

In diesem Artikel werde ich PRINZIP Schreiben Trainer für DMA und nicht-DMA-Spiele betrachten. In runet sehr wenig Informationen zu diesem Thema, bestehenden Code-Beispiele, Schreiben Trainer haben oft nicht in der Praxis getestet und daher einfach Anfänger verwirren kann. Alles, was wir ist eine Möglichkeit, Delphi-Programmiersprache und Debugger TSearch benötigen.
  1. Nicht DMA - Spiele:

Führen Sie TSearch. Durch Drücken von Open Process, vyberaem aus der Liste sind wir in den Prozess interessiert. Als nächstes suchen wir die Liste eliminiert werden und dann den Wert der Adresse von Interesse zu bestimmen. Vice City - Als Beispiel werde ich das Spiel GTA betrachten. Interessiert prametr - Zeit.

Wie Sie sehen können, hat der Code auf ein Minimum, ich nicht die Kontrollen auf das Vorhandensein des Programmfensters verwenden. Da der Punkt, um die Anwendung zu minimieren implementierende nicht sehen, ist viel praktischer Joyner zu polzovatsyalyubym und das Spiel Datei kleben und zusammen Trainer.

 var
 Form1: TForm1;
 Window: integer;
 ProcessId: integer;
 ThreadId: integer;
 HandleWindow: Integer;
 schreiben: Kardinal;

 buf: dword;
 const 
 Window = 'GTA: Vice City'; 
 Adresse = $ 0097F266; 
 NumberOfBytes = 4; 

 Implementierung

 {$ R * .dfm}

 Verfahren s1ow_mode; 
 beginnen
 Window: = Findwindow (nil, Window); 
 ThreadId: = GetWindowThreadProcessId (Fenstername, @ ProcessId);
 HandleWindow: = Open (PROCESS_ALL_ACCESS, False ProcessId);
 buf: = $ 3E90;
 Write (HandleWindow, ptr (Adresse), @buf, 4, Schreiben);
 Ende;

 Verfahren nos1_mode; 
 beginnen
 Window: = Findwindow (nil, Window); 
 ThreadId: = GetWindowThreadProcessId (Fenstername, @ ProcessId);
 HandleWindow: = Open (PROCESS_ALL_ACCESS, False ProcessId);
 buf: = $ 3F80;
 Write (HandleWindow, ptr (Adresse), @buf, 4, Schreiben);
 Ende;

 Verfahren TForm1.Timer1Timer (Sender: TObject);
 beginnen
 if (GetAsyncKeyState (VK_LBUTTON) <> 0), dann 
 beginnen
 s1ow_mode;
 Ende;
 if (GetAsyncKeyState (VK_RBUTTON) <> 0), dann
 beginnen
 nos1_mode;
 Ende;
 Ende; 


Schutz:
Wenn das Spiel einen offiziellen Rekord hat oder Tabelle Spiel ist nicht ein Netzwerk, und alle Berechnungen sind auf der Server-Seite, ruinieren die Existenz der Trainer das Spiel. In diesem Fall ist es erforderlich, ein System zum Schutz von den Wagen zu übernehmen, weil Kopierschutzsystem nicht mit dieser Aufgabe bewältigen kann. Für dieses Spiel die wichtigsten Parameter sind für eine kurze Zeit vor der Verwendung oder erstellen Sie eine verschlüsselte Kopie des Originals von dem der Parameter verglichen wird kontinuierlich verschlüsselt und entschlüsselt. Zur Umgehung solcher Abwehr ohne Demontage des Programms nicht tun kann.