9 ms·
I work in game anti-cheat, kernel drivers are a necessary evil. If I had a choice, I would stick to usermode or even server-side only. But you would be shocke
by invokestatic 6y ago
I work in game anti-cheat, kernel drivers are a necessary evil. If I had a choice, I would stick to usermode or even server-side only. But you would be shocked how advanced some cheating software is, exploiting every aspect of the CPU. Now it is commonplace for a cheat to use a custom-made VM hypervisor or even a UEFI bootkit — crazy! Good luck stopping that from usermode.
- grawprog 6y ago>kernel drivers are a necessary evil. No they're not. Not for cheating in a video game. The reason why cheat makers have advanced to shady rootkit level exploits is because game publishers started doing it first. Stopping cheating in your games is not more important than the security of my computer period. I don't care. Find better ways to manage your game or i'll play something else. I have no interest in your anti-cheat spyware being on my computer.
- deleted 6y ago[deleted]
- Kiro 6y ago> Find better ways to manage your game or i'll play something else. Pretty sure game companies don't care about the small minority who cares or even understands the implications of this.
- invokestatic 6y agoI would disagree with your reason cheats went kernel, speaking as someone wrote cheats for over 10 years before “switching sides”. It’s because cheat software always wants to hide from the anti-cheat, and kernel mode provides a perfect place to do that. But if you don’t want to have anti-cheat software installed, that’s OK! I’m a big proponent of informed-consent, and if you don’t consent, nobody is forcing you to. You just won’t be able to enjoy online multiplayer.
- grawprog 6y ago>You just won’t be able to enjoy online multiplayer No, i'll be able to enjoy online multiplayer in one of the many, many games whose devs don't feel like they need to monitor and control my computer to provide a quality game.
- SpicyLemonZest 6y agoSure! That's a perfectly reasonable strategy, and one that I pursue as well. But competitive FPS games really do need to monitor and control your computer to stop ubiquitous aimbotting, so I don't begrudge those devs for doing it.
- tester756 6y agothen don't play, what's the problem cheating is very serious problem and there are no easy solutions teams of skilled developers have been challenging it over decades and this is how it evolved
- volkk 6y agoIt's a naive viewpoint. Prime example: Counter strike. Even with VAC(valve anti cheat) measures, the game is full of cheaters. Those aren't super intrusive, and the game simply isn't fun for anybody who cares at all about competitive gameplay. So people move onto other platforms that support more intrusive anticheats. I'm not really sure what the solution is, but given your stance, that would just mean every FPS game will be rendered borderline unplayable because of all of the cheaters on it. And I mean, if that's your point--to just not play competitive FPS games, then I'm not really sure what we're even arguing here.
- thu2111 6y agoRight. The vast majority of players moved to the platforms with the most intrusive anti-cheat of all years ago: games consoles. The market spoke. A few geeks with hangups about kernel drivers are irrelevant next to the masses of people who will happily buy entire dedicated gaming computers designed from the ground up to be physically tamperproof.
- shoulderfake 6y agoYea thats great, punlishers wont care because the vast majority of people dying to get a beta of valorant wont give two shits about installing kernel drivers.
- deleted 6y ago[deleted]
- ThrowawayR2 6y agoYou're free to play something else; don't complain when you're getting roasted by rampant cheaters though.
- swinglock 6y agoEven that is arguable. Competitive multiplayer games without competent anti-cheating measurements are unplayable in that the only winning move is not to play. Is there any value in being free to play what is unplayable? I suppose "something else" could include playing with yourself but then none of this even applies.
- flixic 6y agoThe game I like to play, Destiny 2, suffers from a lot of cheaters. Players don't complain about too much anti-cheat: they complain about too little, and urge Bungie to adopt stricter controls. Many wouldn't even think twice about the game requiring a kernel extension. Majority would probably even celebrate the move if it was effective at eliminating cheaters. So the flip-side of this feeling seems to be just as common.
- vlakreeh 6y agoJust because it's not more important to you doesn't mean it's not more important to others. There are games that have contests with multi-million dollar prize pools, some people would find a good anti cheat very important.
- ilikehurdles 6y agoI don't believe that Valve installs a kernel driver for CS:GO or its other titles. They turned anti-cheat into a pretty sophisticated deep learning solution called VACNET.
- mafuyu 6y agoCSGO matchmaking is still rife with cheaters. Valve has put a ton of work into VAC, but if people want to cheat, it is still very possible. It prevents matchmaking from being taken seriously as a competitive ladder. Even when I’m just playing casually with friends, it’s stressful when I basically have a 1 in 10 chance of the opponent cheating, and I need to sus out whether they’re actually good or just cheating. I pay for ESEA, an external service, which installs a kernel mode anticheat. ESEA also got sued for running a bitcoin miner on users computer several years ago. But it’s the only way to get any semblance of real, high level, competitive play. This is the context for Riots anticheat. They need to provide a solid AC from the start to pull over players and provide a competitive matchmaking system that isn’t a total joke like Valve MM. It sucks, but I know who I’d trust more between Riot and ESEA. I just run my games in a separate partition and bitlocker my primary OS install.
- deleted 6y ago[deleted]
- hncensorsnonpc 6y agoDude you pay a company to install a kernel module in your PV that got sued for running a bitcoin miner on peoples systems. I have to say some people just deserve what is coming to them. Bad luck to you.
- jsjddbbwj 6y agoYou don't play CSGO. If you play the free version it's practically impossible not to stumble upon a cheater every single match. Another example, GTA online is practically unplayable on the PC whilst it's almost impossible to find cheaters on consoles.
- Longhanks 6y agoThis is why I hope a strong sandboxing model like on iOS takes off on all platforms. Windows 10X is a step in that direction and I much appreciate it. Companies have abused people's trust way too long.
- ThrowawayR2 6y agoSeems doubtful it would help? The cheat developers will intentionally tell people who want to cheat how to bypass or disable any sandboxing protections to get their code installed. It is impossible to win by playing by the rules if your opponent is not playing by the rules.
- swinglock 6y agoThe problem is it's not the (gaming) companies abusing trust but the users abusing trust. An iOS model could help but not because it limits the legit app makers but because it limits what users can easily do, like a gaming console.
- devit 6y agoEver considered that maybe you should design your game so that modifying the client provides no advantage to players? There is a universal way to do so, and it is to provide whatever feature the "cheat" programs are offering directly in the official client (either with first-party code or by providing an API that third parties can use).
- klodolph 6y agoFor technical reasons this is infeasible for most modern games, especially action games like FPSs. In general, the way a networked FPS works is by using the server as an authoritative source for information, but doing extrapolation on the client-side. This means that enemies which are not visible to a player must still be known by the client, since the camera and enemy may move into a position where the enemy is visible more quickly than the server can respond. So the client must know the location and velocity of some opponents which are otherwise not visible to the player (because they might become visible). But, let’s suppose we solve latency problems, and don’t use client-side prediction. You would need some perfect visibility algorithm for determining which opponents should be transmitted to each client. Those visibility algorithms make a tradeoff between accuracy and computational expense. They are conservative, because it is always an error to fail to draw something which is visible, but it is never an error to draw something which is occluded. But, let’s suppose we solve visibility perfectly, and only transmit to clients the locations of models which are actually visible, and only the parts of those models which have pixels on-screen. Consider an opponent hiding behind a wall, but with a small part of the opponent poking out. The game is going to need to draw that part poking out, but if you look inside the game’s memory, you can find that those textures and vertices belong to a model used by an opponent. Beyond that—we are transmitting a video stream to the client. Basically, we can solve cheating if everyone uses Stadia.
- rasz 6y agoYou describe fancy advanced algorithms, meanwhile almost all mainstream FPS game servers happily accept client reporting arbitrary player position teleportation without the smallest of hitches. Not even the most basic server side validation.
- indigochill 6y agoOn one hand, sure, there is no way to stop advanced client cheats from usermode. On the other hand, it seems naive (from my own naive perspective) to assume your own drivers won't be reversed and defeated, given you already know your opposition is this advanced. So why still go down that path? Most of what I've read has been pretty down on anti-cheat, so I'm quite interested to get the other perspective from someone who personally finds it worthwhile to work on it.
- invokestatic 6y agoI actually agree with most of what you’re saying. Anti-cheats like BattlEye or EasyAntiCheat rely on advanced obfuscation like virtualization to protect their secrets. But people are now deobfuscating those, revealing exactly how the anti-cheat works, allowing cheaters to evade it. I take a fundamentally different, “zero trust” approach and built my anti-cheat with the assumption that it has already been fully reverse-engineered and figured out. I think if your software relies on security by obscurity you’ve already lost.
- indigochill 6y agoMy curiosity is piqued. Is there somewhere I can learn more about your solution? Even if just a product page.
- invokestatic 6y agoI guess so, I didn't want to use this as a promotional opportunity since I think it would make my comments insincere. But if your interested, https://h6ntechnologies.com/ https://h6ntechnologies.com/.
- indigochill 6y agoYeah, I appreciate that. It just turns out my team's looking at integrating anti-cheat in the very near future so I happen to be in the market (and feeling lukewarm about EAC and BattlEye), and it's a topic of personal interest besides. So thanks!
- rasz 6y agoNo, what is actually crazy are modern game servers lacking even the most basic server side assertion logic(1) letting players FLY around the map, teleport, summon items, kill other players on the server at the press of a button, etc. Seen in all massive FPS games, for example Apex Legends, PUBG, Escape from Tarkov. (1) often justified as necessity to reduce cost of running servers
- invokestatic 6y agoI agree with you. Good networking code is generally one of the best ways to reduce the visibility of cheating. But take a look at CS:GO. That has some of the best designed networking code from a security perspective. Your keyboard and mouse input is sent to the server, and it figures out where you move or if you shot another player, not the client. And yet there is still widespread cheating on that game.
- crankylinuxuser 6y agoSigh. This garbage again. So is a expensive high dpi mouse a cheat? How about a keyboard that saves macros? How about a bigger high quality monitor? Or how about investigating network traffic? It is my network hardware, and NOT yours. How about investigating RAM? I paid for my ram. You certainly didn't. Same goes for CPU. These "anti-cheat" looks more and more indistinguishable to ransomware, coinscammers, viruses, and the like. Long and short of it - games like these are malware. And I'd argue that AV programs should target, quarantine, and disable. They are, by definition, anti-owner and anti-computer.
- invokestatic 6y agoI don't think anyone here is arguing that better equipment is cheating, or that you don't own your hardware.
- rkangel 6y agoGiven that, how do some of the worse CS:GO cheats work? I can understand wallhacks (at some point it does have to be up to the local graphics driver to calculate occlusion), but I thought CS:GO had a period of people being able to spawn in the enemies spawn, or snipe you at the spawn point. I'm not a CS:GO player so I#m sorry if I'm getting those accounts incorrect.
- Cerium 6y agoIt is an arms race. However far anti-cheat goes, the cheaters will attempt to push further.
- lidHanteyk 6y agoHi! Lucky 10000, although this thread's a little crowded: The revelation principle [0] in game theory is a fundamental result that applies here. In a revealed game, there would be no need for anti-cheating components. Instead, every player would honestly submit their desired actions to an adjudicating trusted server which evaluates everybody's desires and computes the actual outcomes. This is how games like Diplomacy [1] or Civilization [2] maintain their sense of robust fairness in the presence of cheating: A cheater cannot do anything more than be dishonest about their desires, and the revelation principle guarantees that dishonesty harms the cheater. To address a nuance: You might here object that players in Diplomacy and Civilization have private state. Kind of? The agents that are playing the game do not have private state in the game, and they cannot submit actions which rely crucially on some special state of the game board which is only visible to them. They can, of course, do whatever they like outside the game, because actions taken outside the game cannot affect the effect of actions inside the game. This is the distinction between the game and the metagame [3], or the ludic and narrative perspectives [4]. So, then, when one plays a game like Hearthstone or League of Legends, one might hope that, because there is an adjudicating trusted server, and because submitted actions are limited to those possible within the game, one doesn't need to worry about cheating. The worst a cheater could do, again, is dishonestly choose the wrong action and get a suboptimal result which harms their position. At this point, some folks might want to get irritated at the poor quality of some game servers. Sure, but there's something more important for games like Counter-Strike or Fortnite, which we cannot overlook: In free-for-all or battle-royale mode, all participants have the same goal. Thus, in the revealed game, all participants would submit identical agents. So, which agent should win? The one with the best randomly-generated starting position? That's no better than a lottery. Instead, we must realize that we are looking at these games as athletic contests. And now the problem is obvious! You are asking athletes to compete at home and submit proxy scores. All of the spyware in the world won't fix this; the correct answer is to set up stadiums and officiate matches. Sure, it's expensive, but it's the better way to make a competitive spectacle out of measuring things like whose hands twitch faster or whose eyes track tiny dots more accurately. Speedrunners already figured this out, with more and more communities requiring hand-cams and complete splits, and with live runs at events being considered more attested than pre-recorded at-home runs. Edit: "stadia" -> "stadiums" after reading neighbor comments. I mean that you need arenas, not that you need to purchase Google products. Like, the folks converting paintball and laser-tag rooms into VR rooms are onto something. [0] https://en.wikipedia.org/wiki/Revelation_principle https://en.wikipedia.org/wiki/Revelation_principle [1] https://en.wikipedia.org/wiki/Diplomacy_(game) https://en.wikipedia.org/wiki/Diplomacy_(game) [2] https://en.wikipedia.org/wiki/Civilization_(series) https://en.wikipedia.org/wiki/Civilization_(series) [3] https://en.wikipedia.org/wiki/Metagaming https://en.wikipedia.org/wiki/Metagaming [4] https://en.wikipedia.org/wiki/Game_studies#%22Ludology%22_vs_%22Narratology%22 https://en.wikipedia.org/wiki/Game_studies#%22Ludology%22_vs...