IT之家 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 协议的默认网络浏览器的路径如下:WindowsRegistryEditorVersion5.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\UserChoiceHKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoiceHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\pdf\UserChoice临时修改方案Kolbicz 在一篇博文中解释说,虽然不能卸载驱动程序,但可以在注册表中禁用它。该驱动程序固然无法卸载,但可以禁用。
在以管理员权限打开的 PowerShell 窗口下,输入以下命令,然后重启生效:New-ItemProperty-Path“HKLM\SYSTEM\CurrentControlSet\Services\UCPD”-Name“Start”-Value4-PropertyTypeDWORD-Force这就恢复了 SetUserFTA 的功能,但遗憾的是需要管理权限和重启。Gunnar Haslinger 在一篇博文中解释说,在 \Microsoft\Windows\AppxDeploymentClient 下新创建的 "UCPD velocity" 计划任务会在服务禁用时自动重新启用。因此,禁用驱动程序的唯一方法是通过注册表关闭它,并删除 / 禁用计划任务。参考
0 评论