View previous topic :: View next topic |
Author |
Message |
Freiza Grandmaster Cheater
Reputation: 22
Joined: 28 Jun 2010 Posts: 662
|
Posted: Thu Sep 16, 2010 3:02 pm Post subject: cheat engine not working with scalar double-precision |
|
|
cheat engine not working for scalar double-precision floating-point..
see the pics in attachment.
Description: |
|
Filesize: |
49.89 KB |
Viewed: |
8720 Time(s) |

|
|
|
Back to top |
|
 |
noko_112 Grandmaster Cheater
Reputation: 0
Joined: 09 Jun 2009 Posts: 585
|
Posted: Thu Sep 16, 2010 3:16 pm Post subject: |
|
|
Try Movss or Movds
|
|
Back to top |
|
 |
justa_dude Grandmaster Cheater
Reputation: 23
Joined: 29 Jun 2010 Posts: 891
|
Posted: Thu Sep 16, 2010 3:23 pm Post subject: |
|
|
Or just forgo the asm and emit the bytecode.
|
|
Back to top |
|
 |
noko_112 Grandmaster Cheater
Reputation: 0
Joined: 09 Jun 2009 Posts: 585
|
Posted: Thu Sep 16, 2010 3:26 pm Post subject: |
|
|
justa_dude wrote: | Or just forgo the asm and emit the bytecode. |
Give the poor fellow the right bytes then
|
|
Back to top |
|
 |
Freiza Grandmaster Cheater
Reputation: 22
Joined: 28 Jun 2010 Posts: 662
|
Posted: Thu Sep 16, 2010 3:42 pm Post subject: |
|
|
Those code were generated by cheat engine itself then why is it not recognizing it?
|
|
Back to top |
|
 |
Csimbi I post too much
Reputation: 97
Joined: 14 Jul 2007 Posts: 3325
|
Posted: Thu Sep 16, 2010 5:25 pm Post subject: |
|
|
The Intel manual says:
Code: |
0F 6F /r MOVQ mm, mm/m64 - Move quadword from mm/m64 to mm.
0F 7F /r MOVQ mm/m64, mm - Move quadword from mm to mm/m64.
F3 0F 7E MOVQ xmm1, xmm2/m64 - Move quadword from xmm2/mem64 to xmm1.
66 0F D6 MOVQ xmm2/m64, xmm1 - Move quadword from xmm1 to xmm2/mem64. |
|
|
Back to top |
|
 |
Freiza Grandmaster Cheater
Reputation: 22
Joined: 28 Jun 2010 Posts: 662
|
Posted: Thu Sep 16, 2010 5:52 pm Post subject: |
|
|
when i assemble the code directly on disassembler, it compiles.
but it do not compile on auto assembler window.
|
|
Back to top |
|
 |
Geri Moderator
Reputation: 111
Joined: 05 Feb 2010 Posts: 5636
|
Posted: Fri Sep 17, 2010 7:56 pm Post subject: |
|
|
Hey, this code is exactly the same which is decreasing the energy on Youda Survivor. It is a flash game which is working with double value.
I did not really see this code in other non-flash games.
Btw. I have tried to make a script with this code in CE 6 Alpha 13 32-bit and it didn't recognized it. I am not even sure if this instruction is so widely used in other kinds of applications (I mean in non-flash games).
I have no clue about the 64 bit version. It may work there. DB will know it for sure.
_________________
|
|
Back to top |
|
 |
Freiza Grandmaster Cheater
Reputation: 22
Joined: 28 Jun 2010 Posts: 662
|
Posted: Fri Sep 17, 2010 8:05 pm Post subject: |
|
|
Yes i was trying to hack that game
|
|
Back to top |
|
 |
Geri Moderator
Reputation: 111
Joined: 05 Feb 2010 Posts: 5636
|
Posted: Fri Sep 17, 2010 8:17 pm Post subject: |
|
|
If You want, check out what is accessing to the address.
Code: | fld qword ptr [eax+000000D0] |
Ok this code will really work now. Of course the code's address will be different as it is changing.
Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
1568CA8D:
jmp newmem
nop
returnhere:
newmem: //this is allocated memory, you have read,write,execute access
mov [eax+000000d4],40c37880
//place your code here
originalcode:
fld qword ptr [eax+000000d0]
exit:
jmp returnhere
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
1568CA8D:
fld qword ptr [eax+000000d0]
//Alt: db DD 80 D0 00 00 00 |
And You will need aobscan for this game, because the address of the code is always changing when You restart it. As in other flash games too.
EDIT:
And here is the working code with AOBscan, so it works even after restarting the game:
Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
label(energylabel)
registersymbol(energylabel)
aobscan(energy,dd 80 d0 00 00 00)
energy:
energylabel:
jmp newmem
nop
returnhere:
newmem: //this is allocated memory, you have read,write,execute access
mov [eax+000000d4],40c37880
//place your code here
originalcode:
fld qword ptr [eax+000000d0]
exit:
jmp returnhere
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
energylabel:
fld qword ptr [eax+000000d0]
//Alt: db DD 80 D0 00 00 00
unregistersymbol(energylabel) |
You can start flaming me for handling a double type value with modifying the last 4 bytes with mov. But hey at least it is working.
_________________
|
|
Back to top |
|
 |
|