 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
wert1990 How do I cheat?
Reputation: 0
Joined: 16 Mar 2015 Posts: 2
|
Posted: Mon Mar 16, 2015 12:25 pm Post subject: finding register change |
|
|
Hello, I am trying to find the master methode, that changes the players position in a textbased rougelike. The possition is stored a room Id, and in ~12 places, probably because the Player consists of several different objects.
I have found what seems to be main possition value, since any changes done to it don't revert when I use the "wait" comand and it changes the results of the "look" comand to the room I would expect.
I generated a Pointer for that value, and it works, but the assembly code only reads from the register cl and I can't find where that value is written in that register. Is there any way to search for that part of the assembly?
code that writes the roomID:
git.exe+AF43 - E9 00B6FFFF - jmp git.exe+6548
git.exe+AF48 - 8B 8D 84FEFFFF - mov ecx,[ebp-0000017C]
git.exe+AF4E - C1 E9 18 - shr ecx,18
git.exe+AF51 - 8B 15 CC614100 - mov edx,[git.exe+161CC]
git.exe+AF57 - 88 0C 02 - mov [edx+eax],cl
git.exe+AF5A - 8B 8D 84FEFFFF - mov ecx,[ebp-0000017C]
git.exe+AF60 - C1 E9 10 - shr ecx,10
git.exe+AF63 - 8B 15 CC614100 - mov edx,[git.exe+161CC]
git.exe+AF69 - 88 4C 02 01 - mov [edx+eax+01],cl
|
|
| Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Mon Mar 16, 2015 12:58 pm Post subject: |
|
|
cl is the lower half of the cx register.
So at git.exe+af48 it writes to ecx which means that also cl is written to...
|
|
| Back to top |
|
 |
wert1990 How do I cheat?
Reputation: 0
Joined: 16 Mar 2015 Posts: 2
|
Posted: Mon Mar 16, 2015 2:06 pm Post subject: |
|
|
Thanks
Sadly that just transfered the problem, since [ebp-0000017C] seems to be a location that te assembler uses to temporarily store values, it is overwritten many hundrets of times, with a large variation of values, from lots of different methodes, even i I just move one room over.
Any Ideas?
Most helpfull would be some way to cause the debugger to make a step backwards in the code, or at least show how he arrived at that location. Since multible jumps end in that code segment who in turn redcieve multible jumps.
|
|
| Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Mon Mar 16, 2015 2:41 pm Post subject: |
|
|
Just have a look at the "Debug" tab in the memory view ...
You can set a breakpoint (F5) on an instruction (perhaps one or two before the important one(s)) and as soon as the game executes this instruction it'll be paused completely by CE.
If you're at this point, press F5 on the previous marked instruction again (to remove the breakpoint) and then you can either run the game again (F9) or you can execute one instruction after another (F7) and see, what has changed in the memory (what has changed in the stack, which registers have changed the value, what value they have now, ...)
Or wait. Since there's an unconditional jump before the important instruction just set the breakpoint at "git.exe"+AF48 ...
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|