Skip to content

Disables the "Unsupported Hardware" message in Windows Update, and allows you to continue installing updates on Windows 7 and 8.1 systems with Intel Kaby Lake, AMD Ryzen, or other unsupported processors.

License

xdanx/wufuc

 
 

Repository files navigation

wufuc

English | русский | Français | Deutsch | Magyar | Português Brasileiro | Italiano | Español

Disables the "Unsupported Hardware" message in Windows Update, and allows you to continue installing updates on Windows 7 and 8.1 systems with Intel Kaby Lake, AMD Ryzen, or other unsupported processors.

Downloads

Preface

The changelog for Windows updates KB4012218 and KB4012219 included the following:

Enabled detection of processor generation and hardware support when PC tries to scan or download updates through Windows Update.

These updates marked the implementation of a policy change they announced some time ago, where Microsoft stated that they would not be supporting Windows 7 or 8.1 on next-gen Intel, AMD and Qualcomm processors. This was essentially a big middle finger to anyone who decides to not "upgrade" to the steaming pile of 💩 known as Windows 10, especially considering the extended support periods for Windows 7 and 8.1 won't be ending until January 4, 2020 and January 10, 2023 respectively.

Some people with older Intel and AMD processors are also affected!

I've received user reports of the following CPUs all being blocked from receiving updates:

Bad Microsoft!

If you are interested, you can read my original write up on discovering the CPU check here.

Features

  • Enables Windows Update on PCs with unsupported processors.
  • Written in C, the best programming language. 😎
  • Completely free (as in freedom) software.
  • Does not modify any system files.
  • Byte pattern-based patching, which means it will usually keep working even after new updates come out.
  • Absolutely zero dependencies.

How it works

Basically, inside a system file called wuaueng.dll there are two functions responsible for the CPU check: IsDeviceServiceable(void) and IsCPUSupported(void). IsDeviceServiceable simply calls IsCPUSupported once, and then re-uses the result that it receives on subsequent calls. My patch takes advantage of this behavior by patching a couple of boolean values and basically making Windows Update think that it has already checked your processor, and the result was that it is indeed supported.

  • The installer registers wufuc as a custom Application Verifier provider.
  • When a svchost.exe process starts, the Windows PE loader automatically loads wufuc into its virtual address space.
  • After that, wufuc will then check the command line of the process it was loaded into, then install some API hooks when appropriate:
    • LoadLibraryExW hook will automatically patch wuaueng.dll as soon as it is loaded.
    • RegQueryValueExW hook is necessary to provide compatibility with attempts by other third-parties at bypassing the CPU check. (see issue #100)
  • If wufuc gets loaded by a svchost.exe process that isn't related to Windows Update, it goes into a dormant state and no hooks are applied.

How to deploy wufuc using Group Policy

There is a tutorial on the Advanced Installer website that explains how to do this.

How to use unattended feature in the batch setup scripts

install_wufuc.bat and uninstall_wufuc.bat both support two command line parameters that can be used alone, or combined to change the behavior of the scripts:

  • /NORESTART - Automatically declines rebooting after the setup finishes.
  • /UNATTENDED - Skips all prompts for user interaction, and automatically restarts unless /NORESTART is also specified.

These must be used from an elevated command line prompt.

What to do if you get stuck on a black screen with just a cursor after the Windows boot animation

This will happen if wufuc somehow manages to crash the svchost.exe process that is responsible for displaying the login screen. Normally this should never ever happen, because wufuc goes dormant in svchost.exe processes that are unrelated to Windows Update. I have only encountered this during development with very unstable code, or by causing it intentionally.

However, just in case this does happen to someone, here is how to fix it:

  1. Boot into Safe Mode with Command Prompt.
  2. In the command prompt type regedit and press enter.
  3. Navigate to the key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
  4. Expand the Image File Execution Options tree.
  5. Locate the svchost.exe sub key, right-click it and press Delete.
  6. Reboot.
  7. You should be able to log in normally again.
  8. If this happens to you, please report it in the issues tab so I can try to figure out what is causing the crash!

Sponsors

The installer packages are created with Advanced Installer using an open source license. Advanced Installer's intuitive and friendly user interface allowed me to quickly create a feature complete installer with minimal effort. Check it out!

Special thanks

About

Disables the "Unsupported Hardware" message in Windows Update, and allows you to continue installing updates on Windows 7 and 8.1 systems with Intel Kaby Lake, AMD Ryzen, or other unsupported processors.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 98.9%
  • Other 1.1%