Cheat countermeasures

Other talk that doesn't fit elsewhere.
This is for General Discussion, not General chat.
User avatar
noccy
Trained
Trained
Posts: 45
Joined: 01 Aug 2010, 22:21
Location: Karlstad, Sweden

Cheat countermeasures

Post by noccy »

I've been reading a bit on her about cheaters in the main mp lobby. Wouldn't it be possible to create a simple anti-cheating scheme to at least attempt to hinder the lameness?

One idea would be a basic file hashing scheme with a challenge/response. This idea is full of holes and caveats, but it could perhaps evolve into something a bit more reliable. If the sever were to send a "range" and a "challenge" to the client, such as "1234-1245" and "helloworld!" (obviously, this would just be any random string), the client would then apply that range to one of the key files of the game in order to extract the data and then concatenate it with the challenge. The result would be hashed and sent back to the server. Nothing would prevent the server from requesting a "revalidation" at any time.

I know that implementing this on the binaries might be a whole lot of trouble considering the platforms supported, debug vs. non-debug builds etc. It could however be performed on the main data files or something that can be considered consistent across platforms.

Surely this would not get rid of cheating alltogether, but it would at least hinder some of it. Cheating the game would just be a matter of rewriting your l33t h4xx0r version to calculate the sums from a copy of the original data files or so, but it would still require two sets of the data files to be installed and maintained. The same hashing could of course be performed on the data as it's loaded from the archives as an added verification, but the advantage of the server asking for a specific range would be that it would be a genuine hell to create a "lookup table" in order to fake the verification, especially considering the challenge being added to the mix.

Players that fail the verification could either be kicked (which might be a bad idea as the server would be unaware about trunk builds etc) or marked with a red skull or questionmark or similar to indicate that the verification failed or that the player is using an unofficial version of the game.

What do you guys think? Doable or simply not worth it?
noccy.com | xmpp: noccy(at)chillat.net | xfire: noccy80
chekwob
Rookie
Rookie
Posts: 27
Joined: 10 Aug 2010, 21:21

Re: Cheat countermeasures

Post by chekwob »

This is already done. In the game it's known as a Data Check, and you will see messages about it if you run the debug version.
Thin ice is the most exciting when you swing at it with a pickaxe.
Dalton
Trained
Trained
Posts: 361
Joined: 11 Jan 2010, 19:41
Location: Canada

Re: Cheat countermeasures

Post by Dalton »

chekwob wrote:This is already done. In the game it's known as a Data Check, and you will see messages about it if you run the debug version.
Chekwob knows all about that... (sounds like cheeky behavior :lol2: )
User avatar
noccy
Trained
Trained
Posts: 45
Joined: 01 Aug 2010, 22:21
Location: Karlstad, Sweden

Re: Cheat countermeasures

Post by noccy »

Ah, excellent :) When will that feature be available in the stable release, and how does it indicate it's success/failure? :)
noccy.com | xmpp: noccy(at)chillat.net | xfire: noccy80
chekwob
Rookie
Rookie
Posts: 27
Joined: 10 Aug 2010, 21:21

Re: Cheat countermeasures

Post by chekwob »

It's already in. Whenever someone is kicked at the start of a game for "incompatible mods", it means they failed the data check.
Thin ice is the most exciting when you swing at it with a pickaxe.
User avatar
Zarel
Elite
Elite
Posts: 5770
Joined: 03 Jan 2008, 23:35
Location: Minnesota, USA

Re: Cheat countermeasures

Post by Zarel »

Yeah, what the other guys said. The feature's been available since 2.2.4. Verification schemes are ridiculously easy to circumvent, which is why we use it mostly to prevent accidental corruption caused by mods.
User avatar
noccy
Trained
Trained
Posts: 45
Joined: 01 Aug 2010, 22:21
Location: Karlstad, Sweden

Re: Cheat countermeasures

Post by noccy »

