To keep it simple, there's those games where you kill monsters to gain experience and levels, mostly RPGs.
Your experience is stored in a memory location, which I want to monitor. Everytime you kill a monster, this value updates. But I see only three methods of recognizing every write access to this value.
- Hooking the "A monster has been killed" Message of the game. Bad option because you can gain experience even if you don't see a monster dieing.
- The game I want to monitor at the moment is an MMORPG which means, everytime I gain experience the server sends me the new value. I'd just need to hook those received packets with the experience inside.
- Hardware breakpoints if it's possible without debugging a process.
I know the easiest way would be to ReadProcessMemory() (in windows) every X milliseconds. But again I want to monitor every change of this value and if I kill more than one monster within X milliseconds, this change is lost in my calculation of statistics like:
- # of monsters killed
- Avg experience per monster
- # of monsters needed to kill for the next level
- and so on
That's why I hope there's a method out there to monitor every write access to a memory location. Thanks for help in advance :)