Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Help please i forgot everything xD [Edited]

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
rog9001
Expert Cheater
Reputation: 2

Joined: 22 Dec 2015
Posts: 214
Location: Jupiter

PostPosted: Tue Dec 22, 2015 7:10 pm    Post subject: Help please i forgot everything xD [Edited] Reply with quote

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
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4718

PostPosted: Tue Dec 22, 2015 7:26 pm    Post subject: Reply with quote

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
View user's profile Send private message
rog9001
Expert Cheater
Reputation: 2

Joined: 22 Dec 2015
Posts: 214
Location: Jupiter

PostPosted: Tue Dec 22, 2015 7:31 pm    Post subject: I will post everything soon... Reply with quote

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
View user's profile Send private message
vng21092
Grandmaster Cheater
Reputation: 15

Joined: 05 Apr 2013
Posts: 644

PostPosted: Wed Dec 23, 2015 8:03 am    Post subject: Reply with quote

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
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

Joined: 07 Nov 2008
Posts: 4438
Location: W kraju nad Wisla. UTC+01:00

PostPosted: Wed Dec 23, 2015 8:25 am    Post subject: Reply with quote

And, if you don't want to overwrite that value, you can use:
Code:
fstp ST(0)



So,
Code:
newmem:

originalcode:
fstp ST(0)

exit:
jmp returnhere

_________________
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites