Altering another process

This weekend I found a really cool game utility that searched for and CHANGED memory values for games while they were running. It was even able to monitor certain values, like health points, and immediately restore them after they were changed by the game.

I'm dying to know how this is done! I didn't think values in one processes could be directly changed by another process in Windows 98. I was always told that trying to do so would generate a GPF for sure.

Comments

Well, you can subclass any window using a system wide hook that resides inside a DLL. Your DLL will be called "within" the address space of the hooked window/app and you can change whatever you want. This works in 95/98/NT.

So one can write a utility that finds the app's main window (every WIN32 app has one!) subclass it

Wow, that makes great sense. I had thought of the dll angle but couldn't think of a way to have it called by the application. Subclassing is a great idea, Thanks!!

: Well, you can subclass any window using a system wide hook that resides inside a DLL. Your DLL will be called "within" the address space of the hooked window/app and you can change whatever you want. This works in 95/98/NT.

: So one can write a utility that finds the app's main window (every WIN32 app has one!) subclass it