Skip to content
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

Sign the DLLs #18

Closed
fredemmott opened this issue Jul 11, 2024 · 8 comments
Closed

Sign the DLLs #18

fredemmott opened this issue Jul 11, 2024 · 8 comments

Comments

@fredemmott
Copy link
Collaborator

fredemmott commented Jul 11, 2024

This is related to #17

Most games with anti-cheat will refuse to load DLLs that are unsigned; this includes iRacing, and also games that people don't want to use OXRMC with, if the layer is enabled (even if inactive). In this case, the OpenXR loader will not simply skip the layer - it will entirely fail, so the game can not enter VR - it will stay non-VR, stall, crash, or exit depending on the game.

This does not require EV code signing, or a business/LTD/LLC/DBA/other local equivalent legal entity. My recommendations are:

@fredemmott
Copy link
Collaborator Author

To clarify, this is not a requirement of the OpenXR standard or the OpenXR loader; anti-cheat software generally modifies the LoadLibraryA()/LoadLibraryW() and similar functions to add this requirement, which in turn changes the behavior of the OpenXR loader.

@BuzzteeBear
Copy link
Owner

Thank you again for your advice!
I am aware of the unsigned binary issue and will look into potential solutions.
I don't think it's an issue in iRacing as other users reported it as working fine for them. But ofc that could potentially change with any upcoming update, if the developer decides to enforce a check.

@fredemmott
Copy link
Collaborator Author

My guess is that someone who works at iRacing uses your layer, and adds it to the whitelist shortly after they update their installation of your layer; that would explain why the report you have is shortly after a new release.

again though, this doesn’t just affect sim games: if I want to play a competitive VR FPS with anti-cheat, I must entirely disable or uninstall the layer, because the issue occurs when the loader tries to load the DLL, not when it attempts to modify the game behavior. My point here isn’t “I should be able to use OXRMC in those games”, but that I shouldn’t need to enable/disable layers on a per-game basis every time I switch between them.

@zerxen
Copy link

zerxen commented Sep 8, 2024

I would like to morally support this issue here as I just realized today that I am for months saving money for a motion platform to play in VR my favorite game WarThunder (and learned today via a different xr layer from xrnecksaver's projects dlls) that the anti-cheat system in WarThunder will silently disable all XR layers that are not properly signed...

was there progress on this issue since OP? Or do we need to start a fundraiser to get it signed by a CA here?

@BuzzteeBear
Copy link
Owner

I put in some effort and made progress towards having the binaries signed. I found a certificate provider, set up a GitHub workflow to ensure code provenance and successfully tested it with a preliminary test certificate. However I'm still waiting for final approval for the production certificate.

@zerxen
Copy link

zerxen commented Sep 9, 2024

I put in some effort and made progress towards having the binaries signed. I found a certificate provider, set up a GitHub workflow to ensure code provenance and successfully tested it with a preliminary test certificate. However I'm still waiting for final approval for the production certificate.

Many many thanks! May I ask which provider you choose? And if free/paid ? Just out of curiosity and understanding if this will be a recurring issue in future dll releases, since I assume they are signing compiled binaries.

@embrum
Copy link

embrum commented Sep 17, 2024

I believe this issue was causing EA WRC to not launch. Uninstalling OXRMC fixed the launch issue. This started after EA implemented kernel level anti-cheat. Many thanks if you get these binaries signed!

@BuzzteeBear
Copy link
Owner

Starting with 0.3.9.0 oxrmc will be published with signed binaries

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants