 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
rlange How do I cheat?
Reputation: 0
Joined: 26 Aug 2007 Posts: 9
|
Posted: Wed Jul 21, 2010 4:58 pm Post subject: Pointers Help |
|
|
I'm a noob, so I'm going to try and explain this the best way I can. I have a pointer, its 5 levels deep. Level 3 in the pointer represents an array index. The index I'm targeting changes frequently. I can however read antoher static memory address to find the target index im looking for. Is there anyway in CE to build a pointer that can read a specific memory address to use as one of the offsets in the pointer, or maybe a way to smartedit the pointer, but change one of the offsets instead of offsetting the address being read.
Thanks,
|
|
Back to top |
|
 |
justa_dude Grandmaster Cheater
Reputation: 23
Joined: 29 Jun 2010 Posts: 891
|
Posted: Wed Jul 21, 2010 5:43 pm Post subject: |
|
|
I don't exactly understand your description, so it is hard to know what to suggest. What is your ultimate goal?
|
|
Back to top |
|
 |
XaLeX Expert Cheater
Reputation: 0
Joined: 19 Aug 2008 Posts: 226
|
Posted: Wed Jul 21, 2010 5:59 pm Post subject: |
|
|
Have you tried using
in the offset field? CE can evaluate these expressions.
EDIT: nevermind, it doesn't work xD
anyway, @justa_dude: he has a multi-level pointer, and needs to change the offset of the third pointer dynamically, according to the value of a static address.
|
|
Back to top |
|
 |
rlange How do I cheat?
Reputation: 0
Joined: 26 Aug 2007 Posts: 9
|
Posted: Wed Jul 21, 2010 7:02 pm Post subject: |
|
|
Yes, thank you XaLeX, thats exactly what I was looking to do. I need to evaluate a static memory address and use the result as an offset in my pointer chain. I have about 50 pointers that all have different base addresses, but all use the 3rd offset as an array index. I was able to somewhat solve the problem by taking advantage of the fact that CE uses XML to describe all the memory locations in the table. I made a small prog that would read the static address and update the XML for the 3rd offset. Thanks again.
|
|
Back to top |
|
 |
XaLeX Expert Cheater
Reputation: 0
Joined: 19 Aug 2008 Posts: 226
|
Posted: Wed Jul 21, 2010 7:20 pm Post subject: |
|
|
hmm..
the situation should be:
value = [[[[[add1+off1]+off2]+index]+off4]+off5]
if you can find a codecave, try this:
Code: |
codecave_address:
dd 00
mov eax,add1
mov ecx,[eax+off1]
mov eax,[ecx+off2]
add eax,[address_holding_the_index]
mov eax,[eax]
mov ecx,[eax+off4]
mov eax,[ecx+off5]
mov [codecave_address],eax
|
it should put the final value into the first dword of the codecave.
if you need to actually write to it, use
Code: |
codecave_address:
dd 00
mov eax,add1
mov ecx,[eax+off1]
mov eax,[ecx+off2]
add eax,[address_holding_the_index]
mov eax,[eax]
mov ecx,[eax+off4]
mov eax,[codecave_address]
mov [ecx+off5],eax
|
and it will copy the dword at [codecave_address] into the final value of the pointer. in this case, add the codecave address to the address list, so you can easily change its value.
p.s. i'm sorry for any mistakes, it's 2am here but i'm on caffeine
|
|
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
|
|