Sign in to follow this  
AI-Dev

How to stop people from cheating?

Recommended Posts

My biggest concern for my fps is people cheating using aimbots, esp . How can one stop the use of this? Is there a way I can at least make it harder for them? What do I do to stop them from decompiling my .dll's into header files then hooking the engine? Anyhelp would be welcomed/

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
DRM! Some future version of Windows and/or chip will probably be able to prevent people from doing what they want with their own computers.

Share this post


Link to post
Share on other sites
You can't make a "generic" aimbot, if game changes a lot it will have to be rewritten for individual patches. To be honest, I wouldn't care so much about aimbots, it's not much you can do about them. Wallhack is possible to prevent (at least most of it) by simply not sending/updating information about enemies that the player can't see. When it comes to aimbots you could only make it harder to write. The problem is that the code that makes aimbotting harder will be rather complicated and probably quite buggy as well, so it's probably better to either just use statistical detection or skip it entirely. With statistical detection I mean trying to detect it by noticing that a player is behaving in an unnatural way when it comes to accuracy and movement.

Share this post


Link to post
Share on other sites
The wallhack thing fix Erik said wouldnt work, because the client has to know where another client is even if it cant see it (within a range) because it couldnt just start gathering information right as the user sees it, or the other player would literally look like it came out of nowhere...also for grenades and the like..

that is why, IIRC, most fps games have wallhacks of some sort..

Share this post


Link to post
Share on other sites
Quote:
Original post by c-gibson-s
The wallhack thing fix Erik said wouldnt work, because the client has to know where another client is even if it cant see it (within a range) because it couldnt just start gathering information right as the user sees it, or the other player would literally look like it came out of nowhere...also for grenades and the like..

that is why, IIRC, most fps games have wallhacks of some sort..


That's why he added "(at least most of it)". I saw my brother trying out a wallhack for CS and it only worked perfectly on LAN; online it only started working whenever an enemy got close enough to a wall that he might appear into visibility within a second or two. Of couse, this still made the hack useful since certain quite low transparent entities or otherwise entities that might move had to be accounted for by the engine, which then sent information about enemies on the other side, even if a player normally wouldn't see through.

Share this post


Link to post
Share on other sites
Quote:
Original post by Unwise owl
Quote:
Original post by c-gibson-s
The wallhack thing fix Erik said wouldnt work, because the client has to know where another client is even if it cant see it (within a range) because it couldnt just start gathering information right as the user sees it, or the other player would literally look like it came out of nowhere...also for grenades and the like..

that is why, IIRC, most fps games have wallhacks of some sort..


That's why he added "(at least most of it)". I saw my brother trying out a wallhack for CS and it only worked perfectly on LAN; online it only started working whenever an enemy got close enough to a wall that he might appear into visibility within a second or two. Of couse, this still made the hack useful since certain quite low transparent entities or otherwise entities that might move had to be accounted for by the engine, which then sent information about enemies on the other side, even if a player normally wouldn't see through.

and you didnt beat your brother for hacking?

Share this post


Link to post
Share on other sites
It is probably imposible to prevent all cheating, but you can make it as hard as possible. You can read some general security books for ideas. Some basic methods would be detecting tampering with you program's files, detect cheats when they are running, do as much as possible server-side, ecrypt your data and etc.

Finally someone here said the following about implementing cheat protections:
Quote:

Always check the checks that check your checks.

Share this post


Link to post
Share on other sites
Quote:
Original post by OrthoDiablo
It is probably imposible to prevent all cheating, but you can make it as hard as possible. You can read some general security books for ideas. Some basic methods would be detecting tampering with you program's files, detect cheats when they are running, do as much as possible server-side, ecrypt your data and etc.

Finally someone here said the following about implementing cheat protections:
Quote:

Always check the checks that check your checks.


Yes, I have already done most of these, but the hacks plaguing my fps that I helped develop aren't detected. They use dll module hiders so I can't detect when the .dll is loaded...what can I do to stop this??

Share this post


Link to post
Share on other sites
You can't stop an aimbot alltogether, but one way to make them much less effective is to use a PVS (Potential Visibility Set) to detect when a player might be visible to another. The set should include all cases where a player will become visible before the next propogation of data across the network. Then, using that information, only tell players about objects they can potentially see. For something like a grenade, the player's computer doesn't need to know about it unless they can see it. If it blows up in a way such that it can hurt them but they can't see it, then just have the server send a 'you have been damaged for X hitpoints' or whatever when it blows up.

Share this post


Link to post
Share on other sites
Quote:

With statistical detection I mean trying to detect it by noticing that a player is behaving in an unnatural way when it comes to accuracy and movement.


The problem with this is, some players are actually exceptionally good, and may almost never miss.

Share this post


Link to post
Share on other sites
Quote:
Original post by Kazgoroth
Quote:

With statistical detection I mean trying to detect it by noticing that a player is behaving in an unnatural way when it comes to accuracy and movement.


The problem with this is, some players are actually exceptionally good, and may almost never miss.


I know, and doing this kind of detection is of course not simple. Even if people might be very accurate there will probably still be differences in how they move the mouse when they're aiming. Just kicking someone for having 100% accuracy would be a mistake.
Unfortunately, unless you control all servers yourself the actual test would be public (eventually), and aimbot makers could adjust their bots to avoid being caught.

Since I know how often people are being called cheaters in cases where I know they're not, I have a feeling that the problem is a lot smaller than some people think. Having a good "whine" detector is probably just as useful as having a good cheat detector when it comes to improving the quality of the online experience...

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
For position at least, I would send a notification when player starts moving forward, and send a notification when player stops moving forward, update position on server until stop is received. You might be able to work in some sort of system like this for mouse movement too (instead of having the client send off eye direction coordinates) but I've never tried it and don't know if it will stay in sync.

Make sure you have a way of kicking/banning. That'll teach 'em.

Share this post


Link to post
Share on other sites
Your game is already done, so this propably woun't help but
for some games it is in my opinion almost impossible to write aimbots.

For example Tribes, were the rocket will fly a long time until
it (perhaps) reaches the enemy. You can write an aimbot that calcualtes propabilities for the movement of the enemy, but that is very complicated and will cost a lot cpu resources.

Perhaps I am wrong, and but try "aimbot for tribes" (0 hits) and "aimbot for cs" (many hits) (prooven by google :)

- constantin

Share this post


Link to post
Share on other sites
Quote:
Original post by speedie
just put a little code in there that detects someones acurracy rating, if their getting something higher than 90% have an auto kill for god like abilities.
Good thing you just reduced any game to a mass of n00bs since you're banning all good players. There are plenty of good player for games like CS that can get 90%+ accuracy. I'd bet some of the best can get 100% without cheating. As stated before, simple accuracy detection is not enough. You would also need to detect how the person moves around a level, and if they lead people through walls and things like that. Another good statistic would be how fast they turn - if they're constantly snapping right to people {even going 360 when surrounded and killing everybody in that circle with headshots}they're probably cheating.

Reguardless of how well you can detect such statistics, they are meaningless because as soon as cheater makers figure out what you're detecting they'll fix the bot so it acts just like a pro player instead of the usual aimbot, and it will still let n00bs own everybody.

Share this post


Link to post
Share on other sites
The only problems with Punkbuster are:
- It's expensive if you don't own a massive player base
- It requires that all aimbots are released on the net

If I write a private aimbot for ET, and never give it to other people(Because I want to keep using it without being caught), PunkBuster can't catch me using it(Unless I make it draw onscreen, in which they can still take snapshots from my HUD to see me cheat).

Toolmaker

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this