Ah, I see. And I agree with you Zarel, which is why I proposed the above algorithm. The "random chunk + challenge" algorithm would be a bit harder to circumvent as there is no way to calculate all the possible checksums in advance :)
noccy.com | xmpp: noccy(at)chillat.net | xfire: noccy80
chekwob
Rookie
Rookie
Posts: 27
Joined: 10 Aug 2010, 21:21

Re: Cheat countermeasures

Post by chekwob »

noccy wrote:The "random chunk + challenge" algorithm would be a bit harder to circumvent as there is no way to calculate all the possible checksums in advance :)
The checksum wouldn't have to be faked if the stats data is left intact.
Thin ice is the most exciting when you swing at it with a pickaxe.
User avatar
milo christiansen
Regular
Regular
Posts: 749
Joined: 02 Jun 2009, 21:23
Location: Perrinton Michigan

Re: Cheat countermeasures

Post by milo christiansen »

So do a hash on the binary too.
In general, if you see glowing, pulsating things in the game, you should click on them.
- Demigod Game Ganual
chekwob
Rookie
Rookie
Posts: 27
Joined: 10 Aug 2010, 21:21

Re: Cheat countermeasures

Post by chekwob »

milo christiansen wrote:So do a hash on the binary too.
The Mac OSX binary isn't the same as the Windows one, and on Linux you're expected to compile it yourself. Different build environments can create different binaries.
Thin ice is the most exciting when you swing at it with a pickaxe.
User avatar
Zarel
Elite
Elite
Posts: 5770
Joined: 03 Jan 2008, 23:35
Location: Minnesota, USA

Re: Cheat countermeasures

Post by Zarel »

noccy wrote:Ah, I see. And I agree with you Zarel, which is why I proposed the above algorithm. The "random chunk + challenge" algorithm would be a bit harder to circumvent as there is no way to calculate all the possible checksums in advance :)
Keep a copy of the legitimate data. Load your cheat data, but when asked for checksums, take them from your legitimate data. Bam, circumvented.
milo christiansen wrote:So do a hash on the binary too.
Keep a copy of the legitimate binary, follow instructions above.

Not to mention that we would have to drop support for many nonstandard distributions of Linux and BSD if we went this route.
User avatar
milo christiansen
Regular
Regular
Posts: 749
Joined: 02 Jun 2009, 21:23
Location: Perrinton Michigan

Re: Cheat countermeasures

Post by milo christiansen »

True.

so the only way to go is some kind of dedicated server?
In general, if you see glowing, pulsating things in the game, you should click on them.
- Demigod Game Ganual
User avatar
noccy
Trained
Trained
Posts: 45
Joined: 01 Aug 2010, 22:21
Location: Karlstad, Sweden

Re: Cheat countermeasures

Post by noccy »

milo christiansen wrote:so the only way to go is some kind of dedicated server?
You mean like offloading some of the logic to the server?
noccy.com | xmpp: noccy(at)chillat.net | xfire: noccy80
User avatar
milo christiansen
Regular
Regular
Posts: 749
Joined: 02 Jun 2009, 21:23
Location: Perrinton Michigan

Re: Cheat countermeasures

Post by milo christiansen »

Yes, if you mean doing things like power rate checks and such during a game.

Come to think of it wouldn't something like having every computer run a simple check on the power flow rate/units built/oil owned to check for example, that no one has 1000000 power with 4 oil in the early game, be a good way to at least slow cheaters down? Such checks could be droped after the first 20-30 minutes as cheaters won't like the wait.
In general, if you see glowing, pulsating things in the game, you should click on them.
- Demigod Game Ganual
User avatar
m1ndgames
Trained
Trained
Posts: 142
Joined: 04 Jun 2010, 20:30
Location: Germany

Re: Cheat countermeasures

Post by m1ndgames »

If you had to register in the Forums before you could login to the login server, you could add cheat reports and ban the accounts.

oh well... i suggested this allready like a gazillion times, i fu**in coded the whole multiplayer server and still: no progress on the client side, no answers in the topic... screw this!