Friday, October 13th 2023

Enabling AMD Anti-Lag+ in Counter Strike 2 Will Get You Banned

With the release of AMD Software Adrenalin drivers version 23.10.1 WHQL, AMD has added Anti-Lag+ support for Counter Strike 2, but it appears that this will only result in a VAC (Valve Anti-Cheat) ban. Apparently, the Anti-Lag+ feature is implemented by detouring engine dll functions, and any tampering with CS code will result in a VAC ban.

Valve was keen to note that once AMD ships an update, it will work on identifying affected users and reversing the ban. Luckily, the Anti-Lag+ technology only works on Radeon RX 7000 series RDNA 3 graphics cards, so it could be a limited number of Counter Strike 2 players. The issue comes as a surprise considering that Anti-Lag+ has already been implemented in various games, including competitive ones like Apex Legends, PUBG: Battlegrounds, Fortnite, and others, and only has issues with Counter Strike 2 and its VAC system. Hopefully, AMD will fix the issue pretty soon and we will keep an eye out for an update.
Source: Counter Strike 2 Twitter
Add your own comment

102 Comments on Enabling AMD Anti-Lag+ in Counter Strike 2 Will Get You Banned

#26
sLowEnd
That's quite the blunder from AMD. Especially for a popular game like CS2, this is horrible for their reputation, and 100% self inflicted.
Posted on Reply
#27
Makaveli
On this driver and been playing CS2 on it however saw no need to enable Anti lag+ so good here.

Hopefully they get it fixed shortly.

Posted on Reply
#28
LabRat 891
AFAIK VAC bans are irreversible and account-wide.
This appears to potentially have caused thousands of $ in damages to users.

This is insane!

Edit:
Posted on Reply
#29
sLowEnd
LabRat 891AFAIK VAC bans are irreversible and account-wide.
This appears to potentially have caused thousands of $ in damages to users.

This is insane!
It's not irreversible. Valve has made an official statement on the matter already, but it is a pain in the ass for affected users.

Posted on Reply
#30
LabRat 891
sLowEndIt's not irreversible. Valve has made an official statement on the matter already, but it is a pain in the ass for affected users.

A young(er)-and-dumb(er) me, had 1st Hand Experience with VAC bans;
they were permanent, account-wide, and 110% irreversible.

Glad Valve is addressing it.

Edit:
I'm not wrong, by official terms.

The bans are *not* 'issued incorrectly'. injection is a hack.
AMD forced Valve's hand; this is spicy!
Posted on Reply
#31
Dr. Dro
tabascosauzUhhhhhhhh yikes? Reflex + boost are natively available as a toggle in CS2 settings, and neither will enabling NULL in NVCP get you banned.

But given that Reflex SDK also requires game support to work, this isn't very surprising from Anti-Lag+ being recent as it is, and surely Valve and AMD will get together to fix this in due time.
Special K can inject Nvidia Reflex onto any game, quite handy. Bad idea for MP games for the same reason, SK is a DLL.
LabRat 891A young(er)-and-dumb(er) me, had 1st Hand Experience with VAC bans;
they were permanent, account-wide, and 110% irreversible.

Glad Valve is addressing it.
Still are, but Valve has issued unfair bans for false positives in the past and the VAC developers always had the capability to revoke an account ban at their discretion. Said accounts are marked as unbanned rather than never banned, however.
raddeonClearly cs 2 is bugged, they even ban people using windows 7.
I'm using anti lag + and did not get banned, so it looks like it is completely random.
I doubt the game runs unmodified on Windows 7, it's an unsupported version of Windows (read: unknown and untested DLLs for the engine), and with Valve killing Windows 7 support in two months you'd imagine people would have stopped insisting on it...

If you have not been banned yet you will be. VAC is not a proactive anti-cheat, it's reactive and it bans in waves. It'll flag your account and it'll be banned at a random time in the future.
Posted on Reply
#32
Solaris17
Super Dainty Moderator
LabRat 891The bans are *not* 'issued incorrectly'. injection is a hack.
say it louder. Its against terms and EULA and AMD is in the wrong. You can't tamper with system files (in memory or no). Dems the rules.
Posted on Reply
#33
Dr. Dro
Solaris17say it louder. Its against terms and EULA and AMD is in the wrong. You can't tamper with system files (in memory or no). Dems the rules.
My biggest problem with this isn't even that it's against the rules, it's that this is incredibly unsanitary and unsafe, it's done with no regard for proper DLL architecture, system stability or good programming practices.

It's a dirty hack of the likes a graphics driver should never do, and it proves this released untested, unverified and was programmed as poorly as it could have been. It's just inexcusable imo.

