Help in building tables??
Posted: Sun Jul 11, 2021 6:00 pm
Should be simple, but I dunno how to do this since this is the first time I am trying. Also without using "Find out what writes to this address" due to reason. For starter, the game has this "game unlockables table" region which if viewed in memory viewer looked like this.
This region moves and the ?? ?? part also changes everytime the game restarted, so no fixed pointer. But in manual terms, I could always search this table by using the ending pattern with AoB search "71 00 96 00 24 00 24 00" which does not change even after game restarted. This results in just one search result everytime which is where this memory region set.
The 0A 00 00 00 (00/01) 00 part indicates feature locked/unlocked.
now then, I wanted to change it into for example like this to unlock all features
My current assemble script atm
What should I write in newmem, code and return part to make "all features unlocked" ? Should I changes to LUA instead?
Wonder if there is a method like "Search this AoB, then offset by XX dword addresses, turn the value into XYZ, repeat again from last position" sort of that?
Code: Select all
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 01 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 01 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 00 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 00 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 00 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
71 00 96 00 24 00 24 00 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
The 0A 00 00 00 (00/01) 00 part indicates feature locked/unlocked.
now then, I wanted to change it into for example like this to unlock all features
Code: Select all
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 01 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 01 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 01 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 01 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
?? ?? ?? ?? ?? ?? ?? ?? 0A 00 00 00 01 00 00 00 ?? ?? ?? ?? ?? ?? ?? ??
71 00 96 00 24 00 24 00 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
Code: Select all
<AssemblerScript>
...
[ENABLE]
aobscan(unlockall,71 00 96 00 24 00 24 00 )
alloc(newmem,$1000,unlockall)
label(code)
label(return)
newmem:
code:
return:
[DISABLE]
unlockall:
db 71 00 96 00 24 00 24 00
unregistersymbol(unlockall)
dealloc(newmem)
</AssemblerScript>
Wonder if there is a method like "Search this AoB, then offset by XX dword addresses, turn the value into XYZ, repeat again from last position" sort of that?