 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
rog9001 Expert Cheater
Reputation: 2
Joined: 22 Dec 2015 Posts: 214 Location: Jupiter
|
Posted: Tue Dec 22, 2015 7:10 pm Post subject: Help please i forgot everything xD [Edited] |
|
|
So i am making a trainer for Asphalt 8 and i am trying to make the nitro stop decreasing but all i can find is the values to it but when i code inject so it freezes all it does is jumps to a diffrent address which jumps to another address but if i try to freeze the last jumped to address the game crashes. What to do??? Maybe i am doing it wrong.
I have done the freeze method for other games like Dungeon Hunet 5 and it doesnt jump to other addresses it only jumps to 1 address which isnt connected to anything else so the code inject works.
So here is the stuff:
These are the addresses I found:
015A7D7E - 66 0FD6 80 140A0000 - movq [eax+00000A14],xmm0
0111C514 - D9 5F 40 - fstp dword ptr [edi+40]
01164BEC - F3 0F11 51 04 - movss [ecx+04],xmm2
01164B8C - 89 41 04 - mov [ecx+04],eax
015AB1C8 - D9 9B 30050000 - fstp dword ptr [ebx+00000530]
0114A738 - 89 42 08 - mov [edx+08],eax
015BD612 - D9 9F F4540000 - fstp dword ptr [edi+000054F4]
And this is the code inject which doesn't work at all also forgot to mention I can freeze the stuff visually but the nitro itself will still get used up.
[ENABLE]
alloc(newmem,$1000)
label(returnhere)
label(originalcode)
label(exit)
newmem:
originalcode:
//fstp dword ptr [edi+000054F4]
exit:
jmp returnhere
"Asphalt8_w8.exe"+4ED612:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"Asphalt8_w8.exe"+4ED612:
fstp dword ptr [edi+000054F4]
As I said before this ^^^^ stuff worked for Dungeon Hunter 5 and it locked stuff but it doesn't work for asphalt 8 also all the code injects are the same for all the addresses.
Last edited by rog9001 on Wed Dec 23, 2015 1:30 am; edited 1 time in total |
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4718
|
Posted: Tue Dec 22, 2015 7:26 pm Post subject: |
|
|
Posting your script and the ASM around the instruction that's accessing the address would be helpful.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
rog9001 Expert Cheater
Reputation: 2
Joined: 22 Dec 2015 Posts: 214 Location: Jupiter
|
Posted: Tue Dec 22, 2015 7:31 pm Post subject: I will post everything soon... |
|
|
| Right now i am out so i am not at the pc so i will post the stuff in a bit so you understand what i am on about
|
|
| Back to top |
|
 |
vng21092 Grandmaster Cheater
Reputation: 15
Joined: 05 Apr 2013 Posts: 644
|
Posted: Wed Dec 23, 2015 8:03 am Post subject: |
|
|
Well, when you do code injection, you HAVE to jump, thats the whole point of code injection. You allocate your own memory, and you have your injection point (in your case, Asphalt8_w8.exe"+4ED612) JUMP to your code, execute your code, then it jumps BACK to the code following your injection point through "returnhere". You also need to understand what these instructions do, you can't just nop everything. In this case, you nopped a fstp instruction, which is essentially a pop command, but for floats. By nopping this command, you've messed up the FPU stack in the games memory because somewhere above your code, a value was pushed to the top of the FPU stack via a fld command, and your injection point was suppose to be like "hey, I want that value", but since you've nopped that instruction, the fstp command after your injection point (assuming there is one) will grab the wrong value off the top of the FPU stack because your injection point wasn't there to retrieve it and pop it off the stack, giving all following instructions that access the FPU stack the probable wrong value. Instead of nopping it, all you had to do was overwrite the value, you could have done | Code: | fstp dword ptr [edi+000054F4]
mov [edi+54F4],(float)100 //Or whatever number |
OR, if you found a register holding your max value, do | Code: | fstp dword ptr [edi+000054F4]
fld [edi+X] //Where X = offset holding max w/e
fstp [edi+54F4] |
So yea, just understand what you can nop, and what you can't. Please refer to this page for reference if you want to learn more about ASM instructions.
|
|
| Back to top |
|
 |
mgr.inz.Player I post too much
Reputation: 222
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Wed Dec 23, 2015 8:25 am Post subject: |
|
|
And, if you don't want to overwrite that value, you can use:
So,
| Code: | newmem:
originalcode:
fstp ST(0)
exit:
jmp returnhere |
_________________
|
|
| 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
|
|