Schau mal welche Module bei den einzelnen Prozessen geladen sind und welche handles sie offen haben.
Ersteres geht mit psAPI.EnumProcessModules letzteres geht mit NtQuerySystemInformation und Strukturen vom Typ SYSTEM_HANDLE_INFORMATION.
Immer auch gut zu wissen ist, mit welchen Rechten Programme laufen, siehe LookupPrivilegeValue.
Schlimme Dinge geschehen erst, wenn ReadProcessMemory mit einem fremden Process-
Handle aufgerufen wird ( sodass ein Cheatprogramm in fremden Prozessen lesen kann ).
Das zu verhindern wird wohl mit einem Debugging sämtlicher Prozesse verbunden sein, da es wohl kein Callback gibt, mit dem man diese Funktion überwachen könnte.
So wirst du also jetztlich bei einem heuristischen Scanner landen, der nach solchen Prodzeduraufrufen sucht (die Funktion sitzt in Kernel32.dll, lässt sich also nicht einfach so ersetzen) oder du überwachst permanent, ob irgendein Prozess den Spieleprozess öffnet, dazu lassen sich vielleicht die Object oder ObjectTypeNumber verwenden. Viel Erfolg