[HN Gopher] Reverse engineering Call of Duty anti-cheat
___________________________________________________________________
Reverse engineering Call of Duty anti-cheat
Author : deverton
Score : 467 points
Date : 2025-01-20 23:07 UTC (23 hours ago)
(HTM) web link (ssno.cc)
(TXT) w3m dump (ssno.cc)
| shj2105 wrote:
| Where did you learn how to do this? I would love to learn more
| about understanding half of what this article said but I don't
| know how to start.
| andrewmcwatters wrote:
| Dang, I'm old. I was going to say hang out in Gamedeception,
| but apparently it's been gone for years!
|
| greetz to readers of Unknowncheats, cs.rin.ru, etc.
| therein wrote:
| I used to frequent cs.rin.ru for all things non-steam back
| when I operated non-steam CSS servers.
|
| UnknownCheats is also absolutely amazing for cheat
| development. Back when I was writing undetected kernel cheats
| for my own experimentation purposes, I learned so much there.
| andrewmcwatters wrote:
| I made my lifelong best friends hosting non-Steam servers,
| and writing the first cracks in Lua to generate fake Steam
| IDs from IP addresses.
| jorvi wrote:
| Yoo haha Unknowncheats, now there's a blast from the past.
|
| Milworm (milw0rm?) also got me started back in the day.
| jamesfinlayson wrote:
| Gosh, haven't been to cs.rin.ru for years.
|
| UnknownCheats was (still is?) good for getting information on
| undocumented APIs when game modding (for a good while the
| Half-Life SDK was incomplete).
| therein wrote:
| I got started with Lena151's tutorials back in the day.
| https://github.com/kosmokato/Lena151
| b8 wrote:
| The secret.club is a good resource.
| frosting1337 wrote:
| https://pwn.college is a great educational resource.
| josephg wrote:
| I learned a lot of this stuff ~15 years ago from reading a book
| called Reversing: Secrets of Reverse Engineering by Eldad
| Eilam. The book is old but amazing. It takes you through a
| whole bunch of techniques and practical exercises. State of the
| art tooling has changed a bit since then, but the x86 ISA &
| assembly more generally hasn't changed much at all.
|
| One of my biggest takeaways was learning about "crackmes" -
| which are small challenge binaries designed to be reverse
| engineered in order to learn the craft. They're kinda like
| practice locks in the lockpicking community. The book comes
| with a bunch on a CD-ROM from memory - but there's plenty more
| online if you go looking. Actually doing exercises like this is
| the way to learn.
|
| You don't start trying to reverse engineer COD. You build up to
| it.
| mrsaint wrote:
| My recipe: "Windows 95 System Programming Secrets" by Matt
| Pietrek and "Unauthorized Windows 95" by Andrew Schulman, years
| of fooling around with NuMega SoftICE, lots of IRC, lost youth,
| yet lots of fun.
| sitzkrieg wrote:
| i miss softice so much (but not fixing my clock)
| kamikazechaser wrote:
| UnknownCheats. I'm active there and it has one of the best
| resources on this kind of stuff. I'm more interested in how
| Linux userspace Anti-cheats works notably VAC.
| ActorNightly wrote:
| You need to be just comfortable in assembly.
|
| Its a hard first step, but I highly suggest you take the time
| to analyze a small binary, starting with understanding the
| registers for the architecture, understanding the different
| function calls, and then looking at the elf file and analyzing
| every section and how static linked libraries work, and how
| dynamic linking works with PLT/GOT. GPT models are REALLY good
| at helping you understand this, and you can also use Ghidra for
| decompilation. Do everything on Linux btw, as the tools are
| very easy to use and much less Cumbersome than windows.
|
| Once you understand all of that, tracing assembly is pretty
| easy - its either register move operations, math operations,
| compare operations, jumps, and function call and returns (which
| basically are just shortcuts for handling the stack frames),
| with a few special instructions here and there which are
| usually just some optimizations that you can look it up ad hoc.
| Once you get handy at ghidra, you can look at decompiled C code
| and start replacing variable names to make the code readable,
| and then you generally get a good idea of project flow.
| andrewmcwatters wrote:
| Signature scanning is indeed the hot shit.
|
| It's like the most addicting part of reverse engineering to me.
| Building signature lists, and then writing bindings to scripting
| languages to call those function pointers.
|
| It's also the foundation of how many third-party mod platforms
| work, because you need to build a meaningful API to modders that
| isn't exposed by the first-party.
| Cyph0n wrote:
| No idea what signature scanning is, but found this resource for
| those curious:
|
| https://www.unknowncheats.me/forum/general-programming-and-r...
| c0balt wrote:
| From my limited experience, it refers to the act of reverse
| engendering the function (signatures) contained the code of a
| binary.
|
| A binary, like the underlying code, has commonly used code
| split into functions that may get called in multiple places.
| These calls can be analyzed either through static analyzers
| or by a human, who may analyze context of the callsite to
| guess what each Arg is supposed to do/be.
|
| For modding, e. G. in a single player game, one might want to
| find out where the engine adjusts the health points of a
| player or updates progress.
| landr0id wrote:
| Signature scanning is just scanning for unique bytes from a
| compiled function that will remain consistent across builds.
| You search memory for those bytes and when you find them, you
| find the function you're interested in.
|
| Here's an example from some shellcode loader I wrote:
| https://github.com/exploits-
| forsale/solstice/blob/c3fc9a55c6...
| Cyph0n wrote:
| Thanks for explaining. How do you identify such byte
| patterns that are likely stable across builds? Is it
| experimental - i.e., look at a few versions of the binary
| and check if it has changed?
| apple1417 wrote:
| You can actually usually get a pretty good starting point
| from just a single build, and only refine it once you
| find a build it breaks on. It's essentially just finding
| a unique substring. In my experience this almost always
| involves some wildcard sections, so the signature in the
| parent got lucky not to need them. I like to think about
| it as more of matching the shape of the original
| instructions than matching them verbatim.
|
| To manually construct a signature, you basically just
| take what the existing instructions encode to, and
| wildcard out the bits which are likely to change between
| builds. Then you'll see if it's still a unique match, and
| if not add a few more instructions on. This will be
| things like absolute addresses, larger pointer offsets,
| the length of relative jumps, and sometimes even what
| registers the instructions operate on. Here's an example
| of mine that needed all of those: "48 8B
| ?? ????????", // mov rcx, [rdi+000001D0] "48
| 85 C9", // test rcx, rcx "74 ??",
| // je Talos2-Win64-Shipping.exe+25EE729 "E8
| ????????", // call
| Talos2-Win64-Shipping.exe+25E45F0 "48 63 ??
| ????????", // movsxd rax, dword ptr [rbx+000005D0]
| "8D 70 FF" // lea esi, [rax-01]
|
| Now since making a signature is essentially just finding
| a unique substring, with a handful of extra rules for
| wildcards, you can also automate it. Here's a ghidra
| script (not my own) which I've found quite handy.
|
| https://github.com/nosoop/ghidra_scripts/blob/master/make
| sig...
| jamesfinlayson wrote:
| > It's also the foundation of how many third-party mod
| platforms work
|
| Sure is - I believe a few Source engine plugins do this when
| required (though mostly I think they use offsets into vtable
| pointers).
| adiabatichottub wrote:
| I'm very curious about the jump obfuscation. Maybe somebody who's
| done more reverse-engineering can answer this for me:
| a) Are unconditional jumps common enough that they couldn't be
| filtered out with some set of pre-conditions? b) It
| seems like finding the end of a function would be easy, because
| there's a return. Is there some way to analyze the stack so that
| you know where a function is returning to, then look for a call
| immediately preceding the return address?
|
| Apologies if I'm wrong about how this works, I haven't done much
| x86 assembly programming.
| russdill wrote:
| Unconditional jumps are very common and everything in x86
| assembly is very very messy after optimizations. Many functions
| do not end in ret.
| jychang wrote:
| How do functions that not end in ret work?
| to11mtm wrote:
| My gut (been a while since I've been that low level) is
| various forms of inlining and/or flow continuation (which
| is kinda inlining, except when we talk about
| obfuscation/protection schemes where you might inline but
| then do fun stuff on the inlined version.)
| duskwuff wrote:
| The return is somewhere before the end of the function,
| e.g. loop: do stuff if some
| condition: return do more stuff goto loop
|
| Alternatively, the function might end with a tail-call to
| another function, written as an unconditional branch.
| jcranmer wrote:
| There are things like compiling a tail call as JMP
| func_addr.
| frogsRnice wrote:
| Would you not have to use a jump instead of call for it
| to be a tail call at all- ie otherwise a new frame is
| created on each call
| nagaiaida wrote:
| the call is still in tail position whether or not it
| reuses the stack frame. there are also more involved ways
| to do tail call optimization than a direct single-jump
| compilation when you leave ret behind entirely, such as
| in forth-style threaded interpreters
| frogsRnice wrote:
| I guess were talking about optimising tail recursion.
| Would there be any reason to refer to a tail call other
| than that optimisation?
|
| I'll do some reading on the latter part of your post,
| thank you!
| nagaiaida wrote:
| i only meant that "optimized/eliminated tail call" is
| more useful terminology than an uneliminated tail call
| not counting as "a tail call". i find this distinction
| useful when discussing clojure, for instance, where you
| have to explicitly trampoline recursive tail calls and
| there is a difference between an eliminated tail call and
| a call in tail position which is eligible for TCO
|
| i'm not sure how commonly tail calls are eliminated in
| other forthlikes at the ~runtime level since you can just
| do it at call time when you really need it by dropping
| from the return stack, but i find it nice to be able to
| not just pop the stack doing things naively. basically
| since exit is itself a threaded word you can simply1
| check if the current instruction precedes a call to exit
| and drop a return address
|
| in case it's helpful this is the relevant bit from mine
| (which started off as a toy 64-bit port of jonesforth):
| .macro STEP
| lodsq
| jmp *(%rax)
| .endm INTERPRET:
| mov (%rsi), %rcx
| mov $EXIT, %rdx
| lea 8(%rbp), %rbx
| cmp %rcx, %rdx # tail call?
| cmovz (%rbp), %rsi # if so, we
| cmovz %rbx, %rbp # can reuse
| RPUSH %rsi # ret stack
| add $8, %rax
| mov %rax, %rsi
| STEP
|
| 1 provided you're willing to point the footguns over at
| the return stack manipulation side of things instead
| biodniggnj wrote:
| You don't need recursion to make use of tail call
| elimination. In Scheme and SML all tail calls are
| eliminated. GCC also does it, but less often. Still, it's
| not recursion that triggers it.
| russdill wrote:
| Yes, I think the most common is a tail call. There also
| of course can be several ret's from a single function.
| DSMan195276 wrote:
| In addition to what others said, I'd simply point out that
| all 'ret' does on x86 is pop an address off the top of the
| stack and jump to it. It's more of a "helper" than a
| special instruction and it's use is never required as long
| as you ensure the stack will be kept correct (such as with
| a tail-call situation).
| dcrazy wrote:
| `ret` also updates the branch predictor's shadow stack.
| Failing to balance `call` and `ret` can seriously impact
| performance.
| dkersten wrote:
| If anyone else is looking for more information on this,
| like I was, this stack is called the "return stack
| buffer".
| DSMan195276 wrote:
| Right, I didn't want to get into it but definitely using
| 'ret' "properly" has big performance benefits. My point
| was just that it won't prevent your code from running,
| it's not like x86 will trigger an exception if they don't
| match up.
| ack_complete wrote:
| RET does more these days. If Intel CET is enabled then it
| also updates the hardware shadow stack, and the program
| will crash if RET is bypassed unless the SSP is adjusted.
| IIRC Windows x64 also has pertinent requirements on how
| the function epilog restores registers and returns since
| it will trace portions of the instruction stream during
| stack unwinding.
| ngneer wrote:
| If compilation uses jmp2ret mitigation, a trailing ret
| instruction will be replaced by a jmp to a return thunk. It
| is up to the return thunk to do as it pleases with program
| state.
| mananaysiempre wrote:
| A function with an unlikely slowpath can easily end up
| arranged as top part jxx slow
| fast middle part end: bottom part ret
| slow: slow middle part jmp end
|
| There may be more than one slow part, the slow parts might
| actually be exiled from inside a loop and not a simple
| linear code path and can themselves contain loops, etc.
| Play with __builtin_expect and objdump --visualize-jumps a
| bit and you'll encounter many variations.
| phire wrote:
| Yeah, should be easy enough to filter these particular jumps
| out. It's an obfuscation designed to annoy people using common
| off-the-shelf tools (especially IDA pro)
|
| Most obfuscations are only trying to annoy people just enough
| that they move on to other projects.
| ackbar03 wrote:
| What are off the shelf tools/methods people use now? Ida was
| pretty standard goto when I was into RE
| mahmoudimus wrote:
| Not much has changed, except there are more entrants.
| Binary Ninja, Ghidra, radare (last two being open source).
| For debugging, there's x64dbg. Some use windbg and gdb (for
| non windows os), but it still is mostly IDA as king though
| the others are catching up.
|
| I evaluated entering the space by building something with
| AI native however, the business case just didn't make sense
| jamesfinlayson wrote:
| I tried Ghidra recently and the decompilation seemed decent
| enough. The UI seemed a bit less complete than IDA's though
| (I couldn't see a couple of things that IDA does/has though
| they might just be hidden away in menus).
| mahmoudimus wrote:
| There's some other cool tricks you can do, where you
| symbolically execute using angr or another emulator such as
| https://github.com/cea-sec/miasm to be able to use control flow
| graph unflattening. You can also use Intel's PIN framework to
| do some interesting analysis. Some helpful articles here:
|
| - https://calwa.re/reversing/obfuscation/binary-
| deobfuscation-...
|
| - https://www.nccgroup.com/us/research-blog/a-look-at-some-
| rea...
| 0xC0ncord wrote:
| This video[1] on reverse-engineering parts of Guitar Hero 3
| covers a few similar techniques that were used to heavily
| obfuscate the game code that you might find interesting.
|
| [1] https://www.youtube.com/watch?v=A9U5wK_boYM
| maldev wrote:
| Few common issues.
|
| 1. Some jumps will be fake. 2. Some jumps will be inside an
| instruction. Decompilers can't handle two instructions are same
| location. (Like jmp 0x1234), you skip the jmp op, and assume
| 0x1234 is a valid instruction. 3. Stack will be fucked up in a
| branch, but is intentional to cause an exception. So you can
| either nop an instruction like lea RAX, [rsp + 0x99999999999]
| to fix decompilation, but then you may miss an intentional
| exception.
|
| IDA doesn't handle stuff like this well, so I have a Binary
| Ninja license, and you can easily make a script that inlines
| functions for their decompiler. IDA can't really handle it
| since a thunnk (chunk of code between jmps), can only belong to
| one function. And the jmps will reuse chunks of code between
| eachother. I think most people don't use it since there was a
| bug with Binary Ninja in blizzard games, but they fixed it in a
| bug report a year or so ago.
| Fokamul wrote:
| Why you cannot make same script for IDA. Anyway I don't like
| them, Hexrays are POS. Just curious.
| mahmoudimus wrote:
| I have been doing a bit of reverse engineering on a popular
| Horde/Alliance based MMO game and it follows almost the exact
| same steps (including the FNV32 export hashes). It _almost_ seems
| very similar as I have seen it employ very similar tricks. I
| wonder if it 's packed using the same protection?
| 2c2c2c wrote:
| would make sense to reuse warden for Activision IP post merge
| roflmuffin wrote:
| The source 2 engine also uses fnv to hash the schema (basically
| entity properties)
| sas41 wrote:
| Cheating in multiplayer games has become such a huge problem, it
| has destroyed trust across every major FPS.
|
| I am a long time CS player, but I did briefly play one of the new
| CoD games, before they went crazy with Nicki Minaj skins and
| bong-guns.
|
| A person was so convinced I was cheating, they started doing
| OSINT on me while still in a match, and they found my old
| UnKnOwNcHeAtS account as some kind of proof that I am cheating
| (that account was 12 years old by that point).
|
| I abhor cheating, and I have a lot of interest in computer
| science, so of course I wanted to see how all of it works and did
| my research during my youth, taking care to never compromise the
| competitive integrity of the games I played, but if you look
| around, there is not a single game that I can recommend to people
| anymore.
|
| Games like Escape From Tarkov are so busted, cheaters are
| stealing the barrels off people's guns and crashing their game/PC
| on command.
|
| My beloved counter-strike's premier competitive game mode has a
| global leaderboard that acts as a cheat advertisement section
| within the game.
|
| Games like Valorant are a cut above the rest on account of their
| massively invasive anti-cheat, but are nowhere near as clean as
| most fans claim, I mean, you could write a cheat for the game
| using nothing but AHK and reading the color of a pixel.
|
| There is a whole industry of private matchmaking for counter-
| strike, built solely on the back of their anti-cheat and promises
| of pro-level play to the top players.
|
| EDIT: I found the screenshot, it was MPGH not UnknownCheats, but
| yeah, they also had a game ban on their account.
| enjoylife wrote:
| We're seeing a clear divide where both competitive gamers and
| hackers are retreating into their own ecosystems, away from
| public matchmaking. Public matchmaking has simply become too
| optimized/lucrative to sustain trust or meaningful competition.
| Private matchmaking and closed communities are thriving,
| raising the average skill ceiling in competitive. Similarly,
| hacking communities are evolving with easier forms of payment
| and distribution. The monetary aspects are huge. But most
| importantly, both cultures push each away. Your persona of
| someone who plays with integrity and crosses the competitive
| and hacker mentality is pretty much gone.
| Dalewyn wrote:
| I disagree that cheating "has become" a huge problem, it was
| _always_ a huge problem.
|
| I can't remember a single multiplayer game that didn't have
| cheaters of some form or another. None. Zilch. Zero. It's kind
| of why I never grew beyond playing MMORPGs, and even that
| passion ultimately died out.
| Salgat wrote:
| Back in the old days, before even xbox, online play was
| almost exclusively on computers on privately hosted servers,
| so you had mods actively banning anyone who gave any hint of
| cheating.
| Dalewyn wrote:
| That doesn't refute my point, though; probably supports it,
| even. Private server owners went scorched earth in ye olde
| days because cheating was (and still is) a huge problem.
| OSButler wrote:
| As a player it was just less annoying back in the
| dedicated server days, since cheaters were dealt with
| immediately. Nowadays you have to report them in most of
| the competitive games and then it can take anywhere from
| several hours to weeks before anything happens. It just
| feels like the protections have become more and more
| invasive, yet are still far behind the original community
| managed servers from back in the day.
| aalimov_ wrote:
| EFT also uses kernel level anti-cheat "Easy Anti-Cheat" (as
| invasive as what valorant uses (vanguard)). Don't know why ETF
| implementation sucks.
|
| I've been on CS since 1.3, and i think their system is pretty
| good. Sure you get cheaters sometimes, but it's not that bad,
| maybe I've been pretty lucky.
| Crestwave wrote:
| One difference between EAC and Vanguard is that the latter
| needs to be loaded on boot, so you need to reboot every time
| you want to play if you don't want to have it running all the
| time (which is a common use-case since it has a history of
| interfering with legitimate programs).
| veeti wrote:
| Remember having to install "Cheating-Death" to get on some CS
| 1.x servers? Always wondered what it even did to your
| computer.
| robertlagrant wrote:
| Yes! Good times, probably.
| Hikikomori wrote:
| EFT uses battleye. Most commercial anti cheats have had a
| kernel component for many years because cheaters moved there,
| anti cheats just followed them out of necessity. Valve VAC
| being one of the few exceptions, but its practically useless
| as an anti cheat. Vanguard is better because they designed
| the game with anti cheating in mind, not just slapping it on
| at the end as an afterthought. And it protects against
| certain cheats loaded at boot which other kernel based anti
| cheat don't protect against.
|
| Unless you use multiple users on Windows a user space
| anticheat (or anything you run) can already read all your
| files and even memory of other processes (Windows provides an
| API for this), putting it in kernel adds the ability to do so
| for the other users. Invasiveness isn't really that good of
| an argument as normal software can already do so much.
| NekkoDroid wrote:
| The game I probably have the most hours in is Overwatch. In
| that time I've encountered not enough cheaters (at least those
| that are noticable enough) to say that they are even remotely a
| problem. I don't know what they are doing, but they don't use a
| kernel-mode anti-cheat (to my knowledge).
| kachapopopow wrote:
| You simply don't notice since overwatch cheats tend to be
| very advanced. They also have a really strict system around
| reports and players actually use it.
| sodality2 wrote:
| If you are serious about CS and reach 10-15k elo, you could
| give Faceit/ESEA a chance - invasive, but essentially 100%
| cheat-free.
| bloudermilk wrote:
| Cheating is such a bummer in CS, even in casual matches.
| Luckily it's usually pretty obvious and you can either kick the
| cheater or find a better lobby. Having friends on there has
| made finding good lobbies in general much easier
| kurisufag wrote:
| fwiw, cheating in CS(GO) taught me x86 RE and low-level
| programming way younger than is usual. sophomore year of high
| school.
|
| I still recommend writing an HvH cheat to anyone that wants to
| get into proggin' -- you get a taste of both static and dynamic
| RE, memory-level programming, UI development, bare dxsdk
| (usually), a skid-saturated environment, sysadmin (if you try
| to set yourself up an uber1337 cheat page), and a bunch of
| other little things, all in an environment where you're quite
| directly competing with others in the same situation.
| andrewmcwatters wrote:
| Most hackers in the space start out at the freshman year or
| middle school age, my dude. Was the case 20 years ago.
| xeonmc wrote:
| Usually by the time you are in working age people have
| outgrown the e-ego waving contest to be incentivized to
| cheat in an inconsequential video game*
|
| *with some exceptions.
| kurisufag wrote:
| you're on a website called "Hacker News", man. you think
| the startup game is less of an "e-ego waving contest"?
| kurisufag wrote:
| it wasn't a brag or anything, i just don't know by what
| means i would've been introduced to that stuff other than
| game cheats. 15-year-old-me definitely did not care about
| crackmes or malware reversing.
|
| i did start writing code in middle school, though. php,
| mostly :)
| pooloo wrote:
| you sound like me, I was a little younger though ...
| aimbots, wallhacks, esp, textures, radar, it was all
| intriguing and I hated encountering cheaters in CS 1.4
| and 1.5. I also began dabbling in writing bots around
| this time, as POD Bot was awesome!
|
| php had also been a thing of mine, I spent many months in
| DALnet and EFnet #php. Primarily around the time of v3
| prior to v4's big launch...
| nicman23 wrote:
| i learnt a lot about virglrender, spice, opencv and ocr (and
| a bit of python but that was the easy part) by making a cv
| pokemmo bot
| StefanBatory wrote:
| still, it ruined game for other players.
|
| though personally I can't be _that_ mad if you wrote cheats
| yourself, I will be a bit angry but impressed too ;)
| dark-star wrote:
| around the year 2000, a friend of mine from school got banned
| from many large Half-Life servers because they claimed he was
| cheating. He was not, he was just that good. I swear even if
| you watched him playing you could have sworn he used an aim
| bot. The crosshair was almost permanently stuck to the other
| players' heads. But that's just how good he was. Shame that
| E-Sports wasn't a thing back then, he could have earned a
| fortune
| Fokamul wrote:
| Escape From Tarkov was so busted, because first they've
| supported cheaters (one cheater, with bought cheat for a few $,
| made around $2k++ monthly boosting players etc.) when Tarkov
| dev banned them, they will easily rebuy new account. Easy money
| for both parties, win-win scenario.
|
| Second, their code for networking was complete BS, they didn't
| even sanity-check player movement/location server-side and many
| more things. Ridiculous.
| nottorp wrote:
| > Cheating in multiplayer games has become such a huge problem,
| it has destroyed trust across every major FPS.
|
| Is it because normal people are out of public competitive
| multiplayer so you're left with the cheaters and toxic
| hypercompetitives?
|
| Personally I've quit when Starcraft 2 was new. Got tired of
| being called a stupid noob ... when I won.
| SheinhardtWigCo wrote:
| Phenomenal piece of research. Clearly this is not the author's
| first rodeo :)
| monkburger wrote:
| As long as you can read and write to memory, you will never stop
| online cheating in FPS games.
| alkonaut wrote:
| This is true, but what is "reading and writing to memory" here?
| The article outlines dozens of ways of doing that with various
| hooks etc. And how they try to avoid that.
|
| If I put a hardware connection to the memory (basically WIRES
| to my memory bus) then yes, it's very hard to detect. But
| that's also very hard and expensive to do...
| phsau wrote:
| It's cheaper and more accessible than ever to use
| DMA/hardware cheats from cheat vendors.
| bangaladore wrote:
| DMA cheats are only usable as many games aren't willing to
| pull-up their minimum requirements to play. IOMMU defeats
| DMA attacks. Secureboot (largely) solves pre-boot EFI
| related concerns.
| weberer wrote:
| Even then, you could probably set up an aim bot with a second
| computer using computer vision to detect characters, and
| sending inputs as a USB mouse.
| monkburger wrote:
| As long as you can read and write to memory, you'll never stop
| cheating in multiplayer games.
| CobrastanJorji wrote:
| Sure, and that's why there's more and more "trusted" hardware
| to try and get computers to a place where their users cannot
| read and write to or from their own memory.
| AnthonyMouse wrote:
| Those kinds of things tend to be their own undoing.
|
| You added a security processor to your hardware at ring -2,
| but hardware vendors are notoriously bad at software so it
| has an exploit that the device owner can use to get code
| running at ring -2. Congrats, your ring 0 anti-cheat kernel
| module has just been defeated by the attacker's code running
| on your "trusted" hardware.
|
| But in the meantime you've now exposed the normal user who
| isn't trying to cheat to the possibility of ring -2 _malware_
| , which is why all of that nonsense needs to be destroyed
| with fire.
| 15155 wrote:
| Good luck ensuring every PCIe device with DMA access is
| "trusted."
| bangaladore wrote:
| IOMMU defeats DMA attacks.
|
| There is no reason for a GPU or network driver, or anything
| to have arbitrary physical memory access.
|
| If a GPU needs space for a draw-calls, allocate it in the
| kernel and explicitly give permission to the GPU to access
| it.
| AnthonyMouse wrote:
| IOMMU gives the PCIe device access to whatever range of
| memory it's assigned. That doesn't prevent it from being
| assigned memory within the address space of the process,
| which can even be the common case because it's what
| allows for zero-copy I/O. Both network cards and GPUs do
| that.
|
| An even better example might be virtual memory. Some
| memory page gets swapped out or back in, so the storage
| controller is going to do DMA to that page. This could be
| basically any memory page on the machine. And that's just
| the super common one.
|
| We already have enterprise GPUs with CPU cores attached
| to them. This is currently using custom interconnects,
| but as that comes down to consumer systems it's plausibly
| going to be something like a PCIe GPU with a medium core
| count CPU on it with unified access to the GPU's VRAM.
| Meanwhile the system still has the normal CPU with its
| normal memory, so you now have a NUMA system where one of
| the nodes goes over the PCIe bus and they both need full
| access to the other's memory because any given process
| could be scheduled on either processor.
|
| We haven't even gotten into exotic hardware that wants to
| do some kind of shared memory clustering between
| machines, or cache cards (something like Optane) which
| are PCIe cards that can be used as system memory via DMA,
| or dedicated security processors intended to scan memory
| for malware etc.
|
| There are lots of reasons for PCIe devices to have
| arbitrary physical memory access.
| bangaladore wrote:
| I feel like in pretty much every case here they still do
| not need _arbitrary_ access. The point of DMA cheating is
| to make zero modification of the target computer. The
| moment a driver needs to be used to say allow an IOMMU
| range for a given device, the target computer has been
| tainted and you lose much of the benefit of DMA in the
| first place.
|
| Does a GPU need access to memory of a Usermode
| application for some reason, okay, the GPU driver should
| orchestrate that.
|
| > We haven't even gotten into exotic hardware that wants
| to do some kind of shared memory clustering between
| machines, or cache cards (something like Optane) which
| are PCIe cards that can be used as system memory via DMA,
| or dedicated security processors intended to scan memory
| for malware etc.
|
| Again, opt-in. The driver should specify explicit ranges
| when initializing the device.
| AnthonyMouse wrote:
| > I feel like in pretty much every case here they still
| do not need _arbitrary_ access.
|
| Several of those cases do indeed need arbitrary access.
|
| > The moment a driver needs to be used to say allow an
| IOMMU range for a given device, the target computer has
| been tainted and you lose much of the benefit of DMA in
| the first place.
|
| The premise there being that the device is doing
| something suspicious rather than the same thing that
| device would ordinarily do if it was present in the
| machine for innocuous reasons.
|
| > Does a GPU need access to memory of a Usermode
| application for some reason, okay, the GPU driver should
| orchestrate that.
|
| Okay, so the GPU has some CPU cores on it and if the
| usermode application is scheduled on any of those cores
| -- or could be scheduled on any of them -- then it will
| need access to that application's entire address space.
| Which is what happens by default, since they're ordinary
| CPU cores that just happen to be on the other side of a
| PCIe bus.
|
| > Again, opt-in. The driver should specify explicit
| ranges when initializing the device.
|
| What ranges? The security processor is intended to scan
| every last memory page. The cache card is storing
| arbitrary memory pages on itself and would need access to
| arbitrary others because any given page could be
| transferred to or from the cache at any time. The cluster
| card is presenting the entire cluster's combined memory
| as a single address space to every node and managing
| which pages are stored on which node.
|
| And just to reiterate, it doesn't have to be anything
| exotic. The storage controller in a common machine is
| going to do DMA to arbitrary memory pages for swap.
| bangaladore wrote:
| Re everything above the below, you are naming esoteric
| reasons for allowing unfettered access to physical
| memory. That's fine, but what percent of players of X
| game are going to have such a setup in their computer?
| Not enough that detecting that and preventing you from
| accessing a server would be a problem.
|
| > And just to reiterate, it doesn't have to be anything
| exotic. The storage controller in a common machine is
| going to do DMA to arbitrary memory pages for swap.
|
| I'd like a source for that if you have one. I'd be very
| surprised if modern IOMMU implementations with paging
| need arbitrary access. The CPU / OS could presumably
| modify the IOMMU entries prior to the DMA swap. The OS is
| still the one initiating a DMA transaction.
| mdswanson wrote:
| A 2-year legal battle with Activision to overturn a false
| permanent ban. Activision showed up with zero evidence of
| cheating and lost: https://antiblizzard.win/2025/01/18/my-two-
| year-fight-agains...
| b3lvedere wrote:
| Holy ..... what a fight you had to do. So glad i hardly play
| any mulitiplayer shooter games. I'd hate to have my insane
| Steam library stripped away from me.
| minihat wrote:
| His steam library was not restricted, just the game in which
| he was accused/banned.
| cwillu wrote:
| And his account was publicly flagged as being a known
| cheater, which affected other games:
| https://antiblizzard.win/2025/01/18/my-two-year-fight-
| agains...
| b3lvedere wrote:
| Apologies. I stand corrected. Thank you for this insight.
| buzer wrote:
| > This ban also ruined other games for me. If I ever did well
| in a game, someone would look at my profile to see how many
| hours I have and instantly see the red marker that shows "I am
| a cheater".
|
| I wonder if that label can be considered to be libel. Probably
| harder in the US, but from what I understand in UK (or just
| England?) the defendant must prove that it's true.
| ArnoVW wrote:
| On the UK though, computer data is proof. If the computer
| says you cheated, it's proven.
|
| This is about to change though, since the national postal
| services got a whole bunch of people convicted of fraud based
| on a system they knew buggy.
| shit_game wrote:
| For context, (I assume) this is referencing the Horizon IT
| Scandal in which faulty accounting software used by post
| offices in the UK indicated there were financial
| discrepencies suggesting embezzlement, and over 900
| innocent people were convicted of crimes that never
| happened.
|
| https://en.wikipedia.org/wiki/British_Post_Office_scandal
| darksaints wrote:
| I got a false permanent ban as well. Despite the fact that
| cheating is damn near impossible on consoles, and the fact that
| I worked way too long to get to an absolutely mediocre rank
| (gold 1) on ranked play, and the fact that I had never even had
| a warning or complaint for any behavior whatsoever, they
| permanently banned me with no explanation.
|
| Unlike the blogpost, I just decided I would just never spend
| any money on an Activision product ever again. It's what
| everybody should do.
| gambiting wrote:
| >>Despite the fact that cheating is damn near impossible on
| consoles
|
| Unfortunately, aim assist devices for consoles are very
| widespread now and a big problem for competitive gaming. .
|
| >>I had never even had a warning or complaint for any
| behavior whatsoever
|
| That's the gold standard in the industry though, you don't
| warn(suspected) cheaters to not give them opportunity to
| adjust their tactics. Sorry you got caught by this unfairly.
| AnthonyMouse wrote:
| > That's the gold standard in the industry though, you
| don't warn(suspected) cheaters to not give them opportunity
| to adjust their tactics.
|
| Is this supposed to do any good? The actual cheater is
| still getting a signal that they've been detected, because
| they get banned. Then they figure out how, make a new
| account and go back to cheating.
|
| Meanwhile the normal user is both confused and
| significantly more inconvenienced, because their rank etc.
| on the account you falsely banned was earned legitimately
| through hard work instead of low-effort cheating.
| gambiting wrote:
| >>The actual cheater is still getting a signal that
| they've been detected, because they get banned.
|
| So....yes. But there are mitigating tactics around this,
| I really recommend looking into it because it's a
| fascinating topic. As the simplest thing - you don't ban
| cheaters the moment they are detected to not give off how
| you detected them. That's why Activision bans people in
| waves and all at once, even though they know some people
| are cheating and still active. Unfortunately a lot of
| people are paying for cheats nowadays, and the cheat
| makers usually have some kind of refund policy where if
| you get detected you get your money back - games
| companies want to inconvenience those buyers as much as
| possible, so you can't claim your refund straight away
| because hey, the game worked for a good while even while
| you were cheating, must have been something else :P
|
| >>Meanwhile the normal user is both confused and
| significantly more inconvenienced
|
| Yes, which is why the aim is to have 0 legitimate players
| getting caught by this, obviously.
| arkh wrote:
| I would not be surprised to learn some gaming company is
| selling cheats for their own games.
| michaelt wrote:
| Yes, but I think the companies prefer the term "in-app
| purchase"
| AnthonyMouse wrote:
| > Yes, which is why the aim is to have 0 legitimate
| players getting caught by this, obviously.
|
| You can't just _say_ that though, you have to actually
| _do that_ , which is apparently not what's happening.
| gambiting wrote:
| The problem is obviously the same as in many other
| industries - how do you distinguish honest legitimate
| players who swear they haven't cheated from people who
| will say anything to get you to unban them. I don't work
| in that department personally, but I've seen reports
| shared internally where the player literally went to
| local news station to say how unfairly they are treated
| and how we banned him without any info or any reason and
| how it's affecting his mental health and his family and
| he basically made a huge stink around it, and then we
| pull up the ban report for his account and we clearly see
| a screenshot from his machine where he's running cheat
| engine with cheats for our game enabled. Some people will
| just lie through their teeth to get their way. So you
| have to rely on what you know with absolute certainty -
| you detected something that is absolutely indicative of
| cheating? You ban them. Anything else is a no no. At
| least where I used to work no one used any kind of
| algorithm for automatic bans, those were only used for
| manually reviewed cases where someone would actually
| watch a replay of your game before issuing a ban.
|
| Does that mean the system is foolproof? No, of course
| not. But banning honest paying users is a huge risk to
| any business - so obviously no one wants to do that,
| every system like this errs on the side of caution by
| default for that reason alone.
|
| And obvious disclaimer - I can only comment on my own
| experiences, I have no idea what every company out there
| is doing.
| AnthonyMouse wrote:
| > how do you distinguish honest legitimate players who
| swear they haven't cheated from people who will say
| anything to get you to unban them.
|
| It's mostly not about the appeals process. You want to
| avoid the false positive accusations to begin with.
|
| > and then we pull up the ban report for his account and
| we clearly see a screenshot from his machine where he's
| running cheat engine with cheats for our game enabled.
|
| Hypothetically things like this can happen where someone
| is reusing passwords that end up in a data breach and
| then some script kiddie gets their hands on it and wants
| to dip their toes into some cheating without risking
| their own account. Then you have the original account
| holder screaming at you because they know they didn't
| cheat.
|
| Or they could just be cheaters who doth protest too much.
|
| But there are ways you can at least try to distinguish
| these things, e.g. did the cheating happen on the same PC
| or IP address the account normally uses?
|
| > Does that mean the system is foolproof? No, of course
| not. But banning honest paying users is a huge risk to
| any business - so obviously no one wants to do that,
| every system like this errs on the side of caution by
| default for that reason alone.
|
| It's apparently failing enough that this thread has
| multiple people saying they've experienced false
| positives, and it doesn't seem like they're interested in
| getting their accounts back.
| Asmod4n wrote:
| there is no money back from the cheat makers, its paypal,
| visa et al which does that.
| hnick wrote:
| The intent is usually to gather data then ban in waves.
| If a new tool comes out and you ban a couple of players
| the tool authors might figure out why and update it. Let
| it sit a while and you can get hundreds/thousands of
| players who get a message to rethink their choice to
| cheat.
|
| An additional benefit is that this can include multiple
| cheat programs and versions in one ban wave, so it may be
| harder to narrow down exactly what the flaw was. That's
| the why for no warnings (or explanations) - false
| positives and recourse if mistakenly flagged is another
| matter entirely.
| AnthonyMouse wrote:
| > An additional benefit is that this can include multiple
| cheat programs and versions in one ban wave, so it may be
| harder to narrow down exactly what the flaw was.
|
| That seems like it could go the other way. There are five
| cheat programs that each have a dozen versions and now
| you know that everybody using program A and D got banned,
| the people using program C and E didn't, and the people
| using program B got banned but only if they were using
| version 1.2 or lower and not exclusively version 1.3
| where they added a new anti-detection method that A and D
| don't use and C and E do. Now they know what to do.
|
| Whereas if you ban them as soon as you can detect them,
| the people using program B get banned before version 1.3
| is even out, they have to issue all of those refunds
| immediately and stop getting sales because their cheat
| stops working now instead of months from now, and then
| version 1.3 may not ever get released. Now all they know
| is that C and E are doing something the others weren't,
| but that could have been any of a dozen things so A and D
| don't know what to change.
|
| Doing it that way also has another major problem: Suppose
| you do the ban wave. Do the people using the existing
| known detectable cheats now get to make new accounts and
| keep cheating? If you ban them again right away then the
| cheat makers get to keep making variants until that stops
| happening, but if you don't then the game is back to
| being full of cheaters the next day and the cheat makers
| are still making money selling the old detectable cheats
| to fund the development of undetectable ones.
| pc86 wrote:
| I mean "then they figure out how" and "make a new
| account" are each doing quite a bit of the heavy lifting
| here.
|
| Using Activision as the example, when they do a mass ban
| after you've been cheating for 4 months straight how
| exactly are you going to figure out how it happened?
|
| Isn't the whole point of the ban that it's not as simple
| as just "make a new account?" Isn't it tied to the PS+ /
| XBox Gold membership, or even the physical hardware?
| amatecha wrote:
| The exact same thing happened to me with League of Legends. I
| was inexplicably banned for cheating, despite never having done
| any such thing (and despite regularly playing on three accounts
| (this is fully permitted), the other two of which were not
| banned!) Their support people repeatedly said "we reviewed your
| case and the ban is correct", etc. all the while giving zero
| information about what I did so I could correct it. I have a
| couple of the rarest skins in the game, and have played
| thousands of hours since 2009. I only play ARAM, so the
| suggestion I was risking my account of great sentimental value
| by cheating at the most casual mode in the game is beyond
| ridiculous. Anyway, nothing in gaming has ever stressed me out
| more. I got unbanned solely because of a contact in the
| industry who had it looked into, and the ban was inexplicably
| lifted. I still play, but I think about the false ban almost
| every time, and League will probably be the last competitive
| multiplayer game I ever put any time towards. Part of me
| doesn't want to play it anymore because I dread that happening
| again. :(
| jajko wrote:
| Maybe take it as a signal from universe that intense gaming
| is waste of life and a net loss for you? I know its harsh and
| double that in gaming thread, but I don't see any other way.
| We don't talk 3-5h a week, and it seems neither are you.
|
| You will almost certainly badly regret when on that
| proverbial death bed and most probably well before that, life
| goes darn fast and the feeling of losing out in the most
| important aspect of our existence - how well we live our
| lives is soul crushing. Its not that gaming hard is bad per
| se (apart from addictions and abysmal effect on health), but
| you are losing on much better aspects of life which are just
| out there for the grab.
|
| Or don't take my word, just check what old people regret in
| their lives. Sure gaming is not there yet, but it will find
| its place firmly among too much work and not spending enough
| time on family and relationships, which are consistently on
| top.
| stronglikedan wrote:
| > gaming is waste of life and a net loss for you?
|
| Is it? Can you share peer reviewed sources? In my
| experience, it's been quite the opposite.
| amatecha wrote:
| I play games very little, a few hours a week. I am very
| social and not lacking in that area -- don't worry about me
| lol :) I don't engage in "intense gaming", notice how I
| said I've played since 2009, that's 16 years ago :P
| MetaWhirledPeas wrote:
| I feel that. I'm not against playing video games, but I'm
| uneasy about getting too attached to virtual property,
| considering it's controlled by a gaming company who has no
| obligation to you and no inclination to keep games alive
| beyond their shelf life.
|
| To be fair though, real life property is only slightly less
| ephemeral.
| amatecha wrote:
| Yeah for real, my Steam account could just be erased and I
| instantly lose like $1000 of games I "bought" (by some
| vague definition of the word). As soon as online-only
| services started becoming more prevalent, it became quickly
| apparent how ephemeral they are, and how unilaterally they
| can be taken away from me with zero recourse. "Don't get
| too attached", as they say >_>
| xnorswap wrote:
| This is worthy of it's own submission, a very interesting post.
| alkonaut wrote:
| Honestly I'd prefer it if games could permaban based on just
| heuristics and the EULA simply stated "tough luck, buy the game
| again". I'd happily pay for that, knowing my money is at least
| not going to some 2 year legal fight.
|
| I get that I might be the one accused of cheating next time.
| But if that risk is tiny and the cost when it happens is $50 or
| $100 it sounds a lot more attractive than the alternative.
|
| Also (obviously) I don't care about the account itself. I
| wouldn't play a game where I aggregate long term
| stats/items/status/whatever.
|
| In a perfect world you just have private servers where you can
| have 90% effective anticheat and have humans sort out the rest.
| bob1029 wrote:
| I think stat based bans are the ultimate solution for all the
| client side bullshit.
|
| If you use statistics, you will sometimes get it wrong, but
| in the other cases the cheaters are completely out of luck.
| You could offer the source code to your game willingly and it
| wouldn't help them very much.
|
| If the cost of a false positive is $50 for the gamer and the
| chance of it happening is rare, I think many would quickly
| understand the value proposition from a game experience
| perspective.
|
| Assuming your false negative rate is low (I.e., you have high
| classification margins), you can make it extremely
| undesirable for players to engage in unfair play. Even soft
| cheating like aiding teammates with streaming and discord
| side channels could get picked up by these techniques.
| raxxor wrote:
| Nah, that won't do it. Even if you had a rare false
| positive rate, it would be significantly higher for players
| with a profile similar to ones that trigger bans.
|
| It would be even worse than the bans some developers hand
| out now because their inherit randomness would be
| essentially just that. Not acceptable for any form of
| service.
| michaelt wrote:
| _> I think stat based bans are the ultimate solution for
| all the client side bullshit._
|
| When I play basketball I keep getting stuck playing against
| 7'6" guys with an 83% free throw percentage which is
| statistically very unlikely.
|
| Alas my arguments they should be banned on statistical
| grounds have fallen on deaf ears :)
| mavamaarten wrote:
| I feel like pretty much all cheaters can be detected by
| just looking at mouse movements vs enemy positions. If you
| can easily spot cheaters through a killcam or spectator
| view, they can be detected through a serverside watchdog,
| no?
| fuzzy2 wrote:
| Interesting stuff! Though I don't get why b00lin would have to
| prove that they weren't cheating. This is not a criminal case,
| but still. Activision was denying access to a service that was
| paid for.
| ArnoVW wrote:
| Cheating was not allowed according to the terms and
| conditions.
| jokoon wrote:
| Interesting article
|
| Maybe he was banned because as a developer, he had development
| tools installed on his machine, which increased the odds of him
| being labeled as a potential cheater.
|
| Sometimes I even wonder if other hackers could not hack the
| machine or other players, to install a software that triggers
| anti-cheat system: it becomes then difficult to lift the ban.
| HideousKojima wrote:
| >Sometimes I even wonder if other hackers could not hack the
| machine or other players, to install a software that triggers
| anti-cheat system: it becomes then difficult to lift the ban.
|
| This appears to be the case in Apex Legends: https://old.redd
| it.com/r/CompetitiveApex/comments/1bhicc6/cl...
|
| Also I wish more "good" hackers were in games, like the guy
| in GTA Online I ran into once who was shooting me with a
| money machine gun because Rockstar are greedy assholes.
| bunnybender wrote:
| > Also I wish more "good" hackers were in games, like the
| guy in GTA Online I ran into once who was shooting me with
| a money machine gun because Rockstar are greedy assholes.
|
| Eh? Rockstar doesn't force you to buy Shark Cards, and
| everyone has gotten 11 years worth of DLCs for free. Making
| in-game money IS an essential part of the game. You also
| don't have to purchase every single vehicle or other item
| the game offers.
|
| During my years of playing, I've met only a few cheaters
| who weren't complete douchebags (though some of them did
| act that way towards other players). I consider the "good"
| cheater to be a myth.
| MisterTea wrote:
| I wonder how these anti-cheat tools are impacted by flatpak and
| its partial sandboxing. Otherwise they sound quite invasive.
| rustcleaner wrote:
| Needs to be a law against the taking away of product
| functionality after the sale, even if it's contractual/EULA. A
| ban should never take the game away from the owner, and in cases
| where it does then they need to be refunded (treble damages on
| top of license, lawyer, and court fees if it takes a judgment to
| induce the refund). Getting banned on Steam, say, in the sense
| that all of one's purchases are invalidated should be impossible
| legally. In cases where an account is prevented from login, items
| and inventory must still be accessible for trade as those
| represent real time effort put in by a paying customer. Want to
| enforce your code of ethics in a multiplayer game? Can't charge
| for the game or users legally have rights against bans, and bans
| must follow a proportionality continuum and you _must_ have a
| human-attended cost capped (at license cost, and only on loss)
| appeals tribunal system with record.
| int0x29 wrote:
| The money loss is kinda the point. Cheaters can fake a new
| identity but if they get caught fast enough cheating becomes
| unaffordable.
| reginald78 wrote:
| Not sure it applies with CoD in particular but my impression
| is a lot of these games with super invasive anti-cheat went
| F2P which reduces the punishment of getting caught to wasting
| time. Combined with the no dedicated servers resulting in
| little manual admin being possible with new games you've
| basically created the perfect environment to cheat entirely
| for business reasons. So then they started adding things like
| requiring phone verification (not even just requiring mobile
| numbers but requiring POST PAID mobile numbers) and kernel
| level modules, making a super invasive PITA solution to a
| problem.
|
| Personally, I opted out of these games, F2P already perverts
| most game design away from fun IMO. And despite all this crap
| it seems like people are complaining about cheaters more than
| ever, but maybe I'm just old now!
| yupyupyups wrote:
| I don't think it's you being older, this F2P stuff was
| almost non-existent outside of the MMORPG genre. If you
| wanted to play video games, you essentially had four
| choices:
|
| - Play a limited demo of a full game.
|
| - Buy a full offline game for your console or PC.
|
| - Play a F2P MMORPG (no anti-cheat software to speak of).
|
| - Pay for an MMORPG subscription (also no anti-cheat
| software to speak of).
|
| Cheats were less developed and so were anti-cheats. The F2P
| model was not as wide-spread either. The mobile app market
| didn't exist.
|
| This is not the reality we live in anymore.
|
| I've decided to not waste as much time as I used to on this
| stuff, because as I got older I learned more about how
| valuable time actually is.
| Macha wrote:
| > not even just requiring mobile numbers but requiring POST
| PAID mobile numbers
|
| Wow, I live in a first world country and that would still
| ban like half the adults I know (Mostly because our bill
| pay phone plans are terrible value), along with basically
| every teenager (which for COD, you would think is the core
| target market).
| yard2010 wrote:
| If there's a thing that's worse than over-priced stuff is
| free stuff. No free lunch
| Hikikomori wrote:
| Cheating will not get you banned on steam though, at worst your
| account is publicly shamed if its a VAC game.
|
| People play multiplayer games to have fun and interact with
| others. If you behave badly, be it cheating or otherwise, you
| should be banned from using the multiplayer service because
| your behavior impacts other people.
| AyyEye wrote:
| > If you behave badly, be it cheating or otherwise, you
| should be banned from using the multiplayer service because
| your behavior impacts other people.
|
| What if you behaved great but some guy fresh out of code boot
| camp's algorithm bans you?
| Hikikomori wrote:
| Bugs and mistakes happen, when that happens it's typically
| some misidentification of a process or driver so a group of
| players get banned. And in every one of those cases I've
| seen they've been unbanned. The call of duty case is
| probably the worst one I've read about, also an outlier.
| brettermeier wrote:
| I don't mind cheaters getting their asses kicked. Let them lose
| real money. If you accidentally get banned, that's a different
| story though.
|
| And it's just a game that's not playable anymore, not the whole
| Steam account, isn't it?
| 15155 wrote:
| The entire Steam account is tainted: that's the issue.
|
| Some random commercial third party can make an accusation and
| damage the value of thousands of games on a lark.
|
| Meanwhile, any determined cheater just bought another copy of
| the game on an account dedicated solely to that task. This
| person suffers no extended consequence.
| StefanBatory wrote:
| If you cheat or ruin game for other players, you deserve to
| lose the access.
|
| Other players paid too.
| lm28469 wrote:
| Why is that different from speeding while driving ?
|
| Be a nuisance to society -> get fucked. That's a pretty
| universal principle
| nurumaik wrote:
| Because there is no court, just algorithm flagging people
| with some false positives
|
| For "get fucked" measures you need pretty low rate of false
| convictions
| spencerflem wrote:
| imo the problem would be solved if there was the ability
| and a culture of running your own game servers. Because I
| agree, being softlocked from a game you paid for sucks.
|
| But also, cheaters suck, and whoever's running the server
| should be allowed to kick you out.
| Sophira wrote:
| While I get where you're coming from, that's a really bad
| comparison to make. Speeding while driving can and will kill
| people.
| hhjj wrote:
| Maybe then just label them as cheaters and allow them to only
| game against other cheaters.
| some_random wrote:
| It's a video game, it's really not that big of a deal.
| sdwr wrote:
| Even banks in the real world don't have that level of customer
| protection.
| marcosscriven wrote:
| I don't play this game, but my partner does. I sometimes see him
| "spectating" a player that is below the ground - regardless of if
| the client is hacked/cheating, aren't there some server-side
| checks that the player state is valid?
| StefanBatory wrote:
| As much as I loved that article, I'm not sure it's really moral
| thing to do.
| __alias wrote:
| Not really relevant, but this triggered a memory of being around
| 14 years old and getting scammed on Runescape which drove an evil
| character arch from me to somehow find out how to DDOS players in
| the duel arena and make absolute bank. I still feel a little
| guilty about my actions to this day. At the same time, I'm
| surprised that at 14 I was able to find and pay for a denial of
| service provider and figure out players IP addresses to
| intentionally disconnect them
| alkonaut wrote:
| Cheating is ultimately a human problem. You can have some
| safeguards and heuristics like the ones the article describe, to
| weed out 90% the most blatant cheaters, so I think anticheats
| like these are fundamentally a good thing. But the anti-cheat can
| and should err on the safe side because ultimately it should be
| the players and admins themselves that sort this out.
|
| Online multiplayer games _must_ (yes _must_ ) take place on
| servers with human admins. Admins should be present for a
| majority of the time any players are playing.
|
| Ideally with admins the players recognize. Bonus points if
| players themselves can perform some moderation when no admin is
| present (votekick, voteban etc). There is no difference between
| kicking cheaters and kicking people who are abusing chat etc.
| Obviously this means that "private" or "community" servers are
| the only viable types of server for online multiplayer games.
|
| This process of policing cheaters and other abuse _can not_ be
| something that is done via a reporting system and handled
| asynchronously. Kicking /banning must be done by the admins of
| the game, and it must be handled quickly.
|
| If you are considering buying/playing an online multiplayer game
| and it doesn't have this functionality (e.g. the only way to play
| online is via matchmaking on servers set up by the publisher, and
| the only way cheaters and chat abusers are policed is via some
| web form) then please, avoid that game. Vote with your wallet.
| jokoon wrote:
| I agree for the most part, there are other ways, like a phone
| number, manual verification with a photo, require players to
| play 10hr before they can play competitive, have a
| recommendation from other players, etc, or even a pay-once 5
| dollars game pass on top of all those things.
|
| Although I recommend you to watch the valve presentation of AI
| anti cheat if you did not already. Their work is quite
| interesting, and they claim they catch 99% of cheaters.
|
| Although obviously there are also very subtle ways to cheat,
| too.
| RHSeeger wrote:
| > they claim they catch 99% of cheaters
|
| But that's easy. The tricky part is catching the cheaters
| _without_ also catching non-cheaters.
| genewitch wrote:
| I ban 100% of players. no cheaters! 0%!
| dsjoerg wrote:
| Why do you think human admins are the only viable solution?
| Plenty of games thrive without them--e.g., Apex Legends uses
| robust reporting and anti-cheat systems, and Rocket League's
| moderation is largely automated yet effective.
| Hikikomori wrote:
| Apex had plenty of cheaters when I played it, if there's a
| cheater and they're not detecting it there's not much I can
| do, just 20-30 minutes wasted.
|
| If its a server with admins I can contact them on discord and
| get them banned pretty quickly. As a system it worked pretty
| well, had some badmins but there was plenty of servers so
| could just join another. Though its not really compatible
| with the matchmaking style games we have today.
| snet0 wrote:
| I don't think you appreciate:
|
| 1. How many active Apex/whatever games there are at any one
| time 2. How many users will just report anyone they die to
| as a cheater
| Hikikomori wrote:
| That sounds great but there was still cheaters in my
| games.
| alkonaut wrote:
| Depends on how the game works a suppose. Mostly it depends on
| whether a cheater would ruin one short game, or many hours of
| games. I usually find async reporting useless because it
| already ruined my evening (this is under the assumption I'm
| playing a server and have no interest playing anywhere else,
| but a single cheater can ruin the game for everyone for a
| whole day). Whether that cheater gets disciplined _later_
| doesn't help anyone in that scenario unless they were kicked
| from the game right away.
| dylan604 wrote:
| > Online multiplayer games must (yes must) take place on
| servers with human admins. Admins should be present for a
| majority of the time any players are playing.
|
| > Ideally with admins the players recognize.
|
| Let's just make each game have a visible referee that is
| visible to everyone, and then after each infraction, the play
| can be reviewed under a video assistant. They can even have a
| group that does nothing but moderates the referees.
|
| Or, we could just have games
| dpig_ wrote:
| > Online multiplayer games _must_ (yes _must_ ) take place on
| servers with human admins.
|
| The sheer scale of this arbitrary requirement is hilarious.
| mvdtnz wrote:
| It's not that long ago this was the norm.
| alkonaut wrote:
| This was the norm. It just changed in the last few years
| (say, 10). And it could be the norm again. I still play games
| with zero cheaters because I return to the same server every
| night, playing against 63 other players where I usually have
| seen most of them before. And there is usually an admin
| there, or someone who can ping one if needed.
|
| I have no idea why this changed in more recent games. While
| every other online thing moved to have users create content
| abd self-moderate, games for some reason moved the other
| direction.
| alstonite wrote:
| So I just checked the player count of Counter-Strike 2.
| It's at 936,330 players. At 10 players per match, that's a
| requirement of 93,633 game moderators...
|
| Trying to also account for total players in _every other
| competitive game_ seems like an impossible ask.
| ThatMedicIsASpy wrote:
| When you go back this was the norm. You go to irc, search in
| #5on5: high server on (counter-strike 1.6)
|
| You either have a server and they come to you or you don't
| and message people. If they/you feel like are hacking go
| next. There were tons of servers where you had admins all the
| time.
|
| Human admins still can only see the obvious spin/aimbots.
|
| Companies took this from us as hosting your own servers is
| rarely an option these days and you rely on the company never
| shutting them down.
| jokoon wrote:
| Wouldn't it be possible or relevant to periodically,
| electronically sign the game state, to prevent cheating? Or with
| some proof of work?
|
| I am starting to think that cheat are just too hard to fight
| against, I am making a small, cheap online FPS, and I would let
| users trust each other instead, and hunt cheaters themselves, or
| maybe use AI like valve is doing. I would not bother have a anti
| cheat software.
|
| Also players would have to manage and administrate their servers
| themselves.
|
| Players would require to have a cellphone number attached, have a
| reputation score given by other players, maybe give an id or some
| other strong auth method, manual verification with like a
| photograph, like it's done for some dating apps. Players would
| have to play like 10 hours before they could play competitive.
|
| I am confident hardcore players would be motivated to do all
| those things to make sure there are fewer cheaters.
| jezzamon wrote:
| At a high level, you can just simulate the game without cheats,
| sign that, and then do the cheats separately.
| shawabawa3 wrote:
| > and I would let users trust each other instead, and hunt
| cheaters themselves
|
| If you've ever played a decent amount of basically any online
| game you'd know that players make cheating accusations
| CONSTANTLY based on very little evidence. And then there's also
| the social aspect of just reporting players you don't like to
| get them banned
|
| In such a system you'd get way more false positives than any
| kind of anti-cheat
| jagrsw wrote:
| I experienced the trust factor (banning, w/o banning officially)
| issues on my Linux CS:GO account in 2021, dropping to yellow and
| then red. This made it difficult to find teammates, as I was
| constantly matched with cheaters.
|
| I discovered I wasn't alone, as many other Linux users with
| Radeon GPUs and 16GB+ VRAM were experiencing similar problems. We
| created a GitHub issue to track the problem and try to find a
| solution: https://github.com/ValveSoftware/csgo-osx-
| linux/issues/2630
|
| After some investigation, we found that Valve was punishing Linux
| users with certain hardware configurations (radeon cards with
| >=16GB of VRAM, which were quite new at this time).
|
| Eventually, after a user reached out to gaben directly, the issue
| was fixed: https://github.com/ValveSoftware/csgo-osx-
| linux/issues/2630#...
|
| I suspect this was because Valve was preparing to launch the
| Steam Deck, and gaben wanted to ensure that Linux users had
| better experience with the device (just a guess).
| ryao wrote:
| Could it be that Gabe Newell is a nice guy?
| jagrsw wrote:
| It's possible, but it's also important to be aware of the
| business side of things.
|
| Valve makes a significant amount of money from in-game
| transactions, and some of their practices around this are
| shady. Issues like kids using their parents' CCs, gambling
| industry built around in-game items, and the potentially
| addictive nature of colorful virtual items marketed towards
| kids are valid concerns.
|
| So, while gaben might be nice, it's unlikely that this gets
| in the way of Valve's drive to maximize profits in every way
| they can legally get away with.
| hnuser123456 wrote:
| That email address goes to a team of people, but if you send
| something substantial and well-meaning, they'll look into it.
| solarkraft wrote:
| He does respond to minor inquiries frequently, but do
| remember that his company supports a gigantic predatory
| underage gambling market.
| lostlogin wrote:
| I've tried searching and found the below, is that the sort
| of thing you mean?
|
| https://www.seattletimes.com/business/bellevue-game-maker-
| va...
| DiggyJohnson wrote:
| You could say "support a virtual market with insufficient
| controls" and be more truthful and engender a more
| productive discussion. They've come down pretty heavily on
| the gambling side, no?
| pyth0 wrote:
| > They've come down pretty heavily on the gambling side,
| no?
|
| Not really. Back when this was a big story (around
| 2016-2017) they sent out some cease and desists to a
| number of the big CS:GO gambling websites but many did
| not comply and there was no follow-up. To this day many
| of those original sites are still around and have since
| grown. Essentially Valve (and the skin market as a whole)
| benefit so greatly from this grey-market that there is no
| incentive for them to stop it. This is covered in part 2
| of Coffeezilla's latest series investigating CS:GO
| gambling [1]
|
| [1] https://youtu.be/13eiDhuvM6Y?t=493
| Levitating wrote:
| > supports a gigantic predatory underage gambling market
|
| Last year Valve updated their code of conduct and
| effectively banned gambling. They've also been known to
| send cease-and-desist orders to various CS:GO gambling
| sites.
|
| So I wouldn't say that they support it, though for much
| time they weren't actively combating it either.
| skizm wrote:
| > dropping to yellow and then red
|
| How do you know what your trustfactor is? Or were you just
| speculating because the quality of games was lower? As far as I
| understand TF is hidden specifically so it can't be gamed.
| llucy3 wrote:
| In CS, the difference between high and low Trust is very
| noticeable; it's a big change when your games with silent /
| mostly-nice teammates and enemies start to become slur-fests.
| The value itself is not visible to the end-user, but its
| effects are certainly felt.
| johnisgood wrote:
| >I suspect this was because Valve was preparing to launch the
| Steam Deck, and gaben wanted to ensure that Linux users had
| better experience with the device (just a guess).
|
| Wait, how is punishing Linux users ensure Linux users have
| better experience?
|
| Interesting though.
| LanceH wrote:
| Probably meant that fixing it quickly was for the steam deck
| users. It might not have received attention otherwise.
| giantg2 wrote:
| You don't even need to cheat at COD. They are so buggy they'll do
| it for you. They'll load a gun in place of your knife in ranked.
| They clearly have a faulty case/if-else statement in the ranked
| gun loadout checker to allow that and also to default to XM4 if
| the gun shown in the load out picker isn't allowed.
|
| It's probably the only game I know of where the ranked version is
| _more_ broken than the casual version...
| 1oooqooq wrote:
| I mostly quit gaming when I realized (load times+match
| maching+updated) < time playing.
|
| and that was before drm and anti chat rootkits.
|
| imagine having to upgrade my pc just to run memory obfuscation
| sha256. whole industry is like the 80s processed food era just
| advertise, don't even matter what you're selling.
___________________________________________________________________
(page generated 2025-01-21 23:01 UTC)