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 


Save routine that reverts values (not stored online) help

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
Ralicht
Newbie cheater
Reputation: 0

Joined: 08 Feb 2015
Posts: 20
Location: United States

PostPosted: Tue Feb 10, 2015 9:05 am    Post subject: Save routine that reverts values (not stored online) help Reply with quote

Hey,

I have been working on this for like three months and I have become pretty good at most beginning level CE stuff. But man! I just can't crack this and it's driving me absolutely insane. I would LOVE input from someone who has a better head for this stuff than I do. Thanks for looking!

So I have these values and I know they are the correct values because I've edited them on the PS3 version of the game. They control the facedata for a character. But if I try to directly edit them, they revert back across all instances.

I'm thinking the data is actually stored in a different form somewhere and this is just the final representation for the save file? Because it has to be pulling from somewhere for it to be overwritten, right?


Code:

8D 9B 00000000        - lea ebx,[ebx+00000000]
66 0F6F 06            - movdqa xmm0,[esi]
66 0F6F 4E 10         - movdqa xmm1,[esi+10]
66 0F6F 56 20         - movdqa xmm2,[esi+20]
66 0F6F 5E 30         - movdqa xmm3,[esi+30]
66 0F7F 07            - movdqa [edi],xmm0
66 0F7F 4F 10         - movdqa [edi+10],xmm1
66 0F7F 57 20         - movdqa [edi+20],xmm2
66 0F7F 5F 30         - movdqa [edi+30],xmm3
66 0F6F 66 40         - movdqa xmm4,[esi+40]
66 0F6F 6E 50         - movdqa xmm5,[esi+50]
66 0F6F 76 60         - movdqa xmm6,[esi+60]
66 0F6F 7E 70         - movdqa xmm7,[esi+70]
00F0CD58 - 66 0F7F 67 40      - movdqa [edi+40],xmm4 <------ here is where it is written
00F0CD5D - 66 0F7F 6F 50      - movdqa [edi+50],xmm5
00F0CD62 - 66 0F7F 77 60      - movdqa [edi+60],xmm6
66 0F7F 7F 70         - movdqa [edi+70],xmm7


There is probably at least 30 different instances of these values throughout the code but all the ones that are actively overwritten seems to come from this area (00F0CD5x). How should I go about finding the original values? I've tried disabling that code so it wouldn't overwrite the save file values, but it crashes the game because it's part of a routine and accesses many other things as well.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Tue Feb 10, 2015 10:46 am    Post subject: Re: Save routine that reverts values (not stored online) hel Reply with quote

Ralicht wrote:
I know they are the correct values because I've edited them on the PS3 version of the game.
-I would not expect them to be the same. Keep looking...especially if it's not working.

Ralicht wrote:
But if I try to directly edit them, they revert back across all instances.
-Assuming that what you are saying is true regarding the data being handled locally, then what you are experiencing is probably due to the fact that you have not found the correct addresses. This is very common in games, where some values only serve as 'read-only' values and/or visual representations of raw values that can actually be edited. When this happens, you need to keep searching for the 'real' value. You will know that you have found the real value when you are able to change it and it has an effect that actually sticks. Until you find the real value, looking at the memory viewer, running the pointer scanner or writing a script may be a complete waste of time.
Back to top
View user's profile Send private message
Ralicht
Newbie cheater
Reputation: 0

Joined: 08 Feb 2015
Posts: 20
Location: United States

PostPosted: Tue Feb 10, 2015 6:02 pm    Post subject: Re: Save routine that reverts values (not stored online) hel Reply with quote

The values are definitely local. They represent the face data. On the PS3 savefiles, changing those values will change the face data the next time the game is loaded. The section of code I posted is the final resting place before data is encrypted and stored in the save file, I think. The game autosaves every so often. When I trigger an autosave, the save file is written to this address. When it's done autosaving, the address will be written over by 00s and another set of addresses appear that store the data temporarily until the next save cycle and then the data will be written again to this address.

Is there no way to trace it backwards to the original values or do I just have to keep trying to find the values by scanning while I am ingame? I just don't know how to find something like that which only changes once so you can't wiggle it back and forth and see what is changing. That's why I was trying to find it using the values stored in the save file or to change the values in the save file either one.
Back to top
View user's profile Send private message
Geri
Moderator
Reputation: 111

Joined: 05 Feb 2010
Posts: 5636

PostPosted: Tue Feb 10, 2015 6:30 pm    Post subject: Reply with quote

You can do some backtracing. Sometimes it's easy, sometimes it's very complicated. In your case, the first step is easy, your value comes from [esi+40] just a few lines above your code.

Now you have to figure out how did it get to [esi+40] and also see what happens if you change that value instead.

_________________
My trainers can be found here: http://www.szemelyesintegracio.hu/cheats

If you are interested in any of my crappy articles/tutorials about CE and game hacking, you can find them here:
http://www.szemelyesintegracio.hu/cheats/41-game-hacking-articles

Don't request cheats or updates.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Tue Feb 10, 2015 7:16 pm    Post subject: Reply with quote

Nothing will matter until you are sure that you have the correct address. You can use savegame analyzer to check the save file to see if there is a server-sided check being performed that is reverting those values back when the game is loaded/re-loaded. I assume that changing the values in the save game file and reloading the game is not working like it did on the PS3? If you are so sure that you have the correct address, this is where I would start.

You can check to see which instruction(s) is writing to your targeted address and try hard-coding the target to NOP that instruction to see if your changes will stick. Just be sure to make a copy of the original executable. Doing this may allow you to determine if you have the correct address(es) or if the values are being reverted due to a server-sided check.
Back to top
View user's profile Send private message
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