1. Wir benutzen die Programiersprache C++ das benötigte Programm.
Wir werden eine .dll schreiben die später anhand eines Injectors in unser spiel Injected wird.
Nun Fangen wir an...
Startet VC++EE ( Visual C++ Express Edition )
Dann geht ihr oben links auf Datei > Neu > Projekt
Nun wählt ihr das Win32-Projekt und benennt es wie ihr möchtet
Jetzt wird sich der Win32 - Anwendungs - Assistent öffnen dort drückt ihr einmal Weiter
Ok nun wählt ihr
Anwendungstyp:
DLL
Zusätzliche Optionen:
Leeres Projekt
und dann auf Fertig stellen
Bevor wir anfangen können müsst ihr noch links im Projektmappen - Explorrer
Einen Rechtsklick auf Quelldateien machen Hinzufügen - Neues Element
Dort wählt ihr nun die C++Datei (.cpp) aus, benennt sie und klickt auf Hinzufügen.
2. Wir fangen an
So jetzt werden wir anfagen. Wir schreiben in die .cpp ( Die weiße Seite vor euch ) folgendes..
Code:
#include <windows.h>
#include <stdio.h>
Das sind die Inkludierungen als nächstes kommen die Addys die ihr bestimmt schon auf einigen Foren gesehen habt
Achtet immer darauf dass der Name der Addy im Hack und in der Definierung gleich sind.
Code:
#define Playerpointer 0x00C93348 // Müssen ersetzt werden
#define Z_Offset 0x00000128
#define NFD_Offset 0x000002F0
Die Addys/Adressen könnt ihr mit verschiedenen Programmen oder Adressloggern herausfinden oder mal in Cheat-/Hack-Foren schauen.
Diese Adressen sind sozusagen der Punkt an dem ihr euer Spiel "verändert"
Leider geht das nicht ohne den richtigen Code den wir uns als nächstes vornehmen.
Als erstes bekommt unser Hack einen Namen den wir später in unserer Schleife wider brauchen.
Code:
void Superjump()
Dann kommt folgendes
Code:
{
if(GetAsyncKeyState(VK_CONTROL))
Das hier soll dafür sein dass wenn die Tast Control ( Ctrl / Strg ) gedrückt wird erst dann soll unsere Funktion ausgeführt werden.
Code:
{
DWORD PlP = *(DWORD*)Playerpointer;
if(PlP != 0)
Das hier kann für alle Playerhacks übernommen werden.
Ihr seht dass das für Playerhacks ist an dem Playerpointer bei Serverhacks wird der Serverpointer benutzt.
Dann kommt die eigentliche Funktion
Code:
{
*(float*)(PlP+Z_Offset) = 1500;
Vielleicht habt ihr "{" das bemerkt.
Das sind so genannte Akkoladen die öffnen ein Funktion öffnen. Wer jetzt genau hinschaut sieht, dass wir 3 offene haben also müssen wir 3 in die Andere richtung machen um unsere Funktion zu Schließen
also
Code:
}
}
}
So also wenn die Taste Strg gedrückt wird soll unser Spieler 1500 Meter in die Luft fliegen solange die Taste gedrückt bleibt, bleibt er auch oben. Wenn ihr die Taste loslässt fliegt der Spieler wieder runter.
Wie ihr wisst bekommt man wenn man von einer gewissen höhe springt einen Schaden damit wir also keinen Schaden beim Fall bekommen, werden wir No Fall Damage hinzufügen.
Also erstmal wider der Name unserer Funktion
Code:
void NFD()
Dann wider das für unsere Playerhacks
Code:
{
DWORD dwPlP = *(DWORD*)Playerpointer;
if(dwPlP != 0)
So und dann unsere Funktion.
Code:
{
*(float*)(dwPlP+NFD_Offset) = -25000;
So wir haben 2 Funktionen geöffnet was für uns heißt 2 Akkoladen um die Funktionen zu Schließen.
Code:
}
}
Wenn unser Spieler jetzt von weit oben fällt wird er normal landen ohne Schaden zu nehmen.
Nun könnt ihr wenn ihr ein wenig erfahrung habt und wisst was ihr tut noch untereinander mehrere Funktionen auflisten.
Wir kommen nun zu unserer Schleife in der unsere Hacks aktiv werden.
Als erstes müssen wir der Schleife einen Namen geben der in der DllMain danach gebraucht wird.
Also
Code:
void TheHacks()
dann öffnen wir mal die Schleife*
Code:
{
for(;
{
So und hier werden alle funktionen mit Funktionsname Klammer auf Klammer zu Semikolon angegeben.
Steht als bei eurem Hack void Superjump() schreibt ihr Superjump();
Code:
Superjump();
NFD();
Jetzt kommt noch ein Sleep für die Auslastung
Code:
Sleep(30);
Und natürlich wider unsere Akkolade in diesem Fall wider zwei.
Code:
}
}
So jetzt wird unsere Dll gebuildet mit folgendem Code
Code:
BOOL WINAPI DllMain(HINSTANCE mod, DWORD DWORD_GRUND, LPVOID res)
{
switch(DWORD_GRUND)
{
case 1:
// -->
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)TheHacks , 0, 0, 0);
break;
case 2:
break;
}
return TRUE;
}
Dass kann bei jedem Hack übernommen werden hier braucht ihr nichts zu ändern außer wenn der Name eurer Schleife anders ist z.B. HackThread müsst ihr nach CreateThread den Namen ändern
Code:
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)TheHacks, 0, 0, 0);
Ihr seht den Pfeil den ich gemacht habe //-->
An dieser Stelle könnt ihr eine MsgBox erscheinen lassen oder eine Internetseite aufrufen wie man das macht seht ihr jetzt.
An die stelle mit dem //--> folgenden Code einfügen:
Für eine MsgBox
Code:
MessageBoxA(NULL, "Vom Coder", "Credits", MB_OK);
In die ersten Stelle zwischen “ “ könnt ihr euren Namen schreiben oder was ich möchtet.
In die zweite Stelle kommt die Überschrift euerer Box
Für einen Link
Code:
ShellExecuteA(NULL,"Open","http://www.Sexytila.de.to",NULL,NULL,1);
Die erste Stelle zwischen “ “ wird nicht verändert
In die zweite Stelle könnt ihr die URL einer Seite angeben die durch das Starten des
Hack automatisch aufgerufen wird.
3.
So nun Haben wir unseren Hack fertig geschrieben und müssen ihn nur noch erstellen.
Dazu drückt einfach die Taste F7 oder geht auf Erstellen – Projektmappe erstellen in der Menüleiste.
Wenn ihr keine Fehler habt wird eure .dll Datei nun erstellt und gespeichert wo sie gespeichert wird seht ihr in dem Kästchen das sich beim erstellen öffnet.
Meisten wird sie jedoch unter Eigene Dateien > Visual Studio 2008 > Projekt Name > Debug gespeichert.
So nun könnt ihr euren Hack benutzen.
Wie das geht wisst ihr hoffentlich.
Ich hoffe ich konnte euch eurem Ziel einen WarRock Hack selber zu coden näher bringen