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 


MultiAOBscan offset issue

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

Joined: 08 Jun 2020
Posts: 122
Location: Migrating

PostPosted: Sun Jul 25, 2021 2:01 am    Post subject: MultiAOBscan offset issue Reply with quote

I'm trying to replace three distinct parts of a function in a game with a single code routine that overwrites a single address. All three parts of this function run for different reasons but overlap each other often and all need to be replaced to get the correct desired effect. My issue is primarily that between game updates, only the offset of this address changes and as such needs to be corrected.

In the attached image you can see the code I'm working with, and my attempt at implanting the offset, to no avail.
I know, for this version, the offset should be +22C (+0000022C), but adding in the symbol seems to put in a value I can't identify.
You can see that it's correctly storing the offset in the symbol "oOff"; here it's 2C 02.
However, it's putting in a single byte 13, the origin I have no idea of.

Following that, my jmp return does not actually return to the original code for whatever reason, I also have no idea. Can this just be a ret and work fine? As I understand it, this tiny amount of code is jmp'd to and should return to wherever it was called from, all three times if necessary.. so I'm lost.

I'm using ReadMem to grab each section of the function and replace it accordingly, up until the end of the offset in assembly. This works fine.

Help would be greatly appreciated.



debug.png
 Description:
 Filesize:  85.36 KB
 Viewed:  1026 Time(s)

debug.png


Back to top
View user's profile Send private message Visit poster's website
panraven
Grandmaster Cheater
Reputation: 55

Joined: 01 Oct 2008
Posts: 942

PostPosted: Sun Jul 25, 2021 3:10 am    Post subject: Reply with quote

oOff is address not the content of the address, which supposed to be the desired offset (22c).

Try replace all line with oOff with (place after 'EnhancementPoints2' aobscan):

Code:

label(oOff)
(LONG)[EnhancementPoints2+3]:  /// should be +3 not +2 ?
oOff:
/// symbol is local to the script, see if you need registerSymbol

/// and the db lines
mov    dword ptr[rcx+oOff],#-9999999



The script with have 'syntaxcheck' error when press 'ok' to save. Just save and test the script.

Check this for detailed:
(in beta forum)
https://forum.cheatengine.org/viewtopic.php?t=613555 (introducing pointer typecast)
https://forum.cheatengine.org/viewtopic.php?t=613506 (format changed)
(a related post)
https://www.cheatengine.org/forum/viewtopic.php?t=615391


An other method for you already save the bytes EnhancementPoints2 in obytesEP2;
Code:

push     rax
  mov    rax,obytesEP2
  mov    eax,[rax+3]
  mov     dword ptr[rcx+rax],#-9999999
pop      rax

_________________
- Retarded.
Back to top
View user's profile Send private message
Birdi
Expert Cheater
Reputation: 0

Joined: 08 Jun 2020
Posts: 122
Location: Migrating

PostPosted: Mon Jul 26, 2021 3:47 am    Post subject: Reply with quote

Thanks for the help! Always glad to learn new ways to do things.
Completely solved, outstanding.
Back to top
View user's profile Send private message Visit poster's website
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