AMD could easily have released a SDK and worked in conjunction with Valve for a proper, clean implementation. But they didn't even bother communicating with Valve! It's not like CS is a small game or anything.

Muppets, as mentioned above is a polite word to describe the level of unprofessionalism we're seeing here and this is why I lost trust in them over time.
Posted on Reply
#34
natr0n
Played cs2 other night with bots. Game is bad... no hit markers and bullets pass through enemy but you die instantly.
Posted on Reply
#35
tabascosauz
natr0nPlayed cs2 other night with bots. Game is bad... no hit markers and bullets pass through enemy but you die instantly.
bots are literally lobotomized in cs2, you picked the worst frame of reference in history :roll: hit markers?

but yes, there's a bunch of changes that people generally do not like coming from csgo
Posted on Reply
#36
ir_cow
I was at 4ping yesterday. didn't even know you could go that low.
Posted on Reply
#37
tabascosauz
Dr. DroSpecial K can inject Nvidia Reflex onto any game, quite handy. Bad idea for MP games for the same reason, SK is a DLL.
Doesn't seem like that much of a loss to me, Reflex is mostly advertised for high framerate competitive games anyway. I wouldn't be crying over its absence in DCS but I sure want it in cs2. I stay far away from Special K, a lot of devs have a nebulous software/cheating policy and don't want to be caught by surprise.
Posted on Reply
#38
ir_cow
tabascosauzbots are literally lobotomized in cs2, you picked the worst frame of reference in history :roll: hit markers?
They just stand still for me. Take out the whole team by yourself with a pistol.
Posted on Reply
#39
Solaris17
Super Dainty Moderator
Dr. DroIt's a dirty hack of the likes a graphics driver should never do
Yup agreed. In this case I can imagine the process being like the following.

Valve and AMD will work together. While an argument might be made by some that VAC shouldnt have gotten angry, the reality is this isnt a chicken or egg problem. AMD touched the naughty bits and VAC did what it was supposed to.

To handle the actual bans first, its important to know what is likely going to happen. In most cases these are finger printed in some way.

Some valve SDE is going to boot up CS2 in debug mode. and run the AMD implimentation. Debug mode isnt a game mode in this context. It is a compile of the game with debugging options enabled that they will be allowed to poke prob and see things that are usually removed in production.

When they do this, VAC will ban the debug instance, but will spit out some error info. Maybe something like

Faulting executable : cs2.exe
At memory address: 0x0000088712
Stack trace: 0x-7A, 0x067
Faulting Module: AMD_driverinjection.dll

From here they will look at the memory snapshot of the debug build and figure out what the driver is manipulating. Once they figure it out they will move on to step two, but it will end the same way. The reversal of the bans.

To do that isn't going to be rocket science. Instead they will create a rule like

{
// Random definition file for closed source ban engine

memaddress= 0x0000088712
exe=cs2.exe
cause=AMD_driverinjection.dll
checksum=madeupnumbertoconfirmexeisntnamedsomethingrandom

getmemAddress_function = called_address

if {
%exe% fault =1 & %memaddress%=%called_address

do {

check %checksum% & cause contains *AMD_*
}

then {

(no ban) or (reverse ban)
}

else{

banned
}
}
}

The actual thumbprint used will very greatly based on step two. Valve and AMD will need to chat.

Either:

Valve denies the modification outright and AMD needs to find a different way or a different implementation.

or

Valve concedes because nothing malicious is happening and allows it with guidance to AMD to change there hooking procedure so it touches a select part of the files or memory heap.

They decide that but Valve is definitely going to be the boss here. For AMD users, it should also be mentioned that this is the VAC system responding to a modification to CS2 that has not been ok'd. This feature may not affect any other games even if they are protected by VAC. That doesnt mean it wont, but contextually its important to understand that each game is different, and as such allowances in one may not be allowed in another. That also works in reverse, and in other games outside the steam eco system, such as DRM with another studio or engine. This has really /always/ been the case though.

With that said, GPU drivers have access and push buttons in kernel space (yes thats not just a linux thing) and touching things in kernel space (even in the linux world) is something that most companies, developers and security people consider big no no's. While drivers work at the kernel level for performance, and because of the hardware access, doing things that manipulate user space (like a video game) are generally frowned upon.

Driver improvement, DO generally happen at such a low level, by handeling calls to the GPU. The driver will look to see who the caller is (the game executable) and may handle the request different because of oddities observed. Thats normal. BUT that is generally a 1 way street. In this case it seems like AMDs driver reached out of kernel space into user space and modified bits in memory. This triggers VAC and this is poor practice.


