Nukem9 / dlssg-to-fsr3

Adds AMD FSR 3 Frame Generation to games by replacing Nvidia DLSS-G Frame Generation (nvngx_dlssg).
GNU General Public License v3.0
4.33k stars 159 forks source link

Readme needs a warning about potential for getting banned with that registry edit. #178

Open OopyDoopy opened 10 months ago

OopyDoopy commented 10 months ago

It would be insane for anticheat to not have a problem with disabling the file signature requirement for the driver. If you can't implicitly trust the driver to execute trusted code, you're opening the door to so much shit. Idk if anticheat would outright ban people for just this change, but in my mind this is a huge red flag for anticheat and isn't something to play around with.

I suggest warning users and making the suggestion that they disable the registry edit when done. It would suck if people got banned in games they aren't even trying to mod.

haze0exe commented 10 months ago

So is there chances of getting banned for just disabling the file signature?? without even using the dlss to fsr3 mod??

Z4ndyz commented 10 months ago

This should be completely safe because this is not modifying the gamefiles nor injecting something, this just disables a driver level check that has no connection to the game, the registry edit just makes it so that nvidia loads any dlss dll, if you modify the default dll of the game it's already your way to a ban but if you dont modify anything to the multiplayer game(which you dont with the registry edit) then nothing basically happens, the game itself doesn't check the check happens on the driver side.

If you could get banned for random registry edits then you'd be banned for anything would make no sense

haze0exe commented 10 months ago

Yea thats what i thought

OopyDoopy commented 10 months ago

This should be completely safe because this is not modifying the gamefiles nor injecting something, this just disables a driver level check that has no connection to the game, the registry edit just makes it so that nvidia loads any dlss dll, if you modify the default dll of the game it's already your way to a ban but if you dont modify anything to the multiplayer game(which you dont with the registry edit) then nothing basically happens, the game itself doesn't check the check happens on the driver side.

If you could get banned for random registry edits then you'd be banned for anything would make no sense

It's not a random registry edit, it's a very specific one, and one that allows the driver to execute...anything.

It's like leaving your door unlocked because you have a security system. It makes zero sense to do that. We're in a world where some anti cheat requires TPM and Secure Boot to be enabled, it's hardly a leap to assume that anti cheat will care about whether the driver requires signed code.

As you said though, anticheat could be okay with it and only care if the DLLs are signed or not, but if I were designing anticheat, I would absolutely care if the graphics driver was even capable of executing unsigned code. It's a huge vulnerability if someone finds a way to sidestep your security measures.

Nooblet16 commented 10 months ago

From what I'm reading, according to Easy Anti Cheat and BattleEye (the two most common anti cheat), Driver Signature Enforcement (which in layman's term is Windows verifying the drivers are signed by trusted source) is required

https://www.easy.ac/en-us/support/game/issues/errors/ https://www.battleye.com/support/faq/

That said when we disable the nvidia signature, we're effectively asking Windows to ignore the nvidia driver signature. Whether that leads to problem with anti cheat or not...I don't know, as the anti cheat is referring to the signature verification windows does, rather than verifying the driver signature by itself.

ramonsantana commented 10 months ago

From what I'm reading, according to Easy Anti Cheat and BattleEye (the two most common anti cheat), Driver Signature Enforcement (which in layman's term is Microsoft verifying the drivers via a digital signature) is required

https://www.easy.ac/en-us/support/game/issues/errors/ https://www.battleye.com/support/faq/

So we should probably reenable it every time we want to play a multiplayer game.

Driver signature, not a registry edit that only “allows” you to run an unsigned driver or file.

Nukem9 commented 10 months ago

DisableNvidiaSignatureChecks.reg is safe for multiplayer games. DLL modification is not safe for multiplayer games. The registry file doesn't interfere with normal Windows operation. It is Nvidia specific. So you're going to ask, what's its purpose and why does it exist?

Why?

Purpose?


For most games, this security is useless. You can casually drop dxgi.dll or d3d12.dll (e.g. ReShade) into folders and games will happily load those DLLs, signature or not. If you're in an environment where security is of utmost importance, you probably shouldn't be playing games in the first place.


Anti-cheats banning users for simple registry edits would be completely insane. It'd be equivalent to banning people for using outdated graphics drivers. Could an insane developer ban you for it? Sure. Is it likely to happen? No.

EAC & BattlEye don't care for dumb registry tweaks. They intercept the Windows DLL loader code and whitelist/blacklist DLLs as they see fit.

Nooblet16 commented 10 months ago

Thanks for the explanation. Makes sense.

OopyDoopy commented 10 months ago

I appreciate the explanation, but it really still sounds like a risk to me. Maybe a small one, but still a risk. I still think it's worthy of a warning, but that's obviously at your discretion and I do feel a bit better knowing it's just that one dll that can be overridden, similar to DX DLLs.

That said, I don't really accept the argument that it's "just a registry tweak". There are all kinds of things you can tweak that you really really shouldn't. I'd expect anticheat to simply tell you at launch if they want the setting enabled, but I'm not willing to put my faith in every single anti cheat developer making perfectly sane choices all the time (hell some anti cheat even make you disable security features on your PC, which is bonkers to me), so global security changes like this raise red flags for me.

Let's not forget that we just had the problem of a setting in the AMD driver causing bans in CS2. I know the situations aren't mechanically comparable, I'm just using it to dismiss the notion that "simple settings" can't cause bans.