How to detect speed hack?

Started by
9 comments, last by smasherprog 13 years, 6 months ago
Hi, I'm working with an multi player shooter atm, have some problems with people speed hacking in the game. They seem to use cheat engine or something similar.

Can I detect this hack on client side by comparing different clocks or something?

I realize I do also need a server sanity check on player positions, but I would also like to place a check in the client, if at all possible.

Thanks for any help,
/Z
Advertisement
Quote:Original post by Zulupox
Hi, I'm working with an multi player shooter atm, have some problems with people speed hacking in the game. They seem to use cheat engine or something similar.

Can I detect this hack on client side by comparing different clocks or something?

I realize I do also need a server sanity check on player positions, but I would also like to place a check in the client, if at all possible.

Thanks for any help,
/Z


Placing the check in the client isnt that effective since the clients can use the same tools to circumvent the check.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Even professional tools like PunkBuster are unable to combat all the cheaters out there.


PunkBuster lists these major features, you may want to include some of them:
Quote:# Real-time scanning of memory by PB Client on players' computers searching for known hacks/cheats
# Throttled two-tiered background auto-update system using multiple Internet Master Servers to provide end-user security ensuring that no false or corrupted updates can be installed on players' computers
# Frequent status reports (highly encrypted) are sent to the PB Server by all players and the PB Server raises a violation when necessary which causes the offending player to be removed from the game and all other players are informed of the violation
# PB Admins can also manually remove players from the game for a specified number of minutes or permanently ban if desired
# PB Servers can optionally be configured to randomly check player settings looking for known exploits of the game engine
# PB Admins can request actual screenshot samples from specific players and/or can configure the PB Server to randomly grab screenshot samples from players during gameplay
# An optional "bad name" facility is provided so that PB Admins can prevent players from using offensive player names containing unwanted profanity or racial slurs
# Search functions are provided for PB Admins who wish to search player's keybindings and scripts for anything that may be known to exploit the game
Even with these very aggressive countermeasures, cheaters still cheat.
The best option is to segregate players by play style. Players who are impossibly good end up playing against each other, which means that cheaters play other cheaters. Meanwhile, players who may only be able to invest limited time end up playing other players of similar investment level.

If competition really matters, you have to end up competing in a LAN party setting, where cheaters will be naturally culled out.
enum Bool { True, False, FileNotFound };
Quote:Original post by Zulupox
I realize I do also need a server sanity check on player positions, but I would also like to place a check in the client, if at all possible.

i think thats the only way to combat this problem.
you could also try to detect hooks on QueryPerformanceCounter and such functions, as this is the usual way to create speedhacks but thats not very effective because hackers will always find a way to bypass your anticheat code
------------------------------
Join the revolution and get a free donut!
More complex formulas for determining speed
Checking distance between frames / seconds. If it's too high than something is up. Other clients could do this with players, and X red flags would result in a kick
Dummy values (neon sign pointing to "speed" value, which does nothing or simply resets itself with the correct value)
Physics damage (going too fast into a wall is deadly)
More calculations done server side
Quote:Checking distance between frames / seconds.


I think Modern Warefare 2 uses this method.. A friend of mine had a cheat, so naturally I wanted to see if it actually worked(not recommended, you may lose your account permanently) but the speed cheat only worked when we played on a "hacked server" which allowed it. If you tried the hack in a regular game, you would see yourself jolting back and forth like the server was resetting your position when it saw that you had moved impossibly far for that amount of time.

Quote:Players who are impossibly good end up playing against each other, which means that cheaters play other cheaters.

pretty sure mw2 does this too.

[Edited by - CPPNick on September 19, 2010 8:55:35 PM]
Thanks for all the replies!

@hplus0603: I agree that that is the best method, won't have time to implement anything as fancy as that right now though ;)

I did just realise that it is not enough to calculate the speed characters are moving at, but I must also check firing speed from weapons and such. For example a sniper could stand still and fire extremely fast with speed hack :(

/Z
Have a copy of the game playing out on the server, (and its unhacked) and the client version of the game will go out of synch if its hacked and the server isnt.
Server is king.
-------------Ban KalvinB !

This topic is closed to new replies.

Advertisement