This is also heavily watered down. Kernel, user space and driver relations are a very complex topic and so is security so writing 3 paragraphs is more then a consolidation.
Posted on Reply
#40
Jism
HisDivineOrderAMD really needs to spend money on their software team to make money on their cards, but once again Lisa just doesn't care about the discrete GPU business except in doing the absolute bare minimum to keep Radeon a brand that can sell APU's.
You have no idea what you talk about. The whole anti-lag thing hooks into the game's DLL. Vac's anticheat considers that as injecting and thus altering the game files.
Posted on Reply
#41
tabascosauz
ir_cowThey just stand still for me. Take out the whole team by yourself with a pistol.
probably didn't change much, except console commands for bot difficulty do not work so they're stuck lobotomized for the time being


something something 2023 unfinished game something something
Posted on Reply
#42
natr0n
tabascosauzbots are literally lobotomized in cs2, you picked the worst frame of reference in history :roll: hit markers?

but yes, there's a bunch of changes that people generally do not like coming from csgo
I dont really play cs games so yeah. wanted to check it out

Simple bf4 type game is what im used to
Posted on Reply
#43
R-T-B
LabRat 891The bans are *not* 'issued incorrectly'. injection is a hack.
They aren't the first tool or driver to use injection. Not getting it whitelisted though is a big, super bad, mistake. Colossal level especially considering it's with one of the biggest anticheat solutions around.
Solaris17say it louder. Its against terms and EULA and AMD is in the wrong. You can't tamper with system files (in memory or no). Dems the rules.
intercepting calls is nothing new though. And I really doubt any enforcable EULA could ban that. WINE is basically nothing but custom coded dll intercepts. And dxvk is ENTIRELY built upon an intercept of dxgi.dll. Are we banning steamdeck users now? (This is part of why I hate anticheat, anyone who says "yes" to this is basically killing open source).
Solaris17Valve and AMD will work together. While an argument might be made by some that VAC shouldnt have gotten angry, the reality is this isnt a chicken or egg problem. AMD touched the naughty bits and VAC did what it was supposed to.
Yes, which is why the fuckup is here:

Not the coding style, that they did not even talk to valve to get this whitelisted.
Solaris17This is also heavily watered down. Kernel, user space and driver relations are a very complex topic and so is security so writing 3 paragraphs is more then a consolidation.
I'll admit I am primarily not a kernel-level code programmer, but isn't the issue more AMD's lack of communication to the anticheat vendors moreso than the actual way they coded it? I know both are considered poor practice, but one seems a much larger sin than the other, as far as making a working product goes.
Posted on Reply
#44
Hardware1906
AssimilatorAMD once again proving they do zero testing before they ship things.
they actually tested it, post the driver before the twitter post showcase AntiLag+ in CS2 and 20 hours after AMD showcase, Valve addressed the issues
20 hours LOL
beside it works on other games so why not CS2?
R-T-BWe need not speculate there. It isn't. VAC seems the only anticheat upset.
VAC is upset to almost anything, before the untrusted update of CSGO we can freely stream the game using OBS and Discord, now you have to add "-allow_third_party_software" in launch options before launching the game to do it
Posted on Reply
#45
Solaris17
Super Dainty Moderator
R-T-Bmoreso than the actual way they coded it?
We'll never know. If we did it would undermine the function, but in a lot of cases they are using heuristics to look at behavior as well. It could be as simple as unauthorized address space, the behavior of the manipulation. Or both.
Posted on Reply
#46
Makaveli
ir_cowI was at 4ping yesterday. didn't even know you could go that low.
I see good pings on fiber also 6-11ms on most of the servers I connect to.
Posted on Reply
#47
Dr. Dro
tabascosauzDoesn't seem like that much of a loss to me, Reflex is mostly advertised for high framerate competitive games anyway. I wouldn't be crying over its absence in DCS but I sure want it in cs2. I stay far away from Special K, a lot of devs have a nebulous software/cheating policy and don't want to be caught by surprise.
Oh no nebulous anything policy, it's legitimate and completely open source, just a lot and I mean a lot of past drama on the Steam forums

(I just realized you were talking about the anticheats lol, never mind me, it's 2:20 AM and I have insomnia)
Posted on Reply
#48
Broken Processor
I wear my 22 year old vac ban with pride welcome to the club.
Posted on Reply
#50
R-T-B
Solaris17We'll never know. If we did it would undermine the function, but in a lot of cases they are using heuristics to look at behavior as well. It could be as simple as unauthorized address space, the behavior of the manipulation. Or both.
I was asking about what we DO know, as in that they use injection period.
Posted on Reply
Add your own comment
Jan 17th, 2025 23:54 EST change timezone

New Forum Posts

Popular Reviews

Controversial News Posts