 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
OtisInf Cheater
Reputation: 0
Joined: 22 Sep 2015 Posts: 25 Location: The Netherlands
|
Posted: Sun Mar 27, 2016 6:24 am Post subject: Found AC Syndicate Timestop, can't get CE to run the asm :( |
|
|
Hi,
In AC Syndicate, I found the timestop, to freeze the game. This is a single byte on a memory location which is accessed through a pointer. I want to write a 1 there to enable timestop (and then press ESC to activate it, it basically switches off the menu being shown. Camera's work, rest doesnt See for details: gist.github(.)com/FransBouma/cb367f4a932dd3202a0d), and 0 to disable timestop.
I wrote this script:
Code: | [ENABLE]
push EAX
mov EAX,[ACS.exe+70C2A08] // pointer to actual location of value buffers
mov byte ptr [EAX+000002F8],01 // offset in valuebuffer for timestop
pop EAX
[DISABLE]
push EAX
mov EAX,[ACS.exe+70C2A08]
mov byte ptr [EAX+000002F8],00
pop EAX
|
but it doesn't work: CE won't enable it/disable it and therefore it won't work. I added it to a cheat table, saved it as a CT, and load it after I bind CE to the ACS.exe process. I can edit it properly, clicking OK doesn't give any errors, but enabling/disabling won't work at all (and it doesn't have any effect on the memory location as well, so it doesn't run).
What am I doing wrong? AC Syndicate doesn't allow code overwriting, so I can't write any asm to the exe process' code as that will immediately crash the game.
My thought was that a hotkey press (e.g. F7), would run the [enable] block, effectively enabling my cheat, but apparently something's off. Can someone shed a light on this? Is there a way to get some info regarding why things don't work, e.g. logging/debug of scripts?
TIA!
Last edited by OtisInf on Sun Mar 27, 2016 6:59 am; edited 1 time in total |
|
Back to top |
|
 |
Cake-san Grandmaster Cheater
Reputation: 8
Joined: 18 Dec 2014 Posts: 541 Location: Semenanjung
|
Posted: Sun Mar 27, 2016 6:58 am Post subject: |
|
|
Code: |
[ENABLE]
[ACS.exe+70C2A08]+2F8:
db 01
[DISABLE]
[ACS.exe+70C2A08]+2F8:
db 0
|
or
Code: |
[ENABLE]
alloc(newmem,30)
createthread(newmem)
label(_end)
registersymbol(_end)
newmem:
push EAX
mov EAX,[ACS.exe+70C2A08] // pointer to actual location of value buffers
mov byte ptr [EAX+000002F8],01 // offset in valuebuffer for timestop
pop EAX
push #1000
call sleep
cmp [_end],01
jne newmem
ret
_end:
dd 0
[DISABLE]
_end:
dd 01
unregistersymbol(_end)
|
_________________
... |
|
Back to top |
|
 |
OtisInf Cheater
Reputation: 0
Joined: 22 Sep 2015 Posts: 25 Location: The Netherlands
|
Posted: Sun Mar 27, 2016 7:03 am Post subject: |
|
|
Cake-san wrote: | Code: |
[ENABLE]
[ACS.exe+70C2A08]+2F8:
db 01
[DISABLE]
[ACS.exe+70C2A08]+2F8:
db 0
|
or
Code: |
[ENABLE]
alloc(newmem,30)
createthread(newmem)
label(_end)
registersymbol(_end)
newmem:
push EAX
mov EAX,[ACS.exe+70C2A08] // pointer to actual location of value buffers
mov byte ptr [EAX+000002F8],01 // offset in valuebuffer for timestop
pop EAX
push #1000
call sleep
cmp [_end],01
jne newmem
ret
_end:
dd 0
[DISABLE]
_end:
dd 01
unregistersymbol(_end)
|
|
Marvellous! Works like a charm!
The first one works. The second one doesn't disable it. Will see if I can fix that. I want to use the second one to inject a keypress too (for ESC)
|
|
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
|
|