 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
it-ty Newbie cheater
Reputation: 0
Joined: 05 Jun 2014 Posts: 22
|
Posted: Sat Mar 14, 2015 11:02 pm Post subject: freeze bointer by autoassembly |
|
|
Hi. every body. problem about script autoassembly
i want edit code freeze bointer by autoassembly
Help me Plzz
|
|
Back to top |
|
 |
justa_dude Grandmaster Cheater
Reputation: 23
Joined: 29 Jun 2010 Posts: 891
|
Posted: Sat Mar 14, 2015 11:07 pm Post subject: |
|
|
Do the tutorial, there's an exercise that teaches you to do just that.
_________________
A nagy kapu mellett, mindig van egy kis kapu.
----------------------
Come on... |
|
Back to top |
|
 |
it-ty Newbie cheater
Reputation: 0
Joined: 05 Jun 2014 Posts: 22
|
Posted: Sat Mar 14, 2015 11:11 pm Post subject: |
|
|
justa_dude wrote: | Do the tutorial, there's an exercise that teaches you to do just that. |
Tutorial
Do you have a code sample
|
|
Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Sun Mar 15, 2015 6:05 am Post subject: |
|
|
Code: | alloc(PTR,512)
label(invalid)
PTR:
pushad
//Follow Pointer
mov eax,["Game.exe"+Offset0]
or eax,eax
je short invalid //jump if invalid Pointer
mov eax,[eax+Offset1]
or eax,eax
je short invalid
mov eax,[eax+Offset2]
or eax,eax
je short invalid
mov eax,[eax+Offset3]
or eax,eax
je short invalid
//[eax] now contains the value you want to read/edit
invalid:
push #50 //50ms Timeout
call sleep
popad
jmp PTR
createthread(PTR) |
Do you mean something like this? It should work (haven't explicitly tested it) ...
|
|
Back to top |
|
 |
it-ty Newbie cheater
Reputation: 0
Joined: 05 Jun 2014 Posts: 22
|
Posted: Sun Mar 15, 2015 7:49 am Post subject: |
|
|
hhhuut wrote: | Code: | alloc(PTR,512)
label(invalid)
PTR:
pushad
//Follow Pointer
mov eax,["Game.exe"+Offset0]
or eax,eax
je short invalid //jump if invalid Pointer
mov eax,[eax+Offset1]
or eax,eax
je short invalid
mov eax,[eax+Offset2]
or eax,eax
je short invalid
mov eax,[eax+Offset3]
or eax,eax
je short invalid
//[eax] now contains the value you want to read/edit
invalid:
push #50 //50ms Timeout
call sleep
popad
jmp PTR
createthread(PTR) |
Do you mean something like this? It should work (haven't explicitly tested it) ... |
I tested code. It error code needs enable,disable
|
|
Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Sun Mar 15, 2015 7:54 am Post subject: |
|
|
Yeah sorry, forgot those ...
Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(PTR,512)
label(invalid)
PTR:
pushad
//Follow Pointer
mov eax,["Game.exe"+Offset0]
or eax,eax
je short invalid //jump if invalid Pointer
mov eax,[eax+Offset1]
or eax,eax
je short invalid
mov eax,[eax+Offset2]
or eax,eax
je short invalid
mov eax,[eax+Offset3]
or eax,eax
je short invalid
//[eax] now contains the value you want to read/edit
invalid:
push #50 //50ms Timeout
call sleep
popad
jmp PTR
createthread(PTR)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(PTR) |
|
|
Back to top |
|
 |
it-ty Newbie cheater
Reputation: 0
Joined: 05 Jun 2014 Posts: 22
|
Posted: Sun Mar 15, 2015 11:58 am Post subject: |
|
|
@hhhuut
I tested this code.It error
Help me check this code plzz
Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(PTR,512)
label(invalid)
PTR:
pushad
//Follow Pointer
mov eax,["solitaire.exe"+0008E528]
or eax,eax
je short invalid //jump if invalid Pointer
mov eax,[eax+78c]
or eax,eax
je short invalid
mov eax,[eax+2d0]
or eax,eax
je short invalid
mov eax,[eax+c0]
or eax,eax
je short invalid
mov eax,[eax+470]
or eax,eax
je short invalid
mov eax,[eax+308]
or eax,eax
je short invalid
//[eax] now contains the value you want to read/edit
invalid:
push #50 //50ms Timeout
call sleep
popad
jmp PTR
createthread(PTR)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(PTR) |
|
|
Back to top |
|
 |
Zanzer I post too much
Reputation: 126
Joined: 09 Jun 2013 Posts: 3278
|
Posted: Sun Mar 15, 2015 12:16 pm Post subject: |
|
|
Instructions pushad and popad are not available for 64-bit programs.
Looking at your code, you should be able to get away with push eax and pop eax.
|
|
Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Sun Mar 15, 2015 12:35 pm Post subject: |
|
|
If it's a 64bit exe you can use pusha/popa or, as Zanzer proposes, just push one register onto the stack, but be careful, push/pop eax won't work on 64bit either. You'll have to use push/pop rax.
|
|
Back to top |
|
 |
it-ty Newbie cheater
Reputation: 0
Joined: 05 Jun 2014 Posts: 22
|
Posted: Sun Mar 15, 2015 9:32 pm Post subject: |
|
|
Instuctions push,pop or pushad,popad then no work too.
|
|
Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Mon Mar 16, 2015 4:05 am Post subject: |
|
|
Well, push/pop alone won't work, you always have to push a register or value onto the stack.
So:
In case your game (Solitaire) is 64bit try push/pop rax.
If it's 32bit then use push/pop eax.
One of those commands will work...
|
|
Back to top |
|
 |
it-ty Newbie cheater
Reputation: 0
Joined: 05 Jun 2014 Posts: 22
|
Posted: Mon Mar 16, 2015 6:26 am Post subject: |
|
|
hhhuut wrote: | Well, push/pop alone won't work, you always have to push a register or value onto the stack.
So:
In case your game (Solitaire) is 64bit try push/pop rax.
If it's 32bit then use push/pop eax.
One of those commands will work... |
System OS me 's 32bit. but I think the code wrong
I sheach google meet this code
Code: | alloc(Threadproc, 1024)
alloc(DoFreeze, 4)
label(EndThread)
label(Loopy)
DoFreeze:
dd 1
Threadproc:
pushad
Loopy:
cmp dword [DoFreeze], 0
je EndThread
mov eax, [pointer]
mov [eax+offset], valuetofreezeat
push FreezeInterval
call Sleep
jmp Loopy
EndThread:
popad
retn 4 |
Can this code work?
|
|
Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Mon Mar 16, 2015 12:53 pm Post subject: |
|
|
Well, there's no big difference between my code and the one you found except that your code will crash if you try to read a zero pointer...
So if you have a 32bit OS, what error do you get when trying to add/run the script?
Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(PTR,512)
label(invalid)
PTR:
pushad
//Follow Pointer
mov eax,["solitaire.exe"+0008E528]
or eax,eax
je short invalid //jump if invalid Pointer
mov eax,[eax+78c]
or eax,eax
je short invalid
mov eax,[eax+2d0]
or eax,eax
je short invalid
mov eax,[eax+c0]
or eax,eax
je short invalid
mov eax,[eax+470]
or eax,eax
je short invalid
mov eax,[eax+308]
or eax,eax
je short invalid
//[eax] now contains the value you want to read/edit
invalid:
push #50 //50ms Timeout
call sleep
popad
jmp PTR
createthread(PTR)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(PTR) |
|
|
Back to top |
|
 |
it-ty Newbie cheater
Reputation: 0
Joined: 05 Jun 2014 Posts: 22
|
Posted: Thu Mar 19, 2015 7:38 am Post subject: |
|
|
hhhuut wrote: | Well, there's no big difference between my code and the one you found except that your code will crash if you try to read a zero pointer...
So if you have a 32bit OS, what error do you get when trying to add/run the script?
Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(PTR,512)
label(invalid)
PTR:
pushad
//Follow Pointer
mov eax,["solitaire.exe"+0008E528]
or eax,eax
je short invalid //jump if invalid Pointer
mov eax,[eax+78c]
or eax,eax
je short invalid
mov eax,[eax+2d0]
or eax,eax
je short invalid
mov eax,[eax+c0]
or eax,eax
je short invalid
mov eax,[eax+470]
or eax,eax
je short invalid
mov eax,[eax+308]
or eax,eax
je short invalid
//[eax] now contains the value you want to read/edit
invalid:
push #50 //50ms Timeout
call sleep
popad
jmp PTR
createthread(PTR)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(PTR) |
|
Help explain this code plz.
|
|
Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Thu Mar 19, 2015 2:42 pm Post subject: |
|
|
As you can see the code does not only read a pointer once but every 50 milli seconds ...
Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(PTR,512) //Allocate a memory region that is 512Bytes big (should be enough for every pointer)
label(invalid) //Jump-label
PTR:
pushad //push/save all general register (ax, bx, cx, dx, si, di, sp, bp (,ip?)) onto the stack
//Follow Pointer
mov eax,["solitaire.exe"+0008E528] //Copy value from base-address and first offset
or eax,eax //test if it's a zero pointer (will crash if it is and you try to read from it, so this is for safety reasons)
je short invalid //jump if invalid Pointer
mov eax,[eax+78c] //add second offset of the pointer chain
or eax,eax
je short invalid
mov eax,[eax+2d0] //add third offset
or eax,eax
je short invalid
mov eax,[eax+c0] //fourth (if there is a forth)
or eax,eax
je short invalid
mov eax,[eax+470] //fifth ...
or eax,eax
je short invalid
mov eax,[eax+308] //sixth ...
or eax,eax
je short invalid
//[eax] now contains the value you want to read/edit
invalid:
push #50 //50ms Timeout
call sleep //will take the last value from the stack and wait as long as this value is high (in our case 50ms)
popad //pop all general registers now (so that the stack is the same as before our code execution)
jmp PTR //jump to read the pointer again
createthread(PTR) //create an own thread for reading the pointer because otherwise the game/application would freeze
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(PTR) |
I hope assembler code looks more or less familiar to you ...
|
|
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
|
|