27 ms·
Riot Games Approach to Anti-Cheat
- swanson 8y agoI wonder if Riot would consider building the scripting UI they show into some kind of training mode. It's a bit like the argument that no one would pirate if they content was easy to get for a reasonable price. If players could train with the spell range circles, skill shot path projection, last hit helpers, etc in a sanctioned way, I wonder how much this would remove the desire to seek out the cheating programs. Edit: I see they have a "training mode" already: https://na.leagueoflegends.com/en/news/game-updates/features/practice-purpose https://na.leagueoflegends.com/en/news/game-updates/features...
- tylerhou 8y ago> I wonder if Riot would consider building the scripting UI they show into some kind of training mode. The game would probably be more vulnerable then, because now you have "cheat" scripts designed to work with the game. > If players could train with the spell range circles, skill shot path projection, last hit helpers, etc in a sanctioned way, I wonder how much this would remove the desire to seek out the cheating programs. People who cheat aren't trying to practice; they're trying to win games. There already exists a "practice mode" which lowers cooldowns and shows tower ranges. And it doesn't make sense to practice with cheats because it won't help you play the game without cheats very much.
- Arnavion 8y ago>The game would probably be more vulnerable then, because now you have "cheat" scripts designed to work with the game. That's possible. For example, World of Warships is a game where you fire big ship-mounted guns and must learn to take shell travel time and target relative velocity into account to hit moving targets. There used to be a cheat which did those calculations for you and showed you a reticle you could aim at instead. IIRC this cheat relied on code that existed within the game already and was just not used.
- NeedMoreTea 8y agoSo basically the same reasons real warships developed rangekeepers resulted in a game targeting computer? :)
- chlvsl 8y agoDota has this as well.
- chupasaurus 8y agoDota 2. And Valve made 2 big swings of banhammer for using addons which implemented that (turret ranges to be precise) and model change for trees to become mushrooms (sound silly, but that way the path between them is easier to see).
- s73v3r_ 8y ago"I wonder if Riot would consider building the scripting UI they show into some kind of training mode. It's a bit like the argument that no one would pirate if they content was easy to get for a reasonable price." Well, much like that argument being bunk, the idea that no one would cheat if it was for this is also bunk. People like getting stuff for free if they can, and people like winning, even if it means cheating.
- crsv 8y agoThis is a great technical breakdown of some modern high level approaches to common cheats. I think this the most transparent approach (even though the author admits leaving some detail out) to modern anti-cheat for massive multiplayer games. Good on riot for having an open dialogue about this. I don't think you'd ever see someone like Valve going a transparent route with something like this. (Not making a judgement on that decision, just an observation).
- fhood 8y agoIs this really open dialogue? Correct me if I'm wrong, but basically all of the methods that they mentioned are pretty standard stuff. They had a few interesting twists on these ideas, but in general, things like source code encryption and shuffling memory locations seem pretty basic.
- gameswithgo 8y agoif you are familiar enough with the subject matter everything will seem basic.
- iforgotpassword 8y agoWell I have to agree with op. Encryption and obfuscation started with early copy protection systems, even packers like upx offered that iirc. Measurements against memory manipulation have also been around for a while, I encountered them the first time when I tried cheating money in rollercoaster tycoon in 99 or whenever that came out. Obfuscating the network protocol actually seems more of a novelty than those two things.
- Trellmor 8y agoValves John McDonald recently gave a talk at Gdc how they use machine learning to combat cheaters in CS:GO. Quite interesting to watch. https://m.youtube.com/watch?v=ObhK8lUfIlc# https://m.youtube.com/watch?v=ObhK8lUfIlc#
- fredophile 8y ago
- atesti 8y agoGreat writeup, and nice that they mention telemetry only once and work more with obfuscation than the usual process scanning, document scanning, blacklisting and reporting all back to shady servers, etc. It's scary that one can easily get nasty anticheat software installed, even when playing only single player(!) games.
- jhasse 8y agoBuy Linux games on gog.com?
- wild_preference 8y agoGOG should really be everyone’s first lookup when buying a game. They likely won’t have the new release you’re looking for, but when they do, you actually get the standalone executable.
- squeaky-clean 8y agoLeague of Legends is an online-only multiplayer game.
- atesti 8y agoI know, that's why I wrote about single player games. Many games have both and the telemetry for anti cheating is not needed for single player.
- minimaxir 8y agoIf you're talking about DRM like Denuvo, that's something else entirely.
- oehpr 8y agoI'd say there are very reasonable parallels between DRM and on client anti-cheat technology. I mean, at it's most base, both technologies are there to subvert the owners wishes. Arduous people like me find such subversion to be unethical. Not that I don't see the practicality, mind.
- sthomas1618 8y agoI feel like the industry would be better off being transparent about anti-cheat strategies and maybe even embracing open-source. Protecting "secret sauce" is basically admitting their anti-cheat are largely through obfuscation and can be defeated by knowing any details.
- monocasa 8y agoYou obviously shouldn't rely entirely on security through obscurity, but obfuscation can absolutely be an important component of defense in depth. Especially when your attackers own the hardware.
- def_true_false 8y agoOr you could design the game mechanics so that client-side cheating offers little advantage... but that would probably require doing more than ripping off a popular mod of another game.
- B-Con 8y agoThat's literally impossible. The entire point of the game is to have client-side input and for that input to be generated by a human and not a computer. There's no way to move that to a server.
- wild_preference 8y agoI’m pretty sure their comment only really existed to dismiss LoL as a “copy of a popular mod”.
- def_true_false 8y agoI'm merely saying that they could have avoided some of the issues if they designed a new game from scratch.
- mikec3010 8y agoI wonder if there's an optimization to be made about tolerating a minimum amount of cheating while being vociferous about the countermeasures? Along the same lines as "no such thing as bad publicity", having just enough cheating to piss off a few people and getting them to talk about it and the countermeasures seems like a great way to get free advertising and game engagement of players just curious to see who is cheating or the drama between cat and mouse.
- SimbaOnSteroids 8y agoCheating is incredibly toxic in the community, even a whiff of it and people start labeling each other scripters etc. Riot does a lot of work to make their community suck less, lots of player leave or drop engagement because the community is toxic. With that in mind I'd imagine the optimal amount of cheating is less than what they can achieve.
- NeedMoreTea 8y agoWe must have encountered very different online games and communities. Plenty of MMO's seem to have survived well known and endemic cheating without any additional toxicity in the community. No more toxic than the fake outrage when someone loses a loot roll in a dungeon or a pvp round. The "communities" and games usually seem brimming over with toxin with or without cheating. It's a good part of why I now avoid anything multiplayer. Few seemed to actually care if the srever's elite guilds were using no wall hacks to get loot or someone was running with 6 chars receiving identical input, or botting their dailies overnight.
- deleted 8y ago[deleted]
- zucan 8y agoThe toxicity comes from the focus on competition and the lack of repercussion when misbehaving. A guild kicks you out if your negativity annoys too many or the wrong members, whereas matchmaking has an infinite supply of teammates to abuse. I agree with you that adding cheating to the cocktail of toxicity would probably not be significant enough to lose a large group of players. However cheating may yield a competitive advantage too large to be overlooked by the players.
- pythonaut_16 8y agoI'd love to see a game where cheating and scripting is the primary means of gameplay. By default the game would present a very simple UI but players would be encouraged to write and share scripts enabling varying levels and types of functionality. As a game developer your job then would be to write interesting enough systems for players to exploit to come up with interesting gameplay. I can imagine a scenario where different Overwatch-style "classes" emerge all built from the same basic game elements.
- atesti 8y agoAlthough a single player game and a game that must be hacked instead of extended with new functionality, maybe you like https://en.wikipedia.org/wiki/Hack_%27n%27_Slash https://en.wikipedia.org/wiki/Hack_%27n%27_Slash
- jbob2000 8y agoNot sure if this will scratch your itch, and I haven't really looked into it, but checkout https://screeps.com/ https://screeps.com/ "The world's first MMO sandbox game for programmers"
- swolchok 8y agoSeems like this would devolve into a market for add-ons for your game. Let's assume that this game becomes popular. I'd claim that then most players would passively consume the leading open source solution(s), which are likely to outperform whatever any one person can do working in secret (or just tweaking the leading open source solutions). Software is copyable -- I don't think you can give a mechanical advantage to being the author of the software instead of a script kiddie.
- dronescanfly 8y agoAs with any tool, it depends on the person using the tool. Just because someone gave you a sword doesn't make you a swordmaster. You might kill somebody, but a real master of the tool, maybe even the inventor, is much more capable. Someone who knows some piece of software knows when, where and under what circumstances it aids the most.
- paulie_a 8y agoI got into developing by modding doom with a hex editor. Giving my SimCity virtually unlimited money. Cheating in a video game is fun and standard practice in my opinion.
- elithrar 8y agoSure, but in a single-player, local context: do what you want and experiment. League of Legends is a multi-player game, and a competitive one at that: you having fun by cheating is likely leading to another player not having fun, which is bad for the game (and Riot as a revenue-generating company!).
- maxton 8y agoCheating in single-player games is absolutely fun and a good way to introduce oneself to reverse-engineering. The key difference, though, is that cheating in multiplayer games can directly (usually negatively) impact the experience of other people playing the game.
- ckocagil 8y agoIt definitely is. I had tons of fun cheating on RuneScape. There were (and maybe still are) more than 3 botting platforms with friendly APIs for writing scripts. Being a computer savvy kid I wrote my own scripts, tested them, ran them overnight... It took Jagex nearly a decade to ban me.
- Avery3R 8y agoEven if they move a memory value when it's changed they still need to have a pointer somewhere to it's new location. If you can find that pointer you can still read/write at will. This is actually one of the things covered by Cheat Engine's tutorial.
- rjvbk 8y ago>We don’t share the state of other players if it doesn’t need to be shared, so we can avoid common cheats like “map hacks” (revealing all players on the map). >We let the server’s game simulation make the authoritative game decisions and generally don’t trust the information received from the client, which helps prevent common cheats like “god mode” and “disconnect hacks,” barring any overlooked exploits. >Our network protocol has been obfuscated, and we change this obfuscation regularly so that making a network-level bot is much more difficult. I hope they are proud of doing the obvious. That's like having a webpage and bragging about escaping strings that you insert into a SQL table...
- nodja 8y agoYou'd be surprised by the amount of AAA games that do not do what was listed in the blog post.
- seanalltogether 8y agoIt might seem obvious, but a lot of current PvP game engines still maintain global state of all players on the map and trust position info sent from the game client to all other clients. This has been the status quo going all the way back to the beginning of online gaming.
- noxToken 8y agoRiot's engineering blog is typically aimed at developers and engineers of all skill levels. They try to make all of their topics approachable. If you're a seasoned veteran, you probably won't get a lot of technical insight from these posts.
- BanazirGalbasi 8y agoA lot of this information is written so that it's easier for laypeople to read and understand. Stuff like that may be obvious to developers and sysadmins like many of us, but to the common League player it might not be. Also, I doubt that they want to give away something more specific that would give a clue on how to beat their systems.
- keerthiko 8y ago
- aclelland 8y agoGreat write-up. I'm my job we spend a lot of time dealing with hackers and cheats for our mobile and PC games. We tend to see similar exploits across all our games (memory hacking, fake IAPs, etc) which lets us build an armoury of anti-cheat tools. What I find most interesting is where hackers don't focus their attention. It took almost 4 years for them realise the encryption key for our assets was easily accessible using the 'strings' tool in Linux - once they found it we had a busy few days stopping modders from impacting legitimate players.
- orliesaurus 8y agoYou're probably dealing with newbie reverse engineers, do you work for a triple A game publishing studio or an indie game shop? People who want to "mess" with games are usually doing it so that they can make a lot of money from it and therefore hunt big triple A games...the people I've seen do proper reverse engineer on triple A game to bypass ie. Blizzard's anticheat in World of Warcraft now all work for big "anti-virus" companies
- rimsy 8y agoThe next step is to rewrite it all in Brainfuck.
- outworlder 8y agoI wonder, given that nowadays access to vast amounts of computing power on demand is easy, if it would be effective to generate unique builds for each and every player. Just like they already do, but tailored for each downloader. Which would get tied to an account, and to a given fingerprint.
- colordrops 8y agoWhat problem would that solve?
- jonjojr 8y agoIf I tell you right now that every single digital dollar will need to include the finger print of the digital printing press that created it. How would you be able to forge a new one without that fingerprint? You can't because every time you alter the digital dollar you create a new fingerprint that does not match the original digital printing machine. This fixes a lot of problems with altering code and and extensions and modding. Does not fix memory changes but it can make it quite difficult because each memory change would have to be validated against the original fingerprint already registered on the server for your particular build.
- sthomas1618 8y agoI think he's implying a cheater's injected DDL would be tailored for a specific build, so if they shared it with others, it would be ineffective. And not only that, but based on how the Cheater.DDL is targeting the build, they could identify the account that made the cheat.
- jonjojr 8y agoyou are talking about a blockchain. I have talked about this in many occasions to developer and they also agree that a blockchain to maintain a unique fingerprint of the game is very good to deter many attacks to modding and extensions to code, no matter the platform.
- s73v3r_ 8y ago
- reassembled 8y agoThis talks about common techniques for protecting Windows binaries but what about their Mac client? Are similar techniques also applicable to Mac?
- lucb1e 8y agoI don't know much about OS X except that they use the Mach-O executable format (unlike PE in the article), but I know that the ELF format as used on Linux and many other unixes is similar in that it also has a section where the code resides, so they can encrypt only that part. And inserting checks into the code is also portable of course. It would have been interesting if they had talked about different platforms, but alas, it's quite a superficial article...
- saagarjha 8y agoMost of them would carry over, but would have to be changed slightly to match the system.
- larrik 8y agoUnfortunately, their latest anti-cheat measures broke the ability to play on Wine. Guess no LoL for me anymore.
- rcoveson 8y agoThey broke GPU passthrough setups as well at first. There was some community backlash and they rolled that back, and I believe they also mentioned they intended to work with the wine people on a solution for that as well.
- EvangelicalPig 8y agoHow did it break GPU passthrough? Then again I heard recent versions of VAC detect running under a KVM hypervisor and kick you out of CS:GO servers.
- EvangelicalPig 8y agooh https://news.ycombinator.com/item?id=17553233 https://news.ycombinator.com/item?id=17553233
- Teknoman117 8y agoThat's unfortunate to hear that VAC looks for KVM. I was planning on moving my gaming partition to just a VM and using GPU passthrough. It's how I have my work PC setup, figured I'd replicate it at home.
- EvangelicalPig 8y agoSorry to be the bearer of bad news. I plan to reverse engineer VAC sometime to figure out how the detection works.
- IntelMiner 8y ago"they also mentioned they intended to work with the wine people on a solution for that as well" Be nicer if they'd just put the damn thing on Linux. They're already on Windows and Mac after all
- sk_hazratali 8y agoCheck out https://www.sherekhudahazratali.com/2018/07/eid-milad-un-nabi-manane-ka-saboot-quran-or-hadees-se.html https://www.sherekhudahazratali.com/2018/07/eid-milad-un-nab...
- shmerl 8y agoDoes it hinder Linux gamers who are using Wine? A lot of such anti-cheats can't figure out when Wine is used and ban Linux users. Some also ban custom D3D implementations like DXVK even if they are really correctly implementing the API.
- phoe-krk 8y agoYes - it hit the news that LoL will no longer work on Wine or virtual machines because of these anti-cheat measures.
- shmerl 8y agoOK, then their anti-cheat implementation is bad.
- rcoveson 8y agoCan't speak for Wine users, but VMs are working now. The workaround was found within days of the patch (they were just checking for the CPU feature "hypervisor"), and they actually ended up rolling back that check due to the community response.
- AmericanChopper 8y agoThey rolled that back rather quickly.
- chupasaurus 8y agoBlizzard had a huge banwave for users running SC2 WoL under Wine.
- jonjojr 8y agoUse blockchain. It is a very simplified comment, but behind that you can expand the topic to include many advantage a blockchain can provide during multiplayer games. EDIT: yes it is a very unpopular topic, but deep down many of you who are developers, know that blockchain can solve many of these issues with cheater.dll
- s73v3r_ 8y agoHow exactly would blockchain do anything that a regular database couldn't do in this instance?
- jonjojr 8y agosharing the altered code. If you share the code and its invalid it can be traced back to your account. Which you can only create if you are part of that chain as a registered user. That fingerprint changes as soon as someone tries to use their account and tries to validate against the chain. It does not stop the cheater, but it stops it from spreading the cheat and it is easy to identify the cheater.
- s73v3r_ 8y agoNO. Again, a blockchain is not doing anything of value there that cannot be done easier and simpler with traditional methods.
- deleted 8y ago[deleted]
- lucb1e 8y agoReason for downvote: you seem to have no clue about blockchain or cheater.dll whatsoever.
- jonjojr 8y agoBlockchain is all I work on and you seem to not understand my suggestion. cheater.dll needs to be loaded in memory along with the game. Correct, right? If the original build of the game has already generated an encryption key that is stored on a server or a distributed ledger using your account, then tampering with the origonal build in memory will result in generating and invalod key thus changing the ledger or the stored key on the server, and not matching the ledger. If this happens then it invalidates your build and the distributed ledger would need to updated, but since that is not allowed in this instance all ledgers would reject your change and flag the block and the account. Making it easier to find who attempted a change. Sure this can be done on a server but because of the tamper proof inherited by a distributed ledger it would make it harder for this code to be shared. The cheater can still change the code but it would not be able to share it.
- maerF0x0 8y agoIMO games should encourage ergonomic aids. Why allow the UI to be a limiting factor to how you want to play? For example people used to talk about APM in SC2 as a sort of measure of how good someone is. Why should that be? It's a strategy game. Imagine if you could express your ideas effectively into actual game actions?
- misterprime 8y agoAPM was certainly an impressive stat that conveyed the level of athleticism required for e-sports. Of course, you're right, if the goal is who can strategize the best then APM shouldn't be a factor. The playing field needs to be level though. Perhaps something like Formula 1 or Le Mans racing will develop for e-sports where people are allowed to fine tune their input with custom code with certain regulations for those inputs.
- s73v3r_ 8y agoIt's real-time strategy. So part of it is how you react to things, as well.
- aetimmes 8y ago>IMO games should encourage ergonomic aids. Why allow the UI to be a limiting factor to how you want to play? For the same reason that sporting organizations regulate the equipment allowed during play - the make sure the playing field is reasonably level. >For example people used to talk about APM in SC2 as a sort of measure of how good someone is. Why should that be? Because dexterity has historically been a basis for comparison in recreational competition. >It's a strategy game. It's a real-time strategy game, which is an important distinction. Chess is a strategy game, and by its design guarantees each player an equal number of moves. SC2 is a real-time strategy game which makes no such guarantees, and if you have the dexterity to execute your strategy faster than your opponent can respond to, you should be rewarded for that. >Imagine if you could express your ideas effectively into actual game actions? Imagine the cost of such an interface in today's society, especially compared to a regular USB keyboard and mouse. Now imagine you're a game designer. Do you want to build a system that explicitly favors those rich enough to purchase the best equipment, or do you want to spread your playerbase as widely as possible? Perhaps in another few decades, we can start rewarding the people with the "best" brains, but as long as we exist in meatspace, people are going to want to test their meat-skills against each other.
- infogulch 8y agoThe game is 100% online. Could you have a piece of the networking protocol where the server sends little snippets of executable code over the network during the game that read some specific locations in memory, do some processing, and send the results back to the server in the next packet? You could do things like check the starting address and length of loaded dlls, or take the hash of some random span of machine code, or even random locations in the heap, all of which may or may not actually be verified on the other end. You can use any number of obsfucation tricks to hide their purpose (if they even have one) and you could even randomly generate them. And since the server expects the response in the next client packet it would be literally impossible for a cheater to manually deconstruct them, and even be difficult for automatic analysis tools to have enough time to do anything meaningful with it. You can reduce the security nightmare from the user's perspective by only allowing machine code that's on a tight whitelist. Allow it to read from anywhere, and only let it write to a dedicated little sandbox area with e.g. fixed addresses.
- deleted 8y ago[deleted]
- bitexploder 8y agoIf you restrict the machine code it makes it that much easier for me to write an emulator to execute your machine code and return the result. It might even be trivial. It is a never ending Ouroboros. You build a more clever mouse trap, I will design a more clever mouse. If I have all your code and am running it on my computer it will be a matter of time before I can back out whatever obfuscation or technique you are doing and undo it. You may have some hope in network delivery of graphics only. If I am not running the game client code, and just streaming the game from one of your servers, you have a chance at keeping your client safe.
- jonjojr 8y ago"If I have all your code and am running it on my computer it will be a matter of time before I can back out whatever obfuscation or technique you are doing and undo it." sure try to undo a block-chain and see what happens. The code will be encrypted with a unique key that will need to be registered on the server with your account. Change that code and it invalidates your entire build along with your account. case closed.
- shiburizu 8y agoslightly related: The LoL end user client that they wrote with CEF(!) is one of the worst game clients I've used. Edit: It's CEF not Electron
- lifeisstillgood 8y agoOne of the things coming out of this is that legitimate coding within a game (for example teaching children how to code - a very important point for me at this point in life) is almost out the window I love minecraft for their RPi version but beyond that, I don't know of any games that have that kids pull and can still be taught it's something like "we used to turn on a PC and see a command line. now we have to jailbreak something"
- phit_ 8y agoyou can still do so with most drm free singleplayer titles
- lifeisstillgood 8y agocan you suggest any please :-)
- hathawsh 8y agoWhat I wonder is how the encryption keys are stored. There are obvious ways to obfuscate keys, but at decryption time, the keys need to be exposed plainly in memory, don't they? So how do game makers like Riot prevent debuggers from discovering the keys and revealing them to everyone? Does every player have different keys?
- unnouinceput 8y agoA good solution will not only generate keys for each player, will even generate different keys for same player each time that player starts a new gaming session. Start game->generate keys for session->play game->throw keys away.
- withinrafael 8y agoSo I'm not seeing anything particularly novel here. In fact, I think most AAA titles do most if not all of these things today. It really just boils down to understanding your title's threat model and mitigating the threats. I think the article missed an opportunity to talk about false positive rates, the workflow for users to get unbanned due to false positives (usually a very nasty process), performance, platform support (Windows, for example, has encrypted app packaging [1], anti-cheat monitoring [2], and protected processes [3] built in), and the privacy implications of uploading non-game-related Windows driver and process data. [1] https://docs.microsoft.com/en-us/windows/uwp/packaging/create-app-package-with-makeappx-tool https://docs.microsoft.com/en-us/windows/uwp/packaging/creat... [2,3] https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations https://docs.microsoft.com/en-us/windows/uwp/packaging/app-c...
- lucb1e 8y ago> It really just boils down to understanding your title's threat model and mitigating the threats. Well that can be said for every product ever... I do agree though, I did expect a little more real content. Not the "how anti-cheat works" because then we can find ways around it more easily, but like you said: reliability, performance, etc.
- m-p-3 8y ago> usually a very nasty process especially with how opaque the whole flagging is. I understand why they do it and a game environment is not a democracy or a court of law, but it's hard to defend yourself when you do not have access to the evidences.
- half-kh-hacker 8y agoVideogame cheat developer here (although, not for the game mentioned in the article) -- The mentality of game companies is if the 'evidence' of the anti-cheat flag is made accessible to users, cheat devs will use the same evidence to overcome the existing detections in place. The oft-used 'arms race' analogy for this would be like sending blueprints of your newly-fabricated weapons to the adversary.
- Kagerjay 8y agoIs this approach similar to ones used in VAC (valve) or easyanticheat, or battleye? Some of the above are notorious for consuming client resources. Easy anticheat is known for banning players in unrelated games that they cheated on. (E.g. cheat on pubg, get banned in a different game that you didn't cheat if both games use easyanticheat) This is a great writeup but I'd love to see how 3rd party anticheat programs work
- username3 8y agoThe best way to prevent cheating is by streaming games. Game streaming services are the future of multiplayer games. Edit: I mean cloud gaming like OnLive, not Twitch.
- percentcer 8y agoNot worth the latency cost IMO. They're fine for single player.
- username3 8y agoLatency to the server will always be higher, but player to player will be lower if server to server on the backend is better. Which has less latency? P2P from California to Europe or latency between streaming servers in California to Europe.
- SteveNuts 8y agoAren't there massive video latency issues with this? People spend tons of money to get the absolute best frame rates and monitor response times, I can't imagine hardcore gamers wanting to have tens of ms additional latency in their gaming.
- username3 8y agoIt levels the playing field and allows players to play with others around the world if streaming servers have better latency to each other than p2p.
- jayjohnson 8y agoGood timing, I am using my own AI (keras + tensorflow) stack to predict in-game hackers on ARK Survival Evolved with an AWS EC2 instance. Here's some background on the fully open-sourced stack: https://github.com/jay-johnson/train-ai-with-django-swagger-jwt https://github.com/jay-johnson/train-ai-with-django-swagger-... with docs http://antinex.readthedocs.io/ http://antinex.readthedocs.io/ I would love some players, but I'm still load testing how many players the game server can use + make real time predictions without impacting the game. Reach out if you want to try it out!
- AlexAffe 8y agoWhat great insight! As a developer I wonder how you implement such methods and still be sure the code runs at desired speeds. Benchmarks? I'd really love to see the workflow of implementing new behaviours. I mean... incremental decryption of distinct pieces of code during execution seems so tough to thoroughly test! Not to speak of debugging... I am genuinely stunned.
- exgamedev 8y agoBack when I worked in games we would detect cheaters and then shadow ban. Quarantine them by only matching them into games with other cheaters. You may still have to ban them from certain elements of your game, like player economies (auction house, etc). But the more legitimate their experience looks the better. The idea is that instead of fully banning them and triggering the next iteration of the arms race, you trap and release them into a competitive arena for cheaters. It's actually fun for them to compete with each other at who can cheat the hardest and no one else gets hurt. We hooked them up with a community rep. They found bugs and generally improved our security. Everyone won. There's no way to win with an adversarial approach to cheating IMO, not when you let the client run on their machine
- VectorLock 8y agoThis is an interesting approach because even though they may be cheaters they are _still_ people that are interested in your game. The percent of cheaters with the objective to utterly destroy the game they're cheating at is probably negligible.
- m3rc 8y agoI mean... sure but they're also only willing to interact with the game when they're making the experience bad for everyone else.
- Twirrim 8y agoIn the case of Riot / League of Legends, these are still potentially customers willing to pay for skins etc, which is their income stream. I wonder if cheaters are as likely to pay for that stuff as non-cheaters?
- nightski 8y agoA game with prevalent hacking/cheating is going to go downhill quick and lose it's established player base. Catering to these people in any way does not seem like a wise strategy.
- walrus01 8y agoOne of the things I'm not seeing is what kind of statistical data they're collecting and storing for prevalence of discovered cheats/scripts/bots, on a per-ISP basis. Since they know and log the IP that every user connects to the game from, they can certainly profile it down to at least as granular as the individual /24. For example if there's a college dorm full of students where somebody has shared a recent script/bot, the behavior could be correlated between time, place and IP. Thereby allowing them to develop IP space reputation lists that contain the relative likelihood of bots/scripts being run (sort of like SMTP spam RBLs, but not an all-or-nothing, more of a weighted distributed reputation scale). There is also a league of legends mobile android/iOS app. If you set it up to require location permission, they could begin to correlate the physical location of cheaters with their specific IP block. For example if somebody is at home on their wifi, their phone is connected to their home router, and their desktop PC with a cheat script are all going outbound to the internet through the same NAT, and coming from the same /32 (in ipv4) address. I'm willing to bet that if plotted on a map you could develop hotspots. Of course they would also match the density of players in general. But perhaps certain trends could be identified.
- stcredzero 8y agoHere's my project's approach to Anti-Cheat. 1, 2, 3) Everything on the server. Server's version always wins. Server is the authoritative source. Granted, I have a mathematical advantage in the game's particular movement mechanics which makes this easy to get away with. The other game mechanics are also designed with facilitating this in mind. Corollary: The client is almost nothing and trusted with nothing. It's pretty much a dumb terminal for displaying moving things, syncing their motion with the server. 4) Scripting -- if you can't beat 'em, join 'em! We're going to publish an API to allow for user scripting. We plan on releasing the client as Open Source, allowing people to modify and extend the client. 5) Cryptographically hard RNG and procedural generation. If you want to know what's in Star System 7, Galaxy Grid 123987236-87324958, you're going to have to go there yourself. We don't even know ourselves! Regarding #4 -- This is going to be a design philosophy. Anything we can't enforce, we will allow and co-opt into the game!
- bsder 8y ago> 4) Scripting -- if you can't beat 'em, join 'em! Yeah, I was kind of annoyed that he flags this: > draws the ranges of various abilities, indicates which minions are ready to be last-hit, and shows the path of skillshot projectiles. as a cheat. It seems like this would be a godsend to new players. However, I prefer Supreme Commander/Total Annihilation-like games over the twitchfests like Starcraft.
- stcredzero 8y agoHowever, I prefer Supreme Commander/Total Annihilation-like games over the twitchfests like Starcraft. We've made our client so dumb, even Fog of War is cheatproof. How do we enforce not seeing something? The data for those entities isn't sent. In fact, this is exactly the same thing as making an entity disappear. The entity's tag and movement info aren't sent, and so it's diffed out of the set of visible entities.
- Operyl 8y agoNow you have me curious what project you’re working on.
- megaman22 8y agoI sorta miss the way cheat codes and exploits were seen back in the long ago days when I started gaming. They were fun little easter eggs and things to mess around with if you got stuck and couldn't progress past a certain point. Or just weird things to have fun with. Of course, pretty much everything was single-player, so it didn't impact anybody else if you wanted to turn on no-clip mode to get around some pain-in-the-ass jumping puzzle in Half-Life, or spawn a nuke-launching spaceman in Age of Empires. And the hours and hours spent button-mashing trying to get new and unusual finishing moves in Mortal Kombat...
- dawhizkid 8y agoFree startup idea: sift science for anti-cheat for gaming industry
- euske 8y agoCheat, anti-cheat, antivirus, malware, and to a lesser extent debugger and profiler. All these tools are going after each other in the same territory: monitoring a certain system activity to report or intervene. To me, it looks that all these functions are traditionally in the realm of operating system. Are we going to have a new middle layer or a new OS architecture for catering things like this? I'm curious.
- stcredzero 8y agoI'm working on this.
- yadaeno 8y agoSome of this is pure evil. > We block this very common technique by making sure that when the value is changed by taking damage, the value is actually moved as well. > To introduce more entropy, we also made sure that each value uses slightly different encryption. > At compile time, a randomly selected type of anti-debug check is inserted into each of the locations where a check was requested in the code. Ive always wondered where you store the key that decrypts code at run time. On phones and DVD players the key is stored on hardware but it does not seem like an exe has this luxury.
- bsamuels 8y agoit doesn't matter where you store the key as long as it's not easy to figure out for the disassembly program
- yadaeno 8y agoIf its out in the open it sort of defeats the purpose doesn't it? If you know the key + encryption scheme you could decrypt all the .text in a single pass.
- Grangar 8y agoWhat's so evil about that?
- wumbovii 8y agoI wonder if there is any defense against adversaries that use computer vision and just digest the actual raw images and overlaying information, so there aren't any hooks into the software itself.
- bastawhiz 8y agoI'd imagine that periodically changing in-game assets to modify their appearance could act as deterrent.
- frenchie14 8y agoOverwatch changes the colors of its heatlh bars slightly every match so that aimbots can't lock on it https://www.reddit.com/r/Overwatch/comments/6imjce/todays_patch_includes_defensive_measure_against/ https://www.reddit.com/r/Overwatch/comments/6imjce/todays_pa...
- rmrfrmrf 8y agoThese are all just various degrees of obfuscation that will be defeated if it's worth the money. In particular these approaches seem weak to hardware, firmware, and driver side-channels.
- meowface 8y agoAll anti-cheating techniques are fallible. It's impossible to build a perfect cheat detection/prevention, just like it's impossible to build something that will always detect all malware, etc. The client code is always going to be on the player's computer and has to execute on the player's computer. There's no way around that. You can't guarantee effectiveness, but you can make it very hard to reverse engineer and circumvent, and you can constantly change techniques so that adversaries need to put in more work. It's an ever-evolving cat-and-mouse game.
- Teknoman117 8y agoI have mixed feelings about anti-cheat, especially in the last few years. A lot of them are getting rather intrusive. Take Player Unknown's Battlegrounds for instance, which uses BattlEye. It actually injects a kernel mode driver into Windows that spies on whatever else your system is doing and exfiltrates unknown data in the name of "guaranteeing a fair game experience." I didn't even realize that this is what it was doing until my system crashed one day and the cause was some .sys file in PUBG. It'll also randomly kick you from games for having various programs installed or running. Programs such as VMware. You have to disable all VMware services or PUBG will kick you randomly for using "unauthorized applications." God forbid you have any VMs running, that might amount to a ban (seriously). Worse still is that when you take your complaints to their social media, or in anyway speak ill of it, you get hordes of fanboys saying that you shouldn't install anything other than games on your PC or you're a dirty cheater. "Oh you want to do things _other_ than gaming on your PC? You should buy another PC then." Don't even get me started about trying to run games in a virtual machine w/ GPU passthrough. The communities will tear you a new one telling you to do things "normally" and by attempting to use anything other than the "normal" setup makes you a cheater. Just google anything like "steam vac kvm" or "battleye kvm" and you'll get hordes of people claiming they heard some guy say virtualization is the future of game cheating therefore VMs are cheating tools and should be banned. Seriously, if I could get a refund for every game that uses BattlEye, I would try. /rant
- matheusmoreira 8y agoI agree with everything you say. It's ironic because game companies themselves use virtual machines with obfuscated instruction sets in their games as a copy protection mechanism. It's pretty hard to feel any sympathy for them once hackers get around their pathetic countermeasures. To add to your post, here's an example of why game developers can't be trusted to run code in kernel mode: https://mobile.twitter.com/TheWack0lian/status/779397840762245124/ https://mobile.twitter.com/TheWack0lian/status/7793978407622...
- StreamBright 8y agoWhat would be a better option?
- appslure 8y agoAppslure is a Brilliant mobile Application Development Company in Delhi, Noida, Gurgaon and Mumbai. Our app developers team are expert in iOS, android, iPhone and iPad app development. For more visit on- http://www.appslure.com/ http://www.appslure.com/
- jrockway 8y agoI am surprised people don't virtualize the game and do their analysis at a level that the OS and game can't detect. Ultimately, these games trust that the hardware they're running on behaves according to specification. That is clearly an unwise assumption. Cheaters may not be taking this path today, but it gets easier and easier as time goes on, and it sounds like they're not prepared at all. (Some other comments mention that current games look for virtualization software installed on the same OS install that the game is running on and fails the integrity check if found. I can't imagine that stops anyone actually determined to cheat. I imagine it annoys people that test their Docker images on the same machine they play the game on, though.) Even if virtualization is detectable, you can also take the computer entirely out of the loop. The state of the art for aimbots seems to be reading game memory and applying synthetic mouse movements at the OS level. That is quite a blunt instrument to apply and I'm sure that no game has a major problem with this kind of aimbot. A more elegant aimbot would look at the video of the game, look for targets, and provide the necessary mouse movements over USB. At best, the only countermeasure is to make enemies harder to see or to learn some heuristic in mouse movement that differentiates the bot from a human... but injecting randomness is straightforward and nobody needs a 100% accurate aimbot anyway. The pros destroy you with 30% accuracy. Finally, it's unclear if there is even any advantage to be gained by cheating. If you want a higher rank in a competitive game, you can just pay someone to play on your account. From what I've read on Reddit... many of the people offering these services are apparently professional players. No anti-debugger hook is going to detect that. It should be interesting to see how this advances. While games that rely solely on mechanics or information hiding are clearly doomed in the long run, it's probably good news for the rest of the software industry. What is your cloud provider really doing? Is your own software compromised? The tools used to cheat in games will be quite valuable in answering these questions and protecting your users from people that actually have something tangible to gain from these actions.
- Illniyar 8y agoHa obfuscation. The best way to get management off your ass to prevent hacking without actually preventing hacking.
- alkonaut 8y agoMessage to EA: don’t try to be clever. Make simple query based bans, after the fact. Sift through the event tables and make trivial questions like if A killed B with a weapon that is not possible to use on the map - then he cheated. Check for ridiculous (not just suspicious) activity. The cheaters that ruin games aren’t the ones that make players better such as discrete wallhacks. It’s the trolls that are immortal and flying. They blatantly cheat just for the response to their trolling, and they empty a server in a matter of minutes. But just because they are so very blatantly cheating, they should be quite simple to detect in logs too. If someone has 200 kills with an ammo box in a 5 minute round that’s enough to say it’s definitely a cheat. Yet these people do it over and over with NO obvious response to reports. Focus on THIS type of cheating (which is trolling, not gaining an advantage). Only after that look at more subtle cheating.
- limonkufu 8y agoI wish to see how they dealt with the overhead because of all the encryption, checks etc. performance-wise? I know LOL is quite an old game so they mastered these points. I am especially curious because lately I play PUBG and when PUBG does something about cheat it effectively kills performance.