|
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
Birdi Expert Cheater Reputation: 0
Joined: 08 Jun 2020 Posts: 122 Location: Migrating
|
Posted: Sun Jul 25, 2021 2:01 am Post subject: MultiAOBscan offset issue |
|
|
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.
Description: |
|
Filesize: |
85.36 KB |
Viewed: |
1026 Time(s) |
|
|
|
Back to top |
|
|
panraven Grandmaster Cheater Reputation: 55
Joined: 01 Oct 2008 Posts: 942
|
Posted: Sun Jul 25, 2021 3:10 am Post subject: |
|
|
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 |
|
|
Birdi Expert Cheater Reputation: 0
Joined: 08 Jun 2020 Posts: 122 Location: Migrating
|
Posted: Mon Jul 26, 2021 3:47 am Post subject: |
|
|
Thanks for the help! Always glad to learn new ways to do things.
Completely solved, outstanding.
|
|
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
|
|