Abend.
Da ich gerade selber an einem Warrock Hack arbeite, würde ich euch gerne meine aktuelle NoMenu Base mit der "Superjump" Funktion erklären.
Vorrausetzungen
Schritt 1 : Ein neues Projekt erstellen
Wir öffnen unsere Entwicklungsumgebung und erstellen ein neues leeres C++ Projekt.
[Only registered and activated users can see links. Click Here To Register...]
Schritt 2: Unsere erste .cpp Datei
Jetzt haben wir ein leeres Projekt.
Wie der Name schon sagt: leer.
Das heißt, wir müssen eine "Hauptdatei" hinzufügen.
Dazu machen wir einen Rechtsklick rechts beim "Projektmappen-Explorer" auf "Unser Warrock Hack", klicken auf "Hinzufügen" und "Neues Element".
[Only registered and activated users can see links. Click Here To Register...]
Nun erscheint ein Fenster.
Dort wählen wir die "C++ Datei (.cpp)" aus und nennen diese "main.cpp".
[Only registered and activated users can see links. Click Here To Register...]
Schritt 3 : Projekt Eigenschaften
Da ein leeres C++ Projekt standartmäßig versucht, eine ausführbare Datei, also eine ".exe" zu erzeugen, ändern wir dies in den Projekteigenschaften.
Wir klicken auf "Projekt" und dann auf "Unser Warrock Hack-Eigenschaften".
[Only registered and activated users can see links. Click Here To Register...]
Nun klicken wir auf "Allgemein" und wählen bei "Konfigurationstyp" "Dynamische Bibliothek (.dll)" aus.
[Only registered and activated users can see links. Click Here To Register...]
Schritt 4 : Includes und DllMain
Zunächst includen wir windows.h und stdio.h:
Jetzt kommen wir zur Hauptfunktion unserer DLL.
Sie wird aufgerufen wenn etwas mit unserer DLL passiert.
Beispielsweise wenn sie in einen Prozess injeziert wird.
Also fangen wir an:
Da diese Funktion aber auch aufgerufen wird, wenn unsere DLL wieder aus dem Prozess "genommen" wird, müssen wir den Aufruf spezifizieren.
Das geht wiefolgt:
Das sollte nun so aussehen:
[Only registered and activated users can see links. Click Here To Register...]
Schritt 5 : Die "Hackfunction"
Nun erstellen wir uns eine neue Funktion.
Diese wird aufgerufen, sobald unsere DLL injeziert wird:
Das "for (;;)" bewirkt eine Endlosschleife.
In dieser Schleife wartet unsere DLL, bis der Benutzer die Taste NUMPAD 1 betätigt.
Jetzt müssen wir noch folgenden Code im Case Block der DllMain hinzufügen:
Schritt 6 : Memory Adressen
Für unsere Memory Adressen erstellen wir eine neue Header Datei.
Dazu macht ihr wieder beim "Projektmappen-explorer" auf "Unser Warrock Hack" einen Rechtsklick, klickt auf "Hinzufügen" und dann auf "Neues Element".
Dann wählen wir die "Headerdatei (.h)" aus und nennen diese "addresses.h".
[Only registered and activated users can see links. Click Here To Register...]
Die aktuellesten Adressen gibt es hier: [Only registered and activated users can see links. Click Here To Register...]
Dann definieren wir in unserer neu angelegten Datei "addresses.h" folgendes:
[Only registered and activated users can see links. Click Here To Register...]
Schritt 7 : Der Superjump
Nun müssen wir noch unsere Adressen-Datei in der main.cpp includen:
Jetzt fügen wir noch in unserer Tastenabfrage den eigentlichen "Superjump" Code ein:
Dies sollte nun so aussehen:
[Only registered and activated users can see links. Click Here To Register...]
Jetzt klickt ihr noch oben auf "Erstellen" und dann auf "Unser Warrock Hack erstellen".
Jetzt befindet sich unser Hack im Project Ordner unter "Debug".
Diese DLL jetzt einfach mit einem Injector, z.B. PerX in WarRock.exe inijzieren und dann Ingame die Taste "Numpad 1" drücken.
Schlussaufgabe
Da ihr ja jetzt eigendlich etwas gelernt haben solltet, stelle ich euch eine Aufgabe:
Derzeit crasht das Spiel, wenn man Numpad 1 drückt, und man nicht im Spiel selbst ist.
Wie kann man das verhindern?
Ich gebe euch einen Tipp: Ihr braucht dazu nur den Player Pointer und eine If Abfrage.
- Headpuster
Da ich gerade selber an einem Warrock Hack arbeite, würde ich euch gerne meine aktuelle NoMenu Base mit der "Superjump" Funktion erklären.
Vorrausetzungen
- Microsoft Visual Studio 2010 oder Microsoft Visual C++ Express 2010
- Vorkenntnisse in C++ sind vom Vorteil
Schritt 1 : Ein neues Projekt erstellen
Wir öffnen unsere Entwicklungsumgebung und erstellen ein neues leeres C++ Projekt.
[Only registered and activated users can see links. Click Here To Register...]
Schritt 2: Unsere erste .cpp Datei
Jetzt haben wir ein leeres Projekt.
Wie der Name schon sagt: leer.
Das heißt, wir müssen eine "Hauptdatei" hinzufügen.
Dazu machen wir einen Rechtsklick rechts beim "Projektmappen-Explorer" auf "Unser Warrock Hack", klicken auf "Hinzufügen" und "Neues Element".
[Only registered and activated users can see links. Click Here To Register...]
Nun erscheint ein Fenster.
Dort wählen wir die "C++ Datei (.cpp)" aus und nennen diese "main.cpp".
[Only registered and activated users can see links. Click Here To Register...]
Schritt 3 : Projekt Eigenschaften
Da ein leeres C++ Projekt standartmäßig versucht, eine ausführbare Datei, also eine ".exe" zu erzeugen, ändern wir dies in den Projekteigenschaften.
Wir klicken auf "Projekt" und dann auf "Unser Warrock Hack-Eigenschaften".
[Only registered and activated users can see links. Click Here To Register...]
Nun klicken wir auf "Allgemein" und wählen bei "Konfigurationstyp" "Dynamische Bibliothek (.dll)" aus.
[Only registered and activated users can see links. Click Here To Register...]
Schritt 4 : Includes und DllMain
Zunächst includen wir windows.h und stdio.h:
Code:
#include <windows.h> #include <stdio.h>
Sie wird aufgerufen wenn etwas mit unserer DLL passiert.
Beispielsweise wenn sie in einen Prozess injeziert wird.
Also fangen wir an:
Code:
bool WINAPI DllMain(HINSTANCE hInst, DWORD reason, LPVOID reserved) {
return true;
}
Das geht wiefolgt:
Code:
bool WINAPI DllMain(HINSTANCE hInst, DWORD reason, LPVOID reserved) {
switch (reason) {
case DLL_PROCCESS_ATTACH:
break;
}
return true;
}
[Only registered and activated users can see links. Click Here To Register...]
Schritt 5 : Die "Hackfunction"
Nun erstellen wir uns eine neue Funktion.
Diese wird aufgerufen, sobald unsere DLL injeziert wird:
Code:
void HackThread() {
for (;;) {
if (GetAsyncKeyState(VK_NUMPAD1)) {
}
}
}
In dieser Schleife wartet unsere DLL, bis der Benutzer die Taste NUMPAD 1 betätigt.
Jetzt müssen wir noch folgenden Code im Case Block der DllMain hinzufügen:
Code:
CreateThread(0, 0, (LPTHREAD_START_ROUTINE) HackThread, 0, 0, 0);
Für unsere Memory Adressen erstellen wir eine neue Header Datei.
Dazu macht ihr wieder beim "Projektmappen-explorer" auf "Unser Warrock Hack" einen Rechtsklick, klickt auf "Hinzufügen" und dann auf "Neues Element".
Dann wählen wir die "Headerdatei (.h)" aus und nennen diese "addresses.h".
[Only registered and activated users can see links. Click Here To Register...]
Die aktuellesten Adressen gibt es hier: [Only registered and activated users can see links. Click Here To Register...]
Dann definieren wir in unserer neu angelegten Datei "addresses.h" folgendes:
Code:
#define PTR_PLAYER 0x009D8AF0 #define OFS_PLAYER_POS_Z 0x00102E4
Schritt 7 : Der Superjump
Nun müssen wir noch unsere Adressen-Datei in der main.cpp includen:
Code:
#include "addresses.h"
Code:
*(float*) (*(DWORD*) PTR_PLAYER + OFS_PLAYER_POS_Z) = 2000;
[Only registered and activated users can see links. Click Here To Register...]
Jetzt klickt ihr noch oben auf "Erstellen" und dann auf "Unser Warrock Hack erstellen".
Jetzt befindet sich unser Hack im Project Ordner unter "Debug".
Diese DLL jetzt einfach mit einem Injector, z.B. PerX in WarRock.exe inijzieren und dann Ingame die Taste "Numpad 1" drücken.
Schlussaufgabe
Da ihr ja jetzt eigendlich etwas gelernt haben solltet, stelle ich euch eine Aufgabe:
Derzeit crasht das Spiel, wenn man Numpad 1 drückt, und man nicht im Spiel selbst ist.
Wie kann man das verhindern?
Ich gebe euch einen Tipp: Ihr braucht dazu nur den Player Pointer und eine If Abfrage.
- Headpuster