I could not find a better way to describe the title of the topic, if it is not good enough, I ask that moderation edit it for me.
I have some questions regarding an effective anti-cheat gaming system. Yes, I know the best anti cheat comes directly from the game server, however, I have the need to create one that is directly made to the game client.
Question: What would be the best choices I could take to start this project, so as not to hinder (or as little as possible) the performance of the game?
I thought of a constant process verification system, and then I had doubts about it, such as:
Can you prevent other programs from forcing a thread to close or freeze?
Is there a way to tell if a thread is frozen?
Would a cache system to prevent the same processes from being scanned again would be a good choice? I think, would it be possible for a program that has already been verified and is not detected as a threat according to the dumps saved in the database, go through some changes and become a threat?
Would it be possible to create a whitelist of exe's / dll's that can access / change the memory of a particular program and block the unlisted ones?
Create a dll for the game executable with lightweight checks and a separate executable with heavier checks, benefit on something or would it be the same as everything (light and heavy checks) in the dll along with the game executable?
Suggestions?