Next Previous Table of Contents
No. At least, in theory. Some multiplayer games might improperly trust the client, but all the games I know of don't.
For some reason, most troop related stuff in HOMM3 isn't aligned. Troop size is an integer, but it isn't usually aligned. Make sure you check the 'unaligned search' box when searching for troop size.
The only way I know of to read another process's memory is using ptrace() to read an integer at a time. That means 10,000,000+ system calls for some games. Anyone know a faster way? I've been thinking about the possibility of adding a ptrace_mmap() system call that, while attached, would allow you to map in the process's pages into your process. It would be tricky in that the maps would have to be deleted when a detach is called or the process leaves the system in some other way. Also, one could add a system call that would return page sized data instead of int sized. Anyone with kernel know-how interested at poking at those ideas?
Some games store their important values in dynamically allocated memory. There's no guarantee that the memory is going to be at the same location the next time the program is run. In this case, your save files won't be that useful. Xboing is an example of a game that saves its values in non-dynamic memory. Save files will work well with these games.
Next Previous Table of Contents