NoCheat

Thank You!
Thanks to everyone who used and liked this plugin. I've set the plugin to "abandoned" status myself (that's why there is a red box above this text), because it describes best the current status of this plugin. Thanks to everyone that supported me during the year of development, with money, bug reports or simply kind words.
What now?
NoCheat 3.5.0 no longer works with recent CraftBukkit build and you will no longer get any updates or support from me anymore.
If you want to see the original version of this description page for this plugin, you can find a copy of it here: Original plugin description
Replacements for NoCheat
Check out these plugins.
NoCheat+
It is based on NoCheat's code and is therefore similar in how it works. But it also adds a ton of new features. You can find it HERE.
NoCheat Classic
It is the original NoCheat without any modifications beyond what is necessary to make it work on modern CraftBukkit versions. If you like NoCheat exactly the way it is, this may be what you are looking for. You can find it HERE.
AntiCheat
Is a new plugin that's built from scratch. That means it will behave and feel different to NoCheat. I'm sure the developer appreciates new users and bug reports. Get it HERE.
Make your own
Don't like the presented alternatives? You may just create your own plugin instead. The source code for NoCheat is HERE.
-
View User Profile
-
Send Message
Posted Feb 17, 2012I have a suggestion for a check. If you could make it log when people log out when they are about to die, it would greatly help finding people who utilize that hack. Seems like something that could be done without much issue. Thanks, I love this plugin so much, it is so essential for any server.
-
View User Profile
-
Send Message
Posted Feb 17, 2012@hqt99
X times in X minutes is not possible, NoCheat only remembers most data for about 1 minute (to not put to much strain on memory).
But you can set NoCheat up to ban people automatically if they fail checks, yes. All you have to do is find the appropriate "actions:" entry in the config and add "cmd:byebye" to the already existing list.
Then go to the "strings:" section of the config and define "byebye: ban [player]" or "byebye: tempban [player] time" or maybe "byebye: ipban [player]" or whatever you want, as long as the command that you want to use (ban, ipban, tempban) actually exists for your server (either builtin or another plugin defines it). "byebye" is just a name for the action, you can call it whatever you want. It's only used inside the config file to link the "strings" definition to the action.
You can find that explaination in more detail here: https://github.com/Evenprime/NoCheat/blob/master/Instructions.txt
-
View User Profile
-
Send Message
Posted Feb 17, 2012Is there anyway to have this set so if a player spams X times in X minutes then it bans them instead of just kick, or maybe a temp ban of X time ?
-
View User Profile
-
Send Message
Posted Feb 17, 2012@cvxx7q
Yeah, technically I still should take a break from NoCheat. But then again, recently some people started to ask me for payed custom plugins. And once the IDE is opened, it can't simply be closed. :)
-
View User Profile
-
Send Message
Posted Feb 17, 2012@Evenprime85
ah alright, sounds like its going well ;)
and u said u were taking a break.. ha! cant resist that IDE can you!? :P
-
View User Profile
-
Send Message
Posted Feb 17, 2012@cvxx7q
I'm checking if it is a proxy, therefore negative would be that it doesn't get identified as a proxy, despite being one.
-
View User Profile
-
Send Message
Posted Feb 17, 2012@Evenprime85
what are considereing negative?
as in negative for proxy or positive for proxy?
war you checking if the client IS a proxy connection or NOT ? (caps = bold text :P )
-
View User Profile
-
Send Message
Posted Feb 16, 2012@cvxx7q
Lookups seem very reliable so far. If at all, they produced false negatives instead of false positives.
-
View User Profile
-
Send Message
Posted Feb 16, 2012@Evenprime85
none as far as i know, but i wurely dont want to blacklist someone by accident, i know this is something that will happen (same as no cheat cant always tell whos right/wrong) but NoCheat has a fair probability of being right, so its more a question of, if the lookups are going to be as good as NoCheat.. err am i saying this right? :S
-
View User Profile
-
Send Message
Posted Feb 16, 2012@cvxx7q
I don't know. How many of your players have to use (uncontrolled) public proxies to connect to your server?
-
View User Profile
-
Send Message
Posted Feb 16, 2012@Evenprime85
when you say permission nodes i fear you assume the use of a perms system :S
i dont use perms so is that bad for an op's server?
-
View User Profile
-
Send Message
Posted Feb 16, 2012@kotpx3
http://forums.bukkit.org/threads/sec-nocheat-v3-3-0-detect-and-fight-the-exploitation-of-various-flaws-bugs-in-mc-cb-1-1-r3.4523/page-76#post-962023 I didn't get to actually write that info down in a more structured way yet. Maybe this weekend.
@cvxx7q
If they use a public proxy (proxies of their ISP or VPNs should be no problem), they'll be most likely on the list, even if they are legitimate players. But you'll be able to give players a permission node that exempts them from the check and "punishment". Therefore it should only hurt unknown people that connect for the first time to the server and (at least the way I'll set it up by default) only prevent them from using chat and commands as much as normal players do. I don't want to set it up to autoban people like other such solutions do.
-
View User Profile
-
Send Message
Posted Feb 16, 2012@Evenprime85
do you think this may hurt people using proxies legitimately for playing?
as in are there any false positives on any of the lists you have tested so far? (of course there are always such cases) but more so what is the probability?
-
View User Profile
-
Send Message
Posted Feb 16, 2012Oh okay, how would I read the nocheat messages? I know that sometimes they are false positive due to lag, but how do I know if someone is actually using a hacked client? Is there a certain Violation level? I am very confused on how this works. Could someone explain it to me so I can manage my server better?
-
View User Profile
-
Send Message
Posted Feb 16, 2012First test runs went very well. Checking multiple dnsbl within a second, almost no traffic (it's just a DNS lookup after all), almost 100% hit rate so far (= identifying IP addresses as "public proxies") for the proxies that I could find.
I'm currently deciding on which of these http://www.dnsbl.info/dnsbl-list.php to include with NoCheat as default settings, because I (obviously) don't want to go through them all for each player. I'll have to test some more to find like the 5 best for the task at hand. bl.spamcop.net and cbl.abuseat.org are definitely part of the list, because they identified all proxies during tests.
I believe this is going to work extremely well without the server admin needing to do anything at all (especially not maintaining IP block lists etc. themselves).
@kotpx3
No client can disable NoCheat logging, unless the player has permissions or OP status and therefore can simply deactivate the plugin (but then it's the server admins fault anyway).
What some clients do is throttle all their hacks to such low values that NoCheat won't bother them. But that's the idea behind NoCheat anyway: to make people play legitimately without hacks, not necessarily find out who tried to use hacks.
-
View User Profile
-
Send Message
Posted Feb 16, 2012How effective is this in logging players that use hacked clients? I heard one player say that a specific client can disable nocheat logging... Is this true?
-
View User Profile
-
Send Message
Posted Feb 15, 2012@Evenprime85
well i didnt say generate a worldwide web database of statistics haha but something on the fly, however u seem to have everything sorted ;)
-
View User Profile
-
Send Message
Posted Feb 14, 2012I'll definitely not go as far as starting longterm data collecting and making statistics myself. That really would be enough material for a seperate plugin.
Lookups will be handled in a seperate thread, therefore they can take as long as needed. I thought about setting players without permission into an "almost muted" state on login that will severely limit chatting (maybe 1-2 messages per minute), and when the background check is done, they either get set into a normal state or stay the way they are until an admin explicitely "promotes" them to legit player status by giving them the permission node.
That way the lookup won't prevent legitimate new players (that maybe have to use proxies to play Minecraft) from exploring the server already, even if no admin is online, while still preventing spamming.
I've already finished the DNS-blacklist lookup code now, it was much simpler to do than I expected. Now I just need to integrate it into NoCheat and set up config stuff etc. that's needed.
I can add support for .txt blacklists and similar things later, although I'm pretty sure that most public proxies are on at least some of the DNS-blacklists because E-Mail spammers love to use these. For those that don't know what I mean with DNS-blacklists: http://www.dnsbl.info/dnsbl-list.php (you'll be able to chose freely which of these lists NoCheat is going to use, simply by writing the name in the config).
-
View User Profile
-
Send Message
Posted Feb 14, 2012@cvxx7q
The caching might demand database use then, with a delayed lookup, or on-demand, while files are just on-demand inputs.
But i think the whole thing would go into a direction of classifying or detecting general log-in and abuse behavior (pattern analysis ... for names too?) - this sounds like worth of an extra plugin, almost
-
View User Profile
-
Send Message
Posted Feb 14, 2012@asofold
well i think the statistical method can help, even tho a proxy user can get many IP's they are usually within a few limited ranges, so as i saying, NoCheat should "count" these IP's and notify the admin of proxy possibility, if they ban GUYA and someone comes back as GUYB (yes yes far too obvious) you will think he's probably using a proxy and after a few bans, you will get a common factor in the IP/Host and can act upon that, any person can manually do this, my little idea was just notify the admins of proxy use and show the common factor, be it a hostname or a common IP/subnet
surely a flat file of IP's and ranges can work too, altho u will have to cache all of them and larger lists take more memory, even with clever optimizing