Apache81 Advanced Cheater
Reputation: 5
Joined: 19 Jun 2009 Posts: 69 Location: Somewhere in space !!!
|
Posted: Sat Aug 25, 2012 7:28 pm Post subject: |
|
|
Ok... I'm doing something else but I'm going crazy !!!
Let me explain: I cannot find the pointers due to crash if attach a debugger so I would like to find everytime by scanning the first value and then get all the others by referring to this first one.
Example:
Code: | 1st value = ammo
2nd value = life
3rd value = cash |
when instantiated in memory they are in sequence:
Code: | (1) ammo have an address
(2) life is ammo address +8
(3) cash = life address +4 (so is ammo address +8 +4) |
It is simple to refer all the address to the first one... but I would like to refer any address only to its predecessor. Why? Because I don't know if I will find a memory value of interest that is the ancestor of the first one I currently found (so I would need to change all the pointers again). If I refer any address only to its predecessor I really need only to set the base address once per playing session.
I hope to not make confusion.
Anyway, I'm doing this: Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(_baseAddress_)
label(_partiArma_)
label(_partiVeicolo_)
label(_soldi_)
label(_chaos_)
registersymbol(_baseAddress_)
registersymbol(_partiArma_)
registersymbol(_partiVeicolo_)
registersymbol(_soldi_)
registersymbol(_chaos_)
newmem: //this is allocated memory, you have read,write,execute access
// variabili
_baseAddress_:
dd 1289361C
_partiArma_:
dd _baseAddress_
_partiVeicolo_:
dd _partiArma_+8
_soldi_:
dd _partiVeicolo_+4
_chaos_:
dd _soldi_+4
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
unregistersymbol(_baseAddress_)
unregistersymbol(_partiArma_)
unregistersymbol(_partiVeicolo_)
unregistersymbol(_soldi_)
unregistersymbol(_chaos_)
dealloc(newmem) |
Yes... I'm going to tell you: this code will never work because, as you can see in the screenshot, the next variables will contain the momery address in which the previous one is allocated by the autoassembler code. Only the first one will work !!!
Better if I write like this...
Now it is: Code: | _baseAddress_ is 1289361C @ 069F0000
_partiArma_ is 069F0000 @ 069F0004
_partiVeicolo_ is 069F0004 @ 069F0008
_soldi_ is 069F0008 @ 069F000C
_chaos_ is 069F000C @ 069F0010
|
I would like that it would be: Code: | _baseAddress_ is 1289361C @ 069F0000
_partiArma_ is 1289361C @ 069F0004
_partiVeicolo_ is 12893624 @ 069F0008
_soldi_ is 12893628 @ 069F000C
_chaos_ is 1289362C @ 069F0010 |
by doing this I could make a pointer like the one in screenshot2 that will refer automatically to the address I need only setting the value of _baseAddress_ in the script every time I start a game session (by scanning everytime the first value).
Can someone be so kind to help me to achieve this?
EDITED:
I tried a lot of things also in the script like: Code: | push eax
mov eax,[_partiArma_]
mov [_partiVeicolo_],eax
pop eax |
but it doesn't work because I don't have an hacking point so the code is never executed.
I also tried to write Code: | _baseAddress_:
dd 1289361C
_partiArma_:
dd _baseAddress_
_partiVeicolo_:
//dd _partiArma_+8
push eax
mov eax,[_partiArma_]
mov [_partiVeicolo_],eax
pop eax |
(yes I really did) but it gave me bad result....
If you want I can also post the entire table.
Many many thanks
Description: |
The definition of the only pointer that works !!! |
|
Filesize: |
111.45 KB |
Viewed: |
18983 Time(s) |

|
Description: |
Screenshot from the table to let you understand better what it's going on.... |
|
Filesize: |
101.63 KB |
Viewed: |
18983 Time(s) |

|
|
|