Posted: Wed Dec 02, 2020 6:16 pm Post subject: Memory address changing mid-game, pointers are a dead end
I'm trying to nail down how to create some cheats for an RPG maker game. I worked out for myself that all numeric values (HP, XP, Gold, etc) are stored as value*2+1. i.e. 100hp is recorded as 201. And I'm able to do the basic stuff like freeze the value, change it to whatever I want, etc. Except every time I play the game, the values change. Now sure, I could spend a half hour every day rebuilding the cheats but if I enjoyed grinding like that I'd just play without cheats.
I did my due diligence and hit upon the whole pointer thing, and started poking around with that. One pointer points to another, points to another, and 4 pointers deep the trail goes cold. I've started from scratch every time, and each time on pointer 4 it goes off the rails.
I've also tried using pointermaps, and comparing two returns precisely zero hits. I found a very detailed tutorial online and followed the steps verbatim, and zero hits. So that got me wondering if maybe it wasn't a pointer issue after all.
Screwing around a bit I noticed the memory address changes any time I even load a save. It doesn't require that the game shut down and restart, simply going to the main menu and loading a save causes the memory addresses to shift. And that's where I've hit a brick wall. All the online research I've done keeps pointing to...well pointers. Yet even a basic comparison of two pointermaps produces zilch. There seems to be some other element in play here that's randomizing the addresses every time I load a save, as opposed to just when the game loads. I can't find any information at all on that kind of scenario. Or maybe I'm just not using the right search terms.
Does this sound in any way familiar to anyone? I didn't want to go spamming this thing with a billion screenshots but I can post some of whatever may help.
There are some data structures the pointer scanner won't be able to find nodes through- e.g. hash maps w/ a randomly seeded algorithm. If you know assembly and some very basic reverse engineering, you can use those skills to figure out the path the game traverses to get to that value (as well as the reason why the pointer scanner can't find it).
Try looking up "injection copy"; it's an alternative to pointers. _________________
I don't know where I'm going, but I'll figure it out when I get there.
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