[Tutorial] Wie finde ich Hack Funktionen in WarRock?

06/15/2012 20:30 xBioK1ngz#1


Hallo Leute!
Ich möchte euch heute zeigen, wie ihr selber Hackfunktionen in WarRock finden könnt. Zunächst braucht ihr erstmal einen Debugger,den ich euch unten als Download zu verfügung stellen werde. Wenn ihr den Debugger heruntergeladen habt, könnt ihr euch die gedumpte WarRock.exe unten herrunterladen.
Nun können wir anfangen.



Debugger
[Only registered and activated users can see links. Click Here To Register...]
Download: [Only registered and activated users can see links. Click Here To Register...]

---------------------------------------------------------------
WarRock
[Only registered and activated users can see links. Click Here To Register...]
Download: [Only registered and activated users can see links. Click Here To Register...]
Virustotal: [Only registered and activated users can see links. Click Here To Register...]


Wenn ihr euch den Debugger und die WarRock.exe heruntergeladen habt, können wir ja anfangen.
Zunächst sollten wir erstmal eine Idee haben was wir in WarRock finden können, dazu Spielen wir eine Runde. Nach einiger Zeit spielen im Zombie Modus, starb ich an einer Verblutung. Bevor ich starb kam die Nachricht: "Du wirst Gesundheitspunkte verlieren, wenn Du nicht behandelt wirst". Jetzt gibt es ein Item in WarRock das sich "Compressed Bandage" nennt, das die Blutungen stoppt. Jetzt haben wir die erste Idee, ein "Compressed Bandage Item Hack"!

Jetzt können wir den Debugger starten und die WarRock Dumped.exe öffnen.
Wir starten also Olly Debugger und drücken dann F3.
Wenn wir F3 gedrückt habt, könnt ihr auf eure Dateien am Computer zugreifen.
[Only registered and activated users can see links. Click Here To Register...]
Jetzt wählt die WarRock Dumped.exe die ihr heruntergeladen habt und drückt auf "Öffnen". Wenn ihr sie nun geöffnet habt, dauert es ein moment, das sie geladen wird. Wenn sie fertig geladen ist, sollte es so aussehen:
[Only registered and activated users can see links. Click Here To Register...]
Die Dumped WarRock.exe ist jetzt fertig geladen.
Wir möchten jetzt die Text Strings von WarRock auslesen, also machen wir Rechtsklick auf einer Stelle im Code, gehen dann auf "Search for" und dann auf "All referenced strings" un bestätigen. Das ganze sollte dann so aussehen:
[Only registered and activated users can see links. Click Here To Register...]
Olly Debugger sucht jetzt einen moment alle Text Strings in WarRock und listet sie in einen neuen Fenster auf.
Nun haben wir den Text String: "Du wirst Gesundheitspunkte verlieren, wenn Du nicht behandelt wirst" der sich an der String Stelle "m34" befindet.
-----------------------------------------------------
Woher ich weiß warum der String
"m34" -> "Du wirst Gesundheitspunkte verlieren, wenn Du nicht behandelt wirst"
Ist ?
Benutzt einfach die Webseite:
[Only registered and activated users can see links. Click Here To Register...]
-----------------------------------------------------
Wir machen jetzt Rechtsklick im neuen Fenster und wählen "Search for text", dann geben wir "m34" ein und drücken "OK".
[Only registered and activated users can see links. Click Here To Register...]
Das Fenster führt uns als erstes zu einen String Namens: "m348" der noch nicht der String ist, denn wir suchen.
[Only registered and activated users can see links. Click Here To Register...]
Jetzt machen wir Rechtsklick und wählen: "Search again", bis wir nur den String: "m34" haben.
[Only registered and activated users can see links. Click Here To Register...]
Wenn wir den String: "m34" haben, drücken wir Enter und kommen zu der eigentlichen Funktion die wir suchen.
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Wenn wir die Funktion jetzt uns näher betrachten, können wir oben einen Check von einer Adresse sehen, die die Funktion zum Aufrufen, bzw. nicht zum Aufrufen bringt.
[Only registered and activated users can see links. Click Here To Register...]
Ich habe euch jetzt mal die Funktion so beschrieben, wie ich sie verstehe:
[Only registered and activated users can see links. Click Here To Register...]
Okay, wenn wir uns das jetzt genauer anschauen, sehen wir also das es ein Check gibt, der die Funktion aufruft, oder nicht.
Wenn wir jetzt die Funktion nicht zum aufrufen bringen, sollten wir unsere Hack Funktion haben, also es gibt 2 Möglichkeiten.
Die 1. Möglichkeit wäre, den Check (JNE SHORT ) zu ( JMP SHORT ) machen, dann würde er die Funktion den Check überspringen und wir hätten unsere Hack Funktion. In C++ sollte das dann so aussehen:
Code:
DWORD dwOldProtect;
VirtualProtect((LPVOID)(0x5B181F),1,PAGE_READWRITE,&dwOldProtect);
memcpy((LPVOID)(0x5B181F),(LPBYTE)(0xEB),1);
VirtualProtect((LPVOID)(0x5B181F),1,dwOldProtect,&dwOldProtect);
Das wäre dann ein ASM Hack und würde einen HackShield Bypass benötigen, da sonst HackShield eine Byte Modifikation erkennen würde.
Jetzt gibt es ja noch die 2. Variante.
Wir nehmen jetzt einfach die Adresse, bei den der Wert abgefragt wird (0xA305A0).
Die Abfrage lautet: "CMP BYTE PTR DS:[0A305A0],BL"
Jetzt wissen wir das der die Adresse den Type Byte hat und das sie höhst wahrscheinlich das Prinzip hat, 1 = AN / 0 = AUS.
In C++ sollte das dann so aussehen:
Code:
*(BYTE*)(0xA305A0) = 0x1;
Jetzt solltet ihr nicht mehr sterben durch Blutungen.
Ich hoffe, ich habe euch geholfen und ihr versteht es.
Ich habe mir nicht viel Mühe in der Rechtschreibung gegeben und ich nehme gerne Kritik an, falls ich was falsch erklärt habe, oder es anders machen sollte.

06/15/2012 20:32 War4Gamer#2
Echt gutes Tutorial, muss ich sagen ;)
06/15/2012 20:33 ™KaitoKid™#3
Geiler TuT echt hilfreich man :)
06/15/2012 20:35 CyberVeezy :)#4
Sehr gut erklärt worden! :)
06/15/2012 20:35 xRoute66x#5
N1 !
Und das nur für mich? xD
Danke schön :)
Ps: Einige Spoiler würden deinem Thread gut tuhen.
06/15/2012 20:35 ■DarknessIM■#6
Also es ist ziemlich simpel erklärt.Es sollte auch wirklich jeder verstehen. :)
06/15/2012 20:40 xBioK1ngz#7
Nach vielen Anfragen, wie ich auf den String m34 bekommen bin, habe ich eine Erklärung hinzugefügt ( An der Stelle )!
06/16/2012 10:30 xRoute66x#8
So, nun habe ich 2 Pointer selber gefunden :D

60TRUCK = ServerPointer
MessageBox_Text_BoomInstallHelp = PlayerPointer
Sequence = ADR_POINTER_STATE

€: CA01 = 5th Slot :D
06/16/2012 11:02 blingf1ish#9
nice erklärt gutes turorial hasst dir mühe gegeben thanks
06/16/2012 15:27 MilchMannx3#10
Eeendlich ein tutorial!
fettes thanks!
06/16/2012 22:14 xRoute66x#11
Und wie finde ich die Pattern davon raus? :D
06/17/2012 03:11 Shadowzz7x#12
gutes tutorial vielen dank
06/17/2012 09:38 Faultyclones#13
schönes Tutorial :)
ne Frage :
angenommen,ich will eine unentdeckte Funktion finden.Wie mach ich das ?
06/17/2012 13:43 xXrussXx#14
Super ding <3

Quote:
Originally Posted by Donnie Brasco View Post
schönes Tutorial :)
ne Frage :
angenommen,ich will eine unentdeckte Funktion finden.Wie mach ich das ?
Das hat er doch schon erklärt *facepalm* aber nochmal zum mitschreiben! :
Diese Seite: [Only registered and activated users can see links. Click Here To Register...]

Dort suchst du wie zB : M345 = Diese Waffe darf nicht im CqC verwendet werden.. dann suchst du nach dem jeweiligen code (M345) in OllyDGG etc raus! Dann gibts da in der nähe von dem was er findet eine Addy die zB so aussehen tut 0123344D Davor schreibst du dann noch 0x und fertig!
Man erkennt eine Addy das da Ptr und die dazugehörige Bit anzahl!
Lies einfach den Post genau! CyberRazzer hats Super erklärt -.- (Y)
Geholfen?^^
06/17/2012 23:39 xBioK1ngz#15
Quote:
Originally Posted by xroute66x™ :) View Post
Und wie finde ich die Pattern davon raus? :D
Es wird dafür noch ein Tutorial kommen, vlt.