I’m not finding any information online other than that it’s difficult
I hope not. I hope it never does. Windows users are weird enough not giving a shit about installing rootkits on their computer. We don’t want this in Linux. What computer is worth compromising just for some game to determine whether or not you’re cheating at it?
Did you know that most big anti cheat systems actually do run in Wine when allowed to by the developer?
Yeah but that doesn’t count tbh, if the dev has to give the okay we lose a ton of games, and that isn’t what I’m looking for, the dev shouldn’t be able to know it isn’t running on windows
You can’t lose what you never had, though. ;-)
User space level anticheat yes,kernel anticheat no and I actually happy about ,kernel level anticheat behaving literally like malware/rootkit
Kernel level anticheat that thinks it’s kernel level and runs in userspace is the best of both worlds though, is it not?
No, because then you can just run software cheats at kernel level which would be completely undetectable to userspace anti cheat
So? I just want the games to run, I don’t care about that side of it at all, that side of it is essentially pointless to me. There were always workarounds anyway, what does it matter?
At that point you might as well not have a kernel level anti cheat and companies who insist on kernel level anti cheat will block wine. The only solutions I see are
- Developers mainly use server side anti cheat
- They make native Linux games
- Distros provide a way to ensure a untainted (signed) kernel
That would ba a massive win in my book, kernel level anticheat is malware.
make it so that they can’t block wine without blocking windows and kernel level anticheat is gone
You cannot realistically make it impossible to detect that you’re running on wine. Wine just implements the Windows ABIs. The actual code running is totally different. Even just reading any of the binary code of literally any function would reveal it’s different from the Windows code. How are you going to stop it from doing memory reads on stuff that it needs to be able to read? You can’t. You’d need a full hardware emulator for that.
IIRC Most major anti-cheat platforms not using kernel -level support linux these days. The SteamDeck forced their hand.
The problem is the developers. They have the ability to specifically block Linux and that’s only going to change once enough people use it. As for kernel level that’s an entirely different can of worms and I’m fine just not playing those games.
Will wine ever be able to run antiCheat.
I hope not. I switched to Linux to get away from malware and spyware.
WINE Is Not an Emulator (that’s what the acronym actually stands for).
At a program level, WINE creates a dummy Windows directory structure, slaps files where an exe expects them, and executes the program.
EXEs (well, all programs) will use system calls to request resources (ie. files, access to hardware like GPUs, data from other processes) which Windows maps to certain areas of memory and has its own protocols for how to handle requests. Linux has its own protocols and methods that are incompatible, hence why Windows and Linux apps can’t run natively together.
Then the magic happens: WINE maps these requests to Linux requests so that the running program is none the wiser. It asks for GPU resources like a Windows app would, then gets those resources back just like a Windows app would expect. There are thousands of edge cases, hundreds of system calls, and a bunch else that complicates things but that’s how WINE (and Proton) works.
The reason this fucks up Kernel-level anticheat is that it isn’t trying to communicate via these established channels. They usually operate with full resources outside of the jurisdiction of your OS, and scan your memory bit-by-bit rather than asking the OS politely via system calls for info on other processes.
With WINE, whilst a typical application will not notice the differences they’re designed to not throw a fit if your underlying OS is configured differently, a kernel anticheat will not even recognise the system as a valid OS even if it was able to run in the first place.
The solution here is systems like EasyAC that give up the benefits of being able to analyse processes at the kernel level in favour of portability. Another potential solution (though unlikely imo) is a cross-platform kernel anticheat protocol, that all major operating systems agree to implement, similar to how operating systems will implement the TCP/IP protocol to communicate across networks regardless of underlying OS.
Now the reason "WINE"s acronym is particularly important is that if it DID emulate windows, as in what most virtual machine providers do, then anticheat would be running in an environment mapped out like a real Windows install - because it is. This is how many Linux gamers prefer to run certain titles, and something that should always be functional. It is much more annoying to maintain, However - balance how much you really wanna play the latest COD with your willingness to debug GPU passthrough shit.