Несовместимое оборудование в Windows 7/ Server 2008 R2

Многие пользователи, с недавнего времени стали получать заглушку с уведомлением «Несовместимое оборудование. Ваш компьютер оборудован процессором для последней версии Windows». Данное уведомление возникает при попытке загрузить на компьютер свежие обновления безопасности, сразу после того, как вы установили туда новый процессор.
Зайдите в репозитарий:
https://github.com/zeffy/wufuc
Скачайте программу и установите, теперь данная заглушка вас не будет беспокоить. Наслаждайтесь.
Как это работает
Вкратце, в файле под названиемwuaueng.dllесть 2 функции:IsDeviceServiceable(void)иIsCPUSupported(void).IsDeviceServiceable(void)по сути просто обертка надIsCPUSupported(void), которая кэширует полученный результат и переиспользует его при последующих вызовах. Мой патч использует это поведение, исправляя несколько логических значений и в основном заставляя Windows Update думать, что он уже проверил ваш процессор, и в результате он становится поддерживаемым.
Программа установки регистрирует wufuc в качестве настраиваемого поставщика Application Verifier.
Когда процесс
svchost.exeзапускается, загрузчик Windows PE автоматически загружает wufuc в свое виртуальное адресное пространство:- Перехват
LoadLibraryExавтоматчиески патчитwuaueng.dllпри загрузке. - Перехват
RegQueryValueExWнеобходим для обеспечения совместимости с попытками других средств обойти проверки ЦП. (см. вопрос #100).
- Перехват
Если wufuc загружается процессом
svchost.exe, не связанным с Центром обновления Windows, он переходит в состояние покоя и никаких перехватов не применяется.