You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Parker Stephens 9d91df84b1
Update README.md
Fixed missing "%" after WINDIR, causing explorer not to recognize folder location
3 years ago
..
.gitignore win: fbc: implement wrapper for key injection 4 years ago
README.md Update README.md 3 years ago
framework.h win: nvfbcwrp: add sniffing and custom data spoofing code 4 years ago
nvfbcbody.asm win: fbc: 32bit compat code 4 years ago
nvfbcdefs.h win: nvfbcwrp: add sniffing and custom data spoofing code 4 years ago
nvfbcwrp.def win: fbc: implement wrapper for key injection 4 years ago
nvfbcwrp.sln win: fbc: implement wrapper for key injection 4 years ago
nvfbcwrp.vcxproj win: nvfbcwrp: add sniffing and custom data spoofing code 4 years ago
nvfbcwrp.vcxproj.filters win: nvfbcwrp: add sniffing and custom data spoofing code 4 years ago
nvfbcwrp.vcxproj.user win: fbc: implement wrapper for key injection 4 years ago
nvfbcwrp_main.cpp win: nvfbcwrp: add sniffing and custom data spoofing code 4 years ago
pch.cpp win: fbc: implement wrapper for key injection 4 years ago
pch.h win: fbc: implement wrapper for key injection 4 years ago

README.md

nvfbcwrp

Wrapper for NvFBC64.dll library which injects private keys into NvFBC_CreateEx calls in order to enable NvFBC on customer-grade hardware (like GeForce cards) for all NvFBC-targeted applications. It should work at least with applications built with Nvidia Capture SDK versions 5.0 to 7.1.

Usage

  1. Obtain nvfbcwrp64.dll and nvfbcwrp32.dll files. You may build them yourself with MSVS 2019 or download latest release here: nvfbcwrp64.dll, nvfbcwrp32.dll.
  2. Backup your %WINDIR%\system32\NvFBC64.dll and %WINDIR%\SysWOW64\NvFBC.dll files.
  3. Rename file %WINDIR%\system32\NvFBC64.dll to %WINDIR%\system32\NvFBC64_.dll
  4. Rename file %WINDIR%\SysWOW64\NvFBC.dll to %WINDIR%\SysWOW64\NvFBC_.dll
  5. Rename nvfbcwrp64.dll and put it to %WINDIR%\system32\NvFBC64.dll (on the original place of renamed NvFBC64.dll library).
  6. Rename nvfbcwrp32.dll and put it to %WINDIR%\SysWOW64\NvFBC.dll (on the original place of renamed NvFBC.dll library).
  7. Restart any applications using this library. That's it.

This procedure has to be repeated after any driver reinstall/update, so keep your copies of nvfbcwrp64.dll and nvfbcwrp32.dll files.

Advanced Usage

nvfbcwrp allows user to capture and replay privateData used by other NvFBC applications (like GeForce Experience, Shadow Play and so on). It may be useful if built-in privateData will render invalid for some reason. Wrapper recognizes two environment variables:

  • NVFBCWRP_DUMP_DIR - output directory for dumps of privateData sent by applications.
  • NVFBCWRP_PRIVDATA_FILE - name of file with privateData which should be used instead of default built-in vector. These files can be produced as output of NVFBCWRP_DUMP_DIR option. If file is not found or can't be loaded, default magic vector is used.

Hence, if default magic baked into nvfbcwrp doesn't work for you, you have to:

  1. Specify environment variable NVFBCWRP_DUMP_DIR in your configuration with path to existing writable directory. Here is a guide about environment variables edit. It's sufficient to add "user" environment variable.
  2. Run some NvFBC application with valid privateData keys and initiate recording session.
  3. Grab some output file and specify it's path in NVFBCWRP_PRIVDATA_FILE. At this point you can unset NVFBCWRP_DUMP_DIR to stop privateData capture.

3rd-party software

For some software (e.g Steam) it is also needed to add registry value to use NvFBC, which you can do by running:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm" /v NVFBCEnable /d 1 /t REG_DWORD /f

(reboot / driver restart required to take effect)