No, not really. That’s the point. Kernel level anticheat has no real advantages and is easily bypassed. It’s the laziest possible solution that only detects and blocks the laziest possible implementations of cheats.
Good game design eliminates the possibility of cheating. Cheats are only ever possible if you take enough stupid and lazy shortcuts that it’s easy to take advantage.
That’s super easy. Aim hacks hit the same point. Record the event with the exact point aimed at to cause the guy (assuming hit scan system instead of projectile), and compare the last x number of hits. If the last x hits are all the same location(s), suspend or flag for human review depending on resources.
Alternatively, track last x seconds before the fire button was pressed, compare to last several shots.
Scripts do not behave like humans, they aim predictably. After x number of shots, you can always programmatically detect them.
First of all, I‘m not a fan of kernel level anti cheats either.
I think your point shows the never ending cat and mouse game that game developers have to deal with. Implement what you described, catch a few cheaters. Now cheats developers add pseudo random deviations within the hitbox to their aim hack.
From what I understood, the kernel level anti cheats aimed to abstract and attack at the single point that all cheats have in common. I am not up to date but I believe that single point is code, that is being injected into the game process, or another program messing with the allocated memory of the game process.
At least that would make sense to me as to why such an intrusive implementation of anti cheat is necessary.
Anyway, in my opinion the gains do not justify it.
To your first point pseudorandom variations don’t actually change the method of detection or it’s effectiveness. Heuristic pattern matching as described will work until the movement and shots are no longer accurate enough or fast enough to matter.
To your second point, all anticheats do that. Kernel level anticheat looks at the running memory of all other programs. That’s the difference. It can detect and scan anything that is open on your machine. Got a Firefox tab open with your bank details? Kernel level anti cheat knows it. Running obs and streaming? Hope obs has active encryption for your stream key in memory, because the anti cheat can grab it otherwise.
If it just looked at the memory of the affected game literally no one would have a problem with it, that’s all anticheats.
Kernel level anticheat means you trust the entirety of your computer and everything running on it to at least the game publisher, if not an additional anticheat company.
Interestingly enough valve has tried your method of catching cheaters your way by pattern matching with a neutral network in csgo. Sadly they never got to the confidence level where they made it automatically ban people because they didn’t want to catch really good players in the crossfire. Instead they send them to overwatch, a system where sufficiently good players could judge the case and determine if the person is cheating.
But also there’s many different types of cheats and that will only gets you so far. Information plays a big role in cs so wall hacks can go undetected if the player masks then which they do since they know they’re probably watched. There’s also subtle aim bot for that reason that doesn’t snap your aim to your enemy precisely but corrects your manual aim by just correcting it a tiny bit.
As the other user described, it is an arms race and so far the cheaters keep finding ways to trick the algorithm after each ban wave. I still admire valve for not going kernel level with their anti cheat and trying the complicated and interesting route instead. However i think that is because valve tried kernel level when it was still resisted by gamers so they got big backlash at the time and went back to regular anti cheat.
I think what worked best for me was trust factor, which rates the trustworthiness of your steam account and since i have a legit account I’ve not played against cheaters since they implemented it and until i stopped playing. It sucks for new players with new steam accounts tho as they get matched with a lot of cheaters.
I covered that, there is no real RNG. It will always be able to be programmatically detected over enough shots.
To your second part, yes, they will. They aim at the same point. Even if there’s variance in the points there won’t be enough variance in moving to the points that they’ll be able hide the unnatural movement.
Again this happened in RuneScape with the auto clickers. Every time they get better at detecting them the hackers get better at hiding them. You just start throwing on a few miss fires and they’re back to square one. It really isn’t as simple as you describe or they would do it.
That’s a different threat vector, but was also eliminated in other games. RuneScape devs, let’s face it, are really stupid.
For auto clickers, and the like, just make sure whatever is happening is possible for a human to do, auto clickers are faster than humans so they’re easy to catch. If they’re using it to move, that’s a predictable thing that can be fixed by changing the terrain slightly like wow did to catch and ban a few million bots at a time.
Kernel anti cheat would not be effective against that vector anyway, as memory isn’t changed in most cases.
They don’t have to be faster than humans though. Again it’s the whole cat and mouse thing.
Kernel level anti cheat could detect the app sending the mouse messages or detect non hardware messages and would have rendered them absolutely useless. Could also detect things reading apps pixels which is how they functioned.
The issue is that without it cheating is so much easier in many games. So then people just get pissed at all the hackers.
No, not really. That’s the point. Kernel level anticheat has no real advantages and is easily bypassed. It’s the laziest possible solution that only detects and blocks the laziest possible implementations of cheats.
Good game design eliminates the possibility of cheating. Cheats are only ever possible if you take enough stupid and lazy shortcuts that it’s easy to take advantage.
So what are these easy anti-cheat solutions that can detect aim-hacking?
That’s super easy. Aim hacks hit the same point. Record the event with the exact point aimed at to cause the guy (assuming hit scan system instead of projectile), and compare the last x number of hits. If the last x hits are all the same location(s), suspend or flag for human review depending on resources.
Alternatively, track last x seconds before the fire button was pressed, compare to last several shots.
Scripts do not behave like humans, they aim predictably. After x number of shots, you can always programmatically detect them.
First of all, I‘m not a fan of kernel level anti cheats either. I think your point shows the never ending cat and mouse game that game developers have to deal with. Implement what you described, catch a few cheaters. Now cheats developers add pseudo random deviations within the hitbox to their aim hack. From what I understood, the kernel level anti cheats aimed to abstract and attack at the single point that all cheats have in common. I am not up to date but I believe that single point is code, that is being injected into the game process, or another program messing with the allocated memory of the game process. At least that would make sense to me as to why such an intrusive implementation of anti cheat is necessary.
Anyway, in my opinion the gains do not justify it.
To your first point pseudorandom variations don’t actually change the method of detection or it’s effectiveness. Heuristic pattern matching as described will work until the movement and shots are no longer accurate enough or fast enough to matter.
To your second point, all anticheats do that. Kernel level anticheat looks at the running memory of all other programs. That’s the difference. It can detect and scan anything that is open on your machine. Got a Firefox tab open with your bank details? Kernel level anti cheat knows it. Running obs and streaming? Hope obs has active encryption for your stream key in memory, because the anti cheat can grab it otherwise.
If it just looked at the memory of the affected game literally no one would have a problem with it, that’s all anticheats.
Kernel level anticheat means you trust the entirety of your computer and everything running on it to at least the game publisher, if not an additional anticheat company.
Interestingly enough valve has tried your method of catching cheaters your way by pattern matching with a neutral network in csgo. Sadly they never got to the confidence level where they made it automatically ban people because they didn’t want to catch really good players in the crossfire. Instead they send them to overwatch, a system where sufficiently good players could judge the case and determine if the person is cheating.
But also there’s many different types of cheats and that will only gets you so far. Information plays a big role in cs so wall hacks can go undetected if the player masks then which they do since they know they’re probably watched. There’s also subtle aim bot for that reason that doesn’t snap your aim to your enemy precisely but corrects your manual aim by just correcting it a tiny bit.
As the other user described, it is an arms race and so far the cheaters keep finding ways to trick the algorithm after each ban wave. I still admire valve for not going kernel level with their anti cheat and trying the complicated and interesting route instead. However i think that is because valve tried kernel level when it was still resisted by gamers so they got big backlash at the time and went back to regular anti cheat.
I think what worked best for me was trust factor, which rates the trustworthiness of your steam account and since i have a legit account I’ve not played against cheaters since they implemented it and until i stopped playing. It sucks for new players with new steam accounts tho as they get matched with a lot of cheaters.
Bots just get around that by adding random amounts. We learnt this with RuneScape lol
Also in a fast paced FPS they aren’t going to hit the same spot from the same position repeatedly.
I covered that, there is no real RNG. It will always be able to be programmatically detected over enough shots.
To your second part, yes, they will. They aim at the same point. Even if there’s variance in the points there won’t be enough variance in moving to the points that they’ll be able hide the unnatural movement.
Again this happened in RuneScape with the auto clickers. Every time they get better at detecting them the hackers get better at hiding them. You just start throwing on a few miss fires and they’re back to square one. It really isn’t as simple as you describe or they would do it.
That’s a different threat vector, but was also eliminated in other games. RuneScape devs, let’s face it, are really stupid.
For auto clickers, and the like, just make sure whatever is happening is possible for a human to do, auto clickers are faster than humans so they’re easy to catch. If they’re using it to move, that’s a predictable thing that can be fixed by changing the terrain slightly like wow did to catch and ban a few million bots at a time.
Kernel anti cheat would not be effective against that vector anyway, as memory isn’t changed in most cases.
They don’t have to be faster than humans though. Again it’s the whole cat and mouse thing.
Kernel level anti cheat could detect the app sending the mouse messages or detect non hardware messages and would have rendered them absolutely useless. Could also detect things reading apps pixels which is how they functioned.
Yes, if they offload all of the compute for anti-cheat to the customer’s hardware, then you are right for current operating systems.
Client side anti-cheat is not the only way but it is the cheapest way for the game industry.