深挖:微軟二月 Windows 10 / Windows 11 更新阻止軟件 / 注冊表方式修改默認網絡瀏覽器
4 月 8 日消息,微軟今年 2 月面向 Windows 10 用戶推送 KB5034763 更新、面向 Windows 11 用戶推送 KB5034765 更新,其中一項調整是阻止用戶使用軟件或者修改注冊表方式,配置系統的默認瀏覽器。
IT之家 3 月 26 日已經報道過這個問題,現在關于這個問題的更多細節被披露。IT 顧問 Christoph Kolbicz 率先發現微軟的這項調整,安裝 2 月更新之后導致其 SetUserFTA 和 SetDefaultBrowser 程序無法正常使用。
SetUserFTA 是一個命令行程序,可讓 Windows 管理員通過登錄腳本和其他方法更改文件關聯;SetDefaultBrowser 的工作原理類似,但只能用于更改 Windows 中的默認瀏覽器。
背景介紹
微軟自 Windows 8 系統開始就引入了新的安全機制,為了防止惡意軟件和惡意腳本篡改,將文件擴展名、URL 協議與默認程序關聯起來。
微軟的這一新機制,將文件擴展名或 URL 協議關聯,存儲在 UserChoice 注冊表鍵值下。
例如,分配給 HTTPS URL 協議的默認網絡瀏覽器的路徑如下:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice]
"ProgId"="ChromeHTML"
"Hash"="N3eikAB1HhI="
如果未使用正確的哈希值,Windows 將忽略注冊表值,并使用該 URL 協議的默認程序,即 Microsoft Edge。
Kolbicz 逆向設計了這種 Hashing 算法,創建了 SetUserFTA 和 SetDefaultBrowser 程序來更改默認程序。
2 月新調整
不過 Windows 10 和 Windows 11 系統安裝 2 月更新之后,Kolbicz 注意到這些注冊表鍵值現在已被鎖定,在 Windows 設置之外修改時會出現錯誤。
例如,使用 Windows 注冊表編輯器修改這些設置時會出現錯誤,提示“無法編輯哈希值:錯誤寫入值的新內容”。
經過進一步研究,Kolbicz 發現微軟在二月份的更新中引入了一個新的 Windows 過濾驅動程序(c:\windows\system32\drivers\UCPD.sys)。
該驅動程序被稱為 "用戶選擇保護驅動程序",加載后可防止直接編輯與 HTTP 和 HTTPS URL 關聯以及 .PDF 文件關聯相關的注冊表鍵值。
相關的注冊表鍵值是:
HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice
HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\pdf\UserChoice
臨時修改方案
Kolbicz 在一篇博文中解釋說,雖然不能卸載驅動程序,但可以在注冊表中禁用它。
該驅動程序固然無法卸載,但可以禁用!
在以管理員權限打開的 PowerShell 窗口下,輸入以下命令,然后重啟生效:
New-ItemProperty -Path “HKLM\SYSTEM\CurrentControlSet\Services\UCPD” -Name “Start” -Value 4 -PropertyType DWORD -Force
這就恢復了 SetUserFTA 的功能,但遺憾的是需要管理權限和重啟。
Gunnar Haslinger 在一篇博文中解釋說,在 \Microsoft\Windows\AppxDeploymentClient 下新創建的 "UCPD velocity" 計劃任務會在服務禁用時自動重新啟用。
因此,禁用驅動程序的唯一方法是通過注冊表關閉它,并刪除 / 禁用計劃任務。
相關閱讀:
《部分 Win10 用戶反饋安裝微軟 2 月更新后,第三方工具無法調整 URL 關聯》
參考