[Tutorial] Gamehacking Howto I [Ger]

04/25/2011 17:30 Okiesp#271
Scheitere schon am 1. Pointer:

Code:
005EBBD5 - DD 5F 04  - fstp qword ptr [edi+04]
Code:
EAX=00000001
EBX=0017DBE4
ECX=22C67E38
EDX=00000025
ESI=0DFD0900
EDI=22C67E38
EBP=1496B580
ESP=0017DA50
EIP=005EBBD8

Probable base pointer =22C67E38

005EBBD1 - fld qword ptr [esi+04]
005EBBD4 - pop ebx
[COLOR="Red"]005EBBD5 - fstp qword ptr [edi+04][/COLOR]
005EBBD8 - pop edi
005EBBD9 - pop esi
Bei der Suche nach dem Hexwert (22c67e38) findet sich bei mir leider absolut nichts. Der Ursprungswert ist ein Double, falls das für das Vorgehen irgendwie relevant sein sollte.

Edit: Das Game ist World of Tanks -> gesucht: aktuelle Munition
05/31/2011 20:58 qduda#272
Quote:
Originally Posted by Adroxxx View Post
Dann ist es nicht der Basepointer.
Du musst weiter reversen und schauen wo diese Adresse herkommt.
Also ich habe das gleiche Problem wie Drake.

Ich habe jetzt mal ne Weile rum probiert, und behaupte was ich und Drake gefunden haben ist der "Base" Pointer.

FF**AFA8 --> 25DB20 + 50 --> FA3A0 + 14 --> Punktezahl

Hier die Verschachtelung mal als (pseudo) C-code, dann versteht man es besser.
const uint32_t * basePtr = 0xFF00AFA8;
uint32_t * ref1Ptr = *(basePtr + 50);
uint32_t * ref2Ptr = *(ref1Ptr + 14);
uint32_t val = *ref2Ptr;

Egal wie ich die Pointer die mir CE ausspuckt reverse komme ich immer wieder bei 0xFF**AFA8 raus. Die ** ändern sich bei jedem Solitär Neustart, wie kann das sein?

By the way: Ich lande immer wieder bei FF**AFA8 und dieser Wert findet sich nicht mehr, sprich der wird nicht referenziert --> sollte der Base Pointer sein.

Win7 x64.


Edit: Mir fällt noch ein, kann es etwas mit der Endianess bei 64Bit zu tun haben? Denn eigentlich müssten die Pointer 64 Bit breit sein, CE verwendet aber nur 32Bit Addressen, vielleicht wird die Baseaddress schlicht weg falsch dargestellt. Oder bin ich da auf dem Holzweg?
06/02/2011 07:25 supercracker13#273
Gutes tut ich muss. Mir auch einen Hack erstellen deshalb habe ch schon lange nach so einem tut grsucht
06/16/2011 06:53 LoesungTasche30#274
good job aber das mit dem pointer versteh ich nicht ganz wenn ich *find out what accesses this adress* kommt bei mir anders nicht mit edi+30 sondern rcx+14 auch rax +14
FF7459BC - 8B 49 14 - mov ecx,[rcx+14]
FF7496AD - 45 8B 4B 14 - mov r9d,[r11+14]
FF7496CC - 41 83 43 14 FE - add dword ptr [r11+14],FE
FF7496D5 - 83 78 14 00 - cmp dword ptr [rax+14],00
hilfe pils ^^
06/19/2011 06:00 Xerzus#275
Hast du Sega gehackt? :D Ne scherz aber gutes TuT ^^
07/31/2011 07:32 .ShiNy#276
wenn ich auch "Find out what access this address" gehe finde ich ganz andere adressen als im tut .. .was soll ich machen ?
08/01/2011 07:45 buFFy!#277
dem template folgen .. war nicht zu erwarten das du die gleichen findest
08/01/2011 16:28 BestTiger#278
schwer tutorial
08/01/2011 18:17 .ShiNy#279
ja habe alles so gemacht wie da..
aber es geht ned bei mir kommen da andere :(
08/01/2011 18:22 wutax#280
Danke, sehr gutes Tutorial und auch gut strukturiert.
08/07/2011 22:38 NUKER_PUMA#281
Danke!

Sehr hilfreich :D
08/18/2011 21:41 Beobugs#282
Also ich habe es heute aus Jux mal mit Pinball probiert, jedoch scheint man dort nicht manipulieren (schreiben) zu können. Wer hätte gedacht, dass es schon bei so "simplen" Games nicht geht. Trotzdem fürs lesen etc richtig gutes Tut, danke.
08/19/2011 06:25 buFFy!#283
Quote:
Originally Posted by Beobugs View Post
Also ich habe es heute aus Jux mal mit Pinball probiert, jedoch scheint man dort nicht manipulieren (schreiben) zu können. Wer hätte gedacht, dass es schon bei so "simplen" Games nicht geht. Trotzdem fürs lesen etc richtig gutes Tut, danke.
Dann hast du wohl was falsch gemacht. Bei Pinball geht das auf jeden fall
08/19/2011 15:57 Beobugs#284
Magst du mir dann mal einen kleinen Tipp geben, wie man denn nun die Punktzahl manipuliert? Ich habe 2 Adressen gefunden, jedoch ändert sich, wenn ich versuche etwas zu ändern: nüscht.

Edit: Habs gelöst, das Problem war, dass CheatEngine 6 nur eine Adresse anzeigt und diese nichts ändert. Nutzt man aber CE 5.6 so erhält man 2 Adressen von denen eine funktioniert.
08/23/2011 19:55 coockiemonster#285
super tut

aber ich als Anfänger (vor 3 Tagen angefangen) im Bereich C++ hab nicht sonderlich viel verstanden, da es wenig Erklärungen zu den Befehlen gab...
vor allem am Ende

naja, vlt bin ich ja auch einfach mit c++ noch nicht vertraut genug um das zu verstehen

aber wahrscheinlich bin ich einfach zu dämlich :D