Riot Games Approach to Anti-Cheat
The game is 100% online. Could you have a piece of the networking protocol where the server sends little snippets of executable code over the network <i>during the game</i> that read some specific locations in memory, do some processing, and send the results back to the server in the next packet? You could do things like check the starting address and length of loaded dlls, or take the hash of some random span of machine code, or even random locations in the heap, all of which may or may not actually be verified on the other end.<p>You can use any number of obsfucation tricks to hide their purpose (if they even have one) and you could even randomly generate them. And since the server expects the response in the next client packet it would be literally impossible for a cheater to manually deconstruct them, and even be difficult for automatic analysis tools to have enough time to do anything meaningful with it.<p>You can reduce the security nightmare from the user&#x27;s perspective by only allowing machine code that&#x27;s on a tight whitelist. Allow it to read from anywhere, and only let it write to a dedicated little sandbox area with e.g. fixed addresses.