7 ms·
This is extremely wild to me. AMD literally made an "internal cheat" for cs2. This is a widely known guaranteed ban and likely among most people (if you modify
by filterfiber 3y ago
This is extremely wild to me.
AMD literally made an "internal cheat" for cs2. This is a widely known guaranteed ban and likely among most people (if you modify the game engine then you get banned). Even with weak anticheat like VAC.
This means AMD didn't work with valve at all on this feature, a feature I assume both parties would be interested in. This would be one of the biggest esport games for the anti-lag feature that amd could advertise as supporting.
On top of not contacting valve, they had the expertise to do this, but somehow didn't realize they would get banned?
Somewhat hilariously there's no way they did this for valorant - that game wont even launch if you have debug tools open (unless amd is so dense they worked around that).
- unethical_ban 3y agoI still hope they unbanned players who were hit by this - my opinion is that players should be expected to know the internal workings of anti-lag or of VAC, and that AMD is a big enough player in the market for people to "just trust" with drivers. This isn't some random mouse or keyboard software from Alibaba.
- filterfiber 3y agoThey certainly will if they haven't already. Last I heard they were waiting for amd to fix their code before they unban people. This is the third false-VAC since the cs2 beta. First was a unprotected yaw command (no commands should get you vacced unless they're protected by sv_cheats), windows 7 users, and now amd anti-lag+. Although in the case of AMD, this is definitely not valve's fault. They detected exactly what they're supposed to.
- flerchin 3y agoExcept they didn't make a cheat at all? They applied smart engineering and reduced lag for players.
- briffle 3y agoyes, by manipulating running code from another process. I'm actually quite amazed no AV software immediately stopped it.
- johntb86 3y agoParts of the graphics driver is loaded into the application process (as a DLL), so it's not quite that suspicious. But once they start modifying the application code itself, that's when the problem happens.
- mananaysiempre 3y agoNit: AFAIU there is no literal modification of machine code going on—instead the import address table (IAT, the Windows counterpart of Linux’s GOT) is patched (the Windows tradition calls this “detoured”, from the quite popular Microsoft hack[1] that does it). [1] https://github.com/microsoft/Detours https://github.com/microsoft/Detours
- adamrezich 3y agoaren't graphics drivers generally given free reign to do pretty much whatever?
- paulmd 3y agodrivers are a black box, yes, but in this case, the driver is trying to get the game to act in a certain specific way, and it needs to either have these calls added to the game engine, or it needs to inject itself and rewrite the game code (detouring) dynamically at runtime. reflex and antilag basically work by flipping the vsync model around. instead of "render a frame -> wait for the monitor to be ready to draw", it's "wait -> render". And by dynamically adjusting the wait time, you can have the frame ready at the last possible moment before the monitor is ready. This means game state is $WAIT_TIME milliseconds fresher, and you've reduced latency by that amount. well, that means you have to have some method to control when the game starts doing the game loop. So you have to be inside the engine somehow - either you have a WAIT_FOR_REFLEX() in the code, or you grab control of the frame queue and don't return control until you're ready, and you just block until the right moment. AMD injected that part.
- paulmd 3y agoYes, but, the way their antilag works is identical to a cheat - it's actually hooking/detouring the game's own functions, which any anticheat will see as an obvious hack. NVIDIA's Reflex actually requires that it be integrated into the game code by developers (which they then provide) rather than trying to inject itself dynamically, but AMD wanted to have "works in every game!" as a selling point. Which would also be fine if they had talked to any of the developers and gotten their "cheat" whitelisted, but they didn't do that. Which is the bizarre part. OK, you have a cool thing you can inject into the game code... but you can't inject anything without bringing developers/anticheat in on the release. And literally everyone from the most basic modder upwards knows this. Gotta be real, real careful about what you inject into games with anticheat, or you'll eat a ban. Even stuff like reshade is a no-no - it's perfectly harmless, but the anticheat doesn't know that. This is basically "reflex as reshade" and has all the same problems around anticheat.
- whalesalad 3y ago> but AMD wanted to have "works in every game!" as a selling point. you make it sound like this is a bad thing?
- paulmd 3y agomarketing around half-baked features that get you VAC banned is not really ideal, no. kinda gives the impression that the marketing was given more focus than the product. it's also a very rookie mistake, like, you have to think it's either someone brand new they hired in, or someone more experienced really dropped the ball on devrel/etc. This is a situation where they absolutely should have known that they should talk to the gamedevs in advance.
- whalesalad 3y agoAt some point you gotta do the thing and ruffle feathers and get/force buy in. I don't see anything inherently wrong with this approach. Shoot first, ask questions later. It's a successful strategy most of the time. Wrangling all game developers is arguably an impossible task. Building a one size fits all solution is not. Just because it flagged by some anticheat doesn't mean it's failed.
- baq 3y agoGraphics drivers do this all the time. Shipping architecture-optimized shader replacements is basically required nowadays.
- filterfiber 3y agoTo my understanding the graphics drivers modify the rendering pipeline after the draw calls are made, they don't actually hijack code within the game and modify it's logic. Developers of games add api calls to their game engines for things like antilag/nvidia reflex, that if enabled will notify the driver and allow them to do their thing before returning back to an unmodified game. You do not modify the internal game state - that's a straight red line. There's lots of places you _can_ generally hijack, such as the final rendering calls which is how most overlays work. I don't think whitelisting drivers is common either for the same reason cs2 doesn't allow userland applications to be whitelisted - you can potentially hijack that application instead and then your cheats will be whitelisted.
- kabdib 3y agoModifying the game code is a red line, too. I don't think that VAC allows this at all, and for good reason.
- grishka 3y ago> Shipping architecture-optimized shader replacements is basically required nowadays. That's strange to me. Why care at all about what individual games do? A GPU driver includes a shader compiler anyway, why can't it do a good enough job at optimizing the shader for the particular GPU architecture? It's kinda the same reason almost no one writes assembly any more, because modern compilers are so good at generating optimized machine code.
- baq 3y agoBecause a studio has a deal with nvidia but then AMD or Intel also want the triple-A game to perform well on their hardware, for example.
- filterfiber 3y agoFrom the game's perspective this was a cheat. The anti-cheats job is to make sure nobody tresspasses with the game logic. They modified where methods returned to so they could run their own code before returning to the game. VAC cannot determine if this was a bhop-wallhack or an anti-lag feature. It just sees that someone modified the game. This is like walking up to someone's building and spray painting a mural without permission. No matter how innocent or well intentioned it is - internal modification is a red line.
- rat9988 3y agoBeing caught by an anti cheat doesn't make you a cheat. This a false positive.
- filterfiber 3y agoSo yes it is a false positive, but it's not the type VAC is concerned about. What AMD did was like crossing the DMZ. It doesn't matter who you are or what your intentions are. It's not possible for normal applications to do this unless they're specifically trying to. You cannot cross the DMZ without special permission, and even then it's more likely valve adds it directly to the engine instead. There's more "accidental" type of detections which would be false positives too - but this is a clear line in the sand AMD crossed. --- There is no anti-cheat that will let you do this. You contact valve and work with them to add support in engine. What AMD did was insane.