2009-02-28 8 views
3

im Versuch, zu modifizieren Spiele in C++ zu lernen, das Spiel nicht nur der Speicher seine Munition whatnot mit so bekommen kann mir jemand verweisen auf BücherSpeicher modifiziert in C++

+0

gibt es einen Programmaufruf Cheat-O-Matic, dass dies für Sie tut :) – Malfist

+0

Das ist unmoralisch, glaube ich, bis du das Spiel selbst geschrieben hast. – dirkgently

+0

Vorsicht vor EULA :) – cwap

Antwort

12

Die einfachste Möglichkeit, den Arbeitsspeicher eines Remote-Prozesses zu manipulieren, besteht darin, einen Thread im Kontext dieses Programms zu erstellen. Dies wird normalerweise erreicht, indem eine DLL zwangsweise in den Zielprozess injiziert wird. Sobald Sie Code innerhalb der Zielanwendung ausgeführt haben, können Sie Standardspeicherroutinen verwenden. z. B. (memcpy, malloc, memset).

Ich kann Ihnen jetzt sagen, dass die einfachste und am einfachsten zu implementierende Methode der Trick CreateRemoteThread/LoadLibrary ist.

Wie andere Leute erwähnt haben, können einfache Hacks durchgeführt werden, indem der Speicher nach bekannten Werten durchsucht wird. Aber wenn Sie etwas fortgeschrittener durchführen möchten, müssen Sie sich mit Debugging und Dead-List-Analyse befassen. (Werkzeuge: ollydbg bzw. IDA pro).

Sie haben die Oberfläche eines sehr expansiven Hacking Thema zerkratzt, gibt es eine Fülle von Wissen gibt ..

Zuerst ein paar Internet-Ressourcen:

gamedeception.net - Eine Gemeinschaft gewidmet RE zum Spiel (Reverse Engineering) und Hacking.

http://www.edgeofnowhere.cc/viewtopic.php?p=2483118 - Ein hervorragendes Tutorial zu verschiedenen DLL-Injektionsmethoden.

Openrce.org - Gemeinschaft für Reverse Code Engineering.

Ich kann auch ein Buch zu Ihnen empfehlen - http://www.exploitingonlinegames.com/

Windows-API-Routinen Sie (msdn.com) Forschung sollte:

CreateRemoteThread 
LoadLibraryA 
VirtualAllocEx 
VirtualProtectEx 
WriteProcessMemory 
ReadProcessMemory 
CreateToolhelp32Snapshot 
Process32First 
Process32Next 
0

Es gibt genügend Programme zur Verfügung, die Sie Gedächtnis ändern lassen laufende Programme. Und sie werden oft zum Schummeln benutzt. Aber seien Sie vorsichtig mit denen bei Online-Spielen, denn die meisten Cheats werden erkannt und Sie werden ohne Vorwarnung gesperrt.

Wenn Sie sie selbst erstellen möchten, schauen Sie sich einfach die Bücher an, die die Windows API beschreiben. Sie finden dort genügend Informationen.

+0

Valve's Anti-Cheat wurde verwendet, um einige Heuristiken zu verwenden, um zu prüfen, ob ein Mod zum Schummeln benutzt werden kann, aber nachdem ein nicht-betrügerischer Mod Verbote verursacht hat, benutzen sie nur bekannte Cheats. Also wäre er vielleicht in Sicherheit, wenn er sein eigenes schrieb und für sich behielt. –

-1

Mit Hilfe von Hooks unter Windows kann auf den Speicherplatz eines Prozesses zugegriffen werden.

4

Spritzen Code:

Ich denke, die beste Methode, um die exe zu ändern ist Code in einer der geladenen Module zu injizieren. Check this tutorial

Kurz ähnliche Geschichte:

Vor über 10 Jahren, obwohl, ich erinnere mich erfolgreich meine Punkte in Solitär Modifizierung in Fenster mit einem einfachen C++ Programm. Ich habe das getan, indem ich einen int * -Zeiger an einer Basisadresse gestartet und die Speicheradressen durchlaufen habe (mit einem try/catch, um Ausnahmen abzufangen).

Ich würde suchen, was mein aktueller Punktestand in einer dieser Zeigervariablen war, und ersetze ihn durch einen neuen ganzzahligen Wert. Ich habe nur sichergestellt, dass mein aktueller Score ein obskurer Wert ist, der nicht in vielen Speicheradressen enthalten wäre.

Sobald ich eine Reihe von Speicheradressen gefunden habe, die zu meiner Punktzahl passten, würde ich meine Punktzahl manuell in Solitaire ändern und nur die Speicheradressen durchsehen, die in der letzten Iteration gefunden wurden. Normalerweise würde dies auf eine einzelne Speicheradresse eingrenzen, die den Punktestand enthält. An diesem Punkt hatte ich die magische einfache Codezeile * pCode = MY_DESIRED_SCORE;

Dies ist mit neuen Speichersicherheitsmodellen möglicherweise nicht mehr möglich. Aber die Methode funktionierte ziemlich gut mit einem 10-20 Zeilen C++ Programm und es dauerte nur eine Minute, um meine Punktzahl zu modifizieren.