Live data from Hacker News

Riot Games Approach to Anti-Cheat

engineering.riotgames.com

191–200 of 412 posts

Re: Riot Games Approach to Anti-Cheat

#191

Earlier quoted context omitted.

> emulator to execute your machine code I think you missed a part. Namely that "It is allowed to read from anywhere". If it can't write anywhere but the sandbox, that just means it can't modify the game dynamically, just read its state. Which is plenty to verify whether the client has been hacked anywhere. You can read spans of .text to check whether code has been modified, you can read heap locations to check whethe…

I see. The problem is the server needs to know all of the values it expects. And if the server knows the values a cheat can figure them out too. For example, a cheat could hook OS functions and report on values in certain memory regions (e.g . the games loaded .text as some cached values). Same with reading heap locations, hook the memory read functions. Computing a hash doesn't have to be emulated, though, right? A…

I think what you are getting at is that it's impossible to 100% fully prevent cheating. This is true, but I don't think that's the goal; the goal is to make it difficult enough that it's not worth the effort. The value gained from cheating in a video game is low enough that the vast majority of people would not be willing to go through such lengths to do so.

Re: Riot Games Approach to Anti-Cheat

#193

The 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 co…

It's pretty tricky to build a machine code validator to only be able to write and execute on certain areas... in x86, you have to take care of 'jumping in the middle of an instruction', that not only writes but also jumps are limited to your small area (because otherwise you will end up with something similar to ROP), etc.. I think Google Native Client did something like this, but it doesn't seem trivial.

On the other hand, a way to bypass it could be that, when you detect one of those "executable code packets" has to be run, you undo all the injection/hooks in the game (so that you are really running a 100% unmodified process), and let the executable code packet run. After it finishes (you could detect this by a timer, page fault, etc. which can be handled by a different process in a different address space), you inject all the hooks again.

Re: Riot Games Approach to Anti-Cheat

#194
post #180

Earlier quoted context omitted.

> 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.

Videogame 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.

I've always been curious about this, do you get paid, and if so how?

Re: Riot Games Approach to Anti-Cheat

#195
Good 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-... with docs 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!

Re: Riot Games Approach to Anti-Cheat

#196
What 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.

Re: Riot Games Approach to Anti-Cheat

#198

Earlier quoted context omitted.

I never claimed that this would be perfect. All security, especially the kind we're talking about here and the kind mentioned in the fine article is about the relative effort that the developer and cheater has to do to create the obsfucation and work around it, respectively. Making debugging harder doesn't make debugging impossible, it makes it more difficult and take more time. Adding random cheat checks on every re…

I really want to believe all this effort better be spent into fixing cheating. Either by tweaking game mechanics so cheating provides no meaningful gain (and just gets boring) or by tweaking other participating nodes (servers or other clients) into not accepting situations that should be impossible. I don't know anything about LoL, though.

The article goes over all of these things, and LoL already goes to many lengths to invalidate as much cheating as possible. Their servers already don't trust data sent over the network and verify it independently, they already don't send information to a client that it doesn't currently require to render the frame, like the hidden locations of enemies, they're simply not sent so "map hacking" is literally impossible. The article has lots more details, I would recommend it.

Re: Riot Games Approach to Anti-Cheat

#199

The 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.

Aren'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.

Re: Riot Games Approach to Anti-Cheat

#200
post #75

Earlier quoted context omitted.

So you're not disputing that dark patterns are useful and effective, just that you don't like hearing them pointed out?

I don't know how you could possibly get that from "I'm so tired of the constant drone of comments suggesting self-sabotage as a would-be dark pattern." What I'm saying is that without a lot more development, there's nothing to suggest that this putative dark pattern actually exists. There is no reason to believe that self-sabotage is a beneficial act, but people constantly suggest it as one based on some magical thin…

It's done all the time in the entertainment industry so it wouldn't be surprising to see it leveraged here. And even if its not being employed overtly, another way of interpreting my message is that these companies receive a net positive just by being in the "controversy" whether they intended to or not.

I have heard a lot more about the PS4 platform from all the clever hacks people have come up with than I have about the 360 or xbone, and if I were to buy a console it would likely be a PS4.

Post reply on HN