Anti-cheat Protection

Newbie Spellweaver
Joined
Oct 8, 2018
Messages
18
Reaction score
2
Hello! Do you use obfuscation in your projects?I mean anti-cheat protection in games. What tricks do you use against hacking?
 
add some hex code on the source that can be possible hacking tools target and add also auto ban for third attempt and close the client automatically
 
You should think about how you can to limit the user's influence on your program.Create a list of weaknesses and try to ensure their protection
 
Thanks, that sounds reasonable.
I would like to know about specific solutions. Maybe someone has good guides, examples?
 
get some idea project on github theres alot ideas you can get when you start making protection
 
Yes, there are many great solutions to the GitHub.
Also, you can find a huge variety of software offering their solutions in Google.
As I said, sometimes I use ArmDot for obfuscation.
I also read about such trifles: you can give the variables obscure names so that the attacker could not immediately understand that this is also used for what. But for an experienced cheater, this can be easy) I do not know what the effectiveness of this method
 
Thanks for participating! You gave me good ideas!If you have more ideas, be free to write here.
 
This game has not yet been released. This is a bit like a Samurai Boy game.
 
As has been mentioned above, github is a good place to start.
However, if you have more advanced knowledge surrounding the development - I would suggest attempting to craft something yourself, however unfortunately there are not many guides on how to do this.
Feel free to contact me if you need anything else. :)
 
Thank you, your advice is very important to me.But I doubt that I can do it on my own. It will take a looooooot of time)
 
This might be a bit late, but "anti cheat" is a lot simpler than people make it seem.

Instead of treating game servers as a simple transaction engine, you should basically design in a way that you're running the whole world internally, and the interactions of the players are simply "inputs" into your game world model. If something doesn't make sense, then don't do it.

If you're using strong encryption, the only "anti-cheat" is your ability to validate the players' actions as actually happening. If they don't have the items they're dropping or depositing, then ignore it. Make sure you're handling random disconnections and overflows. Make sure that you error handle in a way that doesn't cause a bad game state (the cause of most cheating).

tl;dr: Good design and implementation is your anticheat. Don't trust anything that comes from outside of the server, and validate internally.
 
It is never too late to give good advice.Thanks for the useful information. There is something to think about
 
This might be a bit late, but "anti cheat" is a lot simpler than people make it seem.

Instead of treating game servers as a simple transaction engine, you should basically design in a way that you're running the whole world internally, and the interactions of the players are simply "inputs" into your game world model. If something doesn't make sense, then don't do it.

If you're using strong encryption, the only "anti-cheat" is your ability to validate the players' actions as actually happening. If they don't have the items they're dropping or depositing, then ignore it. Make sure you're handling random disconnections and overflows. Make sure that you error handle in a way that doesn't cause a bad game state (the cause of most cheating).

tl;dr: Good design and implementation is your anticheat. Don't trust anything that comes from outside of the server, and validate internally.

Basically your whole paragraph is just a Spam dude.
Everyone who want to use Anti-Cheat already processed this in their mind.

It like tell a baby to crawl since they cant walk yet..
Its logically. Wtf are u getting into?
 
Basically your whole paragraph is just a Spam dude.
Everyone who want to use Anti-Cheat already processed this in their mind.

It like tell a baby to crawl since they cant walk yet..
Its logically. Wtf are u getting into?
Are you sure? You can't cheat in a multiplayer game if someone has "thought of and imple ented" my spam. Cheating happens because someone figures out a mistake in the programming and exploits that for gain. No "easy anticheat" can make up for shitty programming. Get woke, go broke. Banks don't need easy anticheat software to ensure that you're not duping your bank balance right? Lol

 
I think we talk about ideas here, not a concrete implementation. I agree with GhostSnyper, generally cheats are possible due to bugs and errors in the code, unexpected behavior and so on. Unscrupulous users find the vulnerability and use it.
 
Just an idea:

1. Mirror the whole client on a server. Let the client dont do updates like most do (check version -> version lower then update), do full scan for every file with md5 hash. If file on mirror has the same hash, its ok. If not, download File. So it cannot be manipulated before your "launcher".

2. Let a process run in background, which checks the md5 of each file while running. If a file is not the same, kick player from server (or whatever). So it cant be manipulated after Launcher.

3. if process running in background is stopped (by taskmanager or whatever) client closes. So the background process cant be manipulated.

4. let the launcher download a keyfile. Client cant run without the actual keyfile which changes every X hours. If client is connected and the keyfile is missing, client closes. (maybe some timestamp thingy as key like linuxtime or something with some tricks like base64 encoded and md5 hashed after so noone can find a fast way to do his own keyfile writer. Up to you :D: ).

5. let background process send something every X minutes to be sure its running from the IP the client connected. No message, kick client.


This are just some ideas to give you an idea how it could be protected (sure its all crackable but this takes a while). This is btw the simple way most of the unwanted programs like hackshield or Gameguard work. (they do much mor for sure but thats the bare minimum).
 
Just an idea:
1. Mirror the whole client on a server. Let the client dont do updates like most do (check version -> version lower then update), do full scan for every file with md5 hash. If file on mirror has the same hash, its ok. If not, download File. So it cannot be manipulated before your "launcher".
2. Let a process run in background, which checks the md5 of each file while running. If a file is not the same, kick player from server (or whatever). So it cant be manipulated after Launcher.
3. if process running in background is stopped (by taskmanager or whatever) client closes. So the background process cant be manipulated.
4. let the launcher download a keyfile. Client cant run without the actual keyfile which changes every X hours. If client is connected and the keyfile is missing, client closes. (maybe some timestamp thingy as key like linuxtime or something with some tricks like base64 encoded and md5 hashed after so noone can find a fast way to do his own keyfile writer. Up to you :D: ).
5. let background process send something every X minutes to be sure its running from the IP the client connected. No message, kick client.
This are just some ideas to give you an idea how it could be protected (sure its all crackable but this takes a while). This is btw the simple way most of the unwanted programs like hackshield or Gameguard work. (they do much mor for sure but thats the bare minimum).
I am grateful to you for participating in this discussion. Your advices are reasonable. I will try to use them.I understand that it is impossible to get rid of cheaters) I want to complicate their task.:ehh:
 
Back