Jump to content
Sign in to follow this  
pogoman979

A low-level anti-cheat measure

Recommended Posts

Out of interest, i'm wondering what other people get when running vanilla combined operations or vanilla OA and executing this statement in a mission:

hint str count(configFile >> "CfgPatches");

I'm running combined operations and get 467.

Now i've seen alot of anticheat measures used in missions such as:

if (isClass (configFile >> "CfgPatches" >> "Hackname")) then { kick... etc

However these can easily be circumvented by changing the name of the hack. So for servers where there is a fixed number of allowed addons, ie no addons or everyone must have the same addons to play on the server, counting the number of patches a user is running would determine if they are running any additional addons and kick them regardless of what those addons are called, eg:

if (count(configFile >> "CfgPatches") != 467) then { 
   [nil,server,"loc",rSPAWN,name player,{serverCommand format["#kick %1",_this];}] call RE;
};

obviously if you're running an OA only mission you'd have to take into consideration users who would join with only OA, and those who would join with combined operations. Additionally for servers that allow variable numbers of addons this wouldn't work, however i know there are alot of life servers for example that would have a fixed addon pack that everyone must run, so the number of patches would be the same for every client.

Anyway this was just something that popped into my head, i hope it makes sense to everyone.

Share this post


Link to post
Share on other sites

That's really interesting. Can you tell me how to do that? How can i execute that command?

Share this post


Link to post
Share on other sites

serverCommand doesn't work in 1.59. I think it's a security issue, but it would've been nice if BI added a config option for it.

Share this post


Link to post
Share on other sites

ah well at least the method will identify if someone is running too many patches, you can still do a whole bunch of nasty things to someone without kicking them. i once wrote a script that made my computer crash so could always execute something like that lol

Share this post


Link to post
Share on other sites

Hmm, I haven't seen a cheat for a long time... thought they'd all moved on...

But then I rarely play Coop and cheats do no real damage to a PvP games so

they wouldn't bother...

ah well at least the method will identify if someone is running too many patches, you can still do a whole bunch of nasty things to someone without kicking them. i once wrote a script that made my computer crash so could always execute something like that lol

Don't think that's legal.... either way you're lowering yourself to their standard

Share this post


Link to post
Share on other sites

But then I rarely play Coop and cheats do no real damage to a PvP games so

they wouldn't bother...

Don't think that's legal.... either way you're lowering yourself to their standard

i'm going to excuse your ignorance because you haven't come across a cheater in a long time. i mean no offense but seriously when some guy comes into the server and starts spawning bombs until the server crashes you tend to want retribution.

Share this post


Link to post
Share on other sites

Given how stringent and inflexible the check you're proposing is, wouldn't it be better just to go with OnDifferentData = "kick (_this select 0)";

Share this post


Link to post
Share on other sites

pogoman cfgPatches checking worked for a while, yet it has been breached for a long time

once they got to know about it.

You can just name your config.pp cfgPatches the same as BI. You get the idea why your approach fails.

My advice - disable scripting commands that your mission doesnt need or sniff the traffic

for known cheating strings and drop the traffic/ban temp ban their ip etc.

Share this post


Link to post
Share on other sites

how can you monitor/sniff the traffic? or do you mean look for the effects of hacks?

---------- Post added at 07:10 PM ---------- Previous post was at 07:09 PM ----------

Given how stringent and inflexible the check you're proposing is, wouldn't it be better just to go with OnDifferentData = "kick (_this select 0)";

yeah good point. the idea was mainly in response to seeing some life missions using isClass (configFile >> "CfgPatches" >> "Hackname") etc, which is a fairly redundant method.

---------- Post added at 07:18 PM ---------- Previous post was at 07:10 PM ----------

My advice - disable scripting commands that your mission doesnt need

also do you mean by using #define? because a hack can just use #undef for all the relevant commands.

Share this post


Link to post
Share on other sites

Analyzing network traffic is done outside arma and really low level.

There are many good tools out there to do it; especially for linux systems.

As arma does not encrypt the traffic, so it is easy to analyze it.

You would search for things like '"bomb" createVehicle position' etc.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×