New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Apex Legends (1172470) #4350
Comments
Same here, minus the error message. It displays the Easy Anti Cheat logo, and then respawn logo, and then silently crashes to the desktop. Sometimes it crashes but Steam thinks it's still running in the background even. |
I didn't even get that... :D Pressed Play, the little update/setup dialog disappeared when it finished, but nothing happened after that... A few moments later the Play button became active again, and that's it. No message, no error, no nothing. Meh... |
I was able to get to the main menu and even setup the graphics settings. But then it looks like there is a EAC timeout. |
I had the exact same issue, EAC will throw me out yesterday. Today that I tried again seemed better but I didn't dare to play online. Other than that it had a bit of a struggle on the first launch, then Steam cached the Vulcan shades so, after that it seems that runs as good as in Windows if not better. |
Same here. After a minute or two, I get thrown out of whatever I was doing, even just the main menu. Until getting disconnected though, I can seemingly do anything just fine, whether it's the firing range or a normal match. I only tried the latter once for obvious reasons though. When I get thrown out, the game gives an error screen with "ERROR: The client is not running the anti-cheat, or has failed the anti-cheat authentication" |
Seems like something's changed, as I now can spend however much time in menu's and shooting range. A couple days ago, while testing on lutris+origin, I was being kicked out regardless of what i was doing. I'm still getting kicked out from actual games, though. |
Alright, I really tried to get this run by taking a deeper dive into Proton's functions. And I think the problem is at a missing implementation of BCrypt. If I look at Proton's Log, there are 9809 lines containing Summed up, the facts that are observable:
|
I just found a bug on Wine's bugzilla about this. It links to a commit on Wine-staging, which is only 11 days ago. I'll try to build this version now and see if Apex works there. |
Okay, then it even works less because it fails to find some DLLs of steamclient64.dll. I guess these are provided by Proton and Windows itself only. |
I'm trying to make the patch work with Proton (by just following the build/install instructions in https://github.com/ValveSoftware/Proton). The issue is that those patches are against the wine master while the Proton uses wine 5.13. I've tried to drop in wine 5.21 into Proton build: the game doesn't launch. Next thing I'll try is to backport the patchset to wine 5.13. EDIT: the patchset doesn't build cleanly with Proton - cross-compilation of bcrypt.dll fails. @Lightosk how are you testing this? |
The That bug on Wine's bugzilla is not related to the RNG. That bug is about the |
Hoping for a fix! :O |
I am pretty sure we'll see some progress on this once Linux 5.11 comes out thanks to Collabora's work on DRM compatability https://www.gamingonlinux.com/2020/10/collabora-expect-their-linux-kernel-work-for-windows-game-emulation-in-kernel-5-11 |
It's not really related to the DRM compatibility. The anticheat checks for wine specifically and treats it as one of the platforms. But the anticheat server doesn't host the driver modules for this game for the wine platform. My thoughts: EA didn't bother to set up wine support with EAC developers, or EAC developers didn't bother to develop a decent anticheat for wine. And from the wine side it's as usual: need to keep implementing windows. |
Apex Legends used to be playable on Linux for some time so I suspect it to be a case of Wine support being pulled |
Has there been any progress on getting Easy Anti Cheat and others working as the new linux kernel 5.11 is rolled out? |
It's not about the Kernel https://www.reddit.com/r/linux_gaming/comments/l6cam9/syscall_dispatch_and_kernel_511_clarification/ |
Been a couple of months, wondering on development on EAC on proton? I had a few ideas but im not a developer, im just a nerd with some ideas; If there is more info I should know about and I might just waste a couple of days testing it out. |
Hi, iv'e been trying to make this work, too. What i have found so far, is that during the install, EAC tries to download dependencies. It somehow detects the os as wine and therefore requests the 'wine' version of the EAC client. This version of the client should just be the same as the one used for windows, since thats the entire point of wine. Either EA/Respawn have specifically disabled the wine 'os' or it is an off-per-default option in eac to support wine. Now for the solution i have already tried (not very thoroughly though) and not succeeded: This is what i found in about three days of research. The infos are mainly from blogposts, logfiles and my creative thinking, but i think this should be rather accurate. Hope it helps. Here is the python script i tried with mitmproxy in case anyone is interested https://gist.github.com/leonhma/858dced671358f02187b2fa251a18850 Edit: I think it might be good to let Respawn or EAC know of this Problem and how they could fix it. |
@leonhma you know, about a week ago Valve has announced Steam Deck. It's a handheld PC that's supposed to eventually run all games of the Steam library, and it runs Arch-based Steam OS with Wine/Proton. More importantly for us, Valve mentioned in their FAQ about Steam Deck that they're working with the BattlEye and EAC anticheat developers to get support for Proton ahead of launch (2022). |
@leonhma i try to run New World and sems like it have same problem. |
@Nix-id I tried it with lutris and changed the install script so this script may not be very fitting here and would definitely require some additional work. As @ChipmunkV said, valve will probably push for Linux support by EAC with the release of Steam Deck |
There might be some hope as Epic just announced Proton support. |
Season 11 is out... did anyone test? |
Just did, no changes. EAC still not enabled. |
Ok... I guess they will wait for Steam deck. Sad :( |
It doesn't even look like they've updated EAC at all: it's still looking for the wine64 module. |
Steam deck has been delayed to Feb 2022 so maybe enabling eac for Apex delayed too |
I would not doubt if someone told me that this was the reason Steam deck was delayed, lol! |
I run steam outside of flatpak and the same error occurs so flatpak shouldn't be the issue here |
Unfortunately same problem with an older kernel. |
Thirded, though my logs look a little different. |
Logs look similar to vsahav for me |
exception code c0000409 seems to be a common theme on proton experimental when eyeing the logs. This in turn implies to a buffer security check failing for some reason or another. |
Apex Legends (1172470) Issue transferred from #7708. Compatibility Report
System Information
I confirm:
Symptoms
Reproduction
|
Same issue seen here |
I'm struggling to get a Proton log file, but same issue here on all versions of Proton I've tried. |
The game crashes with an Engine Error regarding RPak (game's data package file type) signature verification error that is not displayed because of Wine's exception handling shenanigans. |
Implemented incorrectly in proton? So that implementation in proton would need fixed before Apex works in Linux again? |
Yes, or just always return ERROR_SUCCESS from that function 😆 |
Bummer since fixing the implementation is not necessarily trivial and might take a while. |
Well, I don't have time to write a patch/nix overlay for this right now, but I might later. I found the relevant implementation of NCryptVerifySignature I think: |
I don't know if EA can do something to help on their end, but the bug was reported here for Steam Deck users https://answers.ea.com/t5/Technical-Issues/Apex-legends-bug-on-steam-deck-after-season-21-update/m-p/13707403/highlight/false#M198923 |
This comment was marked as resolved.
This comment was marked as resolved.
I would be looking out for the bug tracker respawn has, they usually add Linux/steamdeck problems there |
I have built proton with this implemented and the game launches perfectly fine |
How can I built it myself, any tips to get started ? I use arch linux |
Awesome! I'm wary about falsifying integrity checks though. Is there a chance that EAC depends on this function? |
Yeah, I'm being very careful about touching that function |
it is not dependent on that function, but I don't know whether or not it's checked |
Can you paste the diff of your change?
I'm wary about that as well, but mildly comforted by (or wishfully thinking) the idea that this is a check that happens before EAC starts looking for those things. However... it would really really suck to get banned for this while there are so many real cheaters not getting banned... so I haven't tried it yet. |
Here's the git diff for the file SECURITY_STATUS WINAPI NCryptVerifySignature(NCRYPT_KEY_HANDLE handle, void *padding, BYTE *hash, DWORD hash_size,
BYTE *signature, DWORD signature_size, DWORD flags)
{
- struct object *key_object = (struct object *)handle;
-
- TRACE("(%#Ix, %p, %p, %lu, %p, %lu, %#lx)\n", handle, padding, hash, hash_size, signature,
- signature_size, flags);
-
- if (!hash_size || !signature_size) return NTE_INVALID_PARAMETER;
- if (!hash || !signature) return HRESULT_FROM_WIN32(RPC_X_NULL_REF_POINTER);
- if (!handle || key_object->type != KEY) return NTE_INVALID_HANDLE;
-
- if (key_object->key.algid < RSA)
- {
- FIXME("Symmetric keys not supported.\n");
- return NTE_NOT_SUPPORTED;
- }
-
- return map_ntstatus(BCryptVerifySignature(key_object->key.bcrypt_key, padding, hash, hash_size, signature,
- signature_size, flags));
+ return ERROR_SUCCESS;
} As for the EAC bans, I'm being very careful and not playing until a proper fix is deployed |
Not an EAC issue for once :) EAC seems to be fine. You can find the properly downloaded Linux files from ls -la ~/.steam/debian-installation/steamapps/compatdata/1172470/pfx/drive_c/users/steamuser/AppData/Roaming/EasyAntiCheat/5dcd88f4e2094a698ebffa43438edc33/47a5a1b2e0f64748a96777920ad97fbd/
.rw-rw-r-- 83k puttehi 7 May 22:38 anticheatlauncher.log
.rw-rw-r-- 7.8M puttehi 7 May 22:38 easyanticheat_linux_x64.eac
.rw-rw-r-- 88 puttehi 7 May 22:38 easyanticheat_linux_x64.eac.metadata Some (possibly tangential, slightly unrelated) debugging notes that might help someone /shrug: My Proton log shows that there is actually an unhandled exception happening: 17249.053:0180:01cc:err:seh:NtRaiseException Unhandled exception code c0000409 flags 1 addr 0x14123e515 The SEH (Windows Structured Error Handling) exception code The flag I have no idea what "
So, VTGuard == virtual function table guard I guess? |
With EAC reporting no issue, then do you think it's safe to reasonably assume EAC will have no issue with the above function bypass? |
The following is complete speculation and should be taken with a massive grain of salt. I'm not a Wine/Proton/Windows developer. I'm not sure what it is used for (something related here), seems to be for verifying signatures (what signatures, don't know). If you bypass that, it seems like a really bad time, possibly opening you up for malware or something of the sorts. I doubt it would cause EAC bans, unless they check for known invalid signatures, testing that functionality to see if you have bypassed it. I would not bypass it simply for security reasons. |
I made a repository with a fix (I only tested going to the main menu with it). I made a slightly different fix that rejects some invalid hashes, but is still very unsafe. I probably won't be using this fix unless the bug goes unfixed for a very long time. |
Did the fix, built it, playing it. not kicked yet. At your own risk |
I went a different approch, and I have interesting results. I pulled ncrypt.dll and ntasn1.dll from a working Windows 10 install (from c:\windows\system32).
I then put them in
And launch the game with
I now have this error in my log :
Sadly, if I pull bcrypt.dll from Windows too
I have this error :
So to summerize, I'm pretty sure the signature verification by certificate in format ASN.1 is not yet implemented in wine ? Edit : |
Compatibility Report
System Information
I confirm:
Symptoms
Game launches but ends up with error message because of Easy Anti Cheat, so unplayable.
The text was updated successfully, but these errors were encountered: