I stumbled upon a very active place on the internet that does nothing but make cheats for games. Sigh.
Most of them were OpenGL and DirectX cheats, with some other category of cheats that I guess somehow hooks into games and other weirdness.
Quake isn't exactly a popular game anymore, so I imagine most of these cheats are rotting on vine and the slightest twist would make them useless.
My guess is that these OpenGL cheats generally work like this:
1. The cheat gets called at rendering time via the OpenGL api calls that aren't exactly the real ones.
2. The cheat dll determines where a model or enemy is nearest the crosshair.
3. Makes a calculation of the correct angle/roll/pitch for that position to be dead-center.
Now here is where I am lost ...
How are these cheats writing the angle?
Do they have to be pre-programmed with the memory address offset to overwrite the existing angle and alter the game's memory?
Or ... are they overriding outbound network data? (The latter seems like too much work).
I'm assuming this is where the client's memory is being altered, right? If so, wouldn't the slightest difference in version or the mildest change in the data structure or network protocol disable existing cheats?
Or am I wrong?