禁用 XP SP2+ 的 FQP 要求?

Syn*_*ech 5 windows-registry windows-explorer path file-types windows-xp

我终于屈服并决定将 XP 更新到 SP3。关于 SP2+ 困扰我并让我推迟这么长时间的一件事是,它需要文件类型和资源管理器动词的完全限定路径。

例如,在 SP1 中,您可以执行以下操作:

REGEDIT4

[HKCR\txtfile\shell]
"@"="Notepad2"

[HKCR\txtfile\shell\Notepad2]
"@"="notepad2.exe %1"
Run Code Online (Sandbox Code Playgroud)

假设它notepad2.exe在路径中,那么您可以通过直接运行它或从其上下文菜单中选择Notepad2来打开文本文件。

在 SP2+ 中,这将不起作用,而是显示打开方式...对话框。要修复它,您必须使用可执行文件的完全限定路径:

[HKCR\txtfile\shell\Notepad2]
"@"="e:\tools\editors\text\notepad2\notepad2.exe %1"
Run Code Online (Sandbox Code Playgroud)

此更改(使PATH变量基本上毫无意义)是添加到 SP2 的Great Security Update的安全增强功能,它的意义在于它可以防止路径注入攻击。

然而,这样做的麻烦多于其价值,因为如果病毒可以修改您的系统路径变量,那么它已经可以访问系统并可以为所欲为。而且,它只影响资源管理器;从命令提示符运行的东西仍然像以前一样工作。此外,它仅适用于命令;也就是说,如果infectednotepad.exe在路径中,以下仍然有效:

"@"="e:\tools\misc\shellexecute.exe /c infectednotepad.exe %1"
Run Code Online (Sandbox Code Playgroud)

这种变化并没有真正提供任何额外的安全性;相反,它所做的只是让用户不得不花费数小时在可以注册文件类型、应用程序和资源管理器动词的 6-10 个不同位置中的每一个中扫描注册表,搜索不合格的路径并替换每个和每一个(仅替换主条目HKCR是不够的,因为其他位置的级别会使问题复杂化和混淆)。

此外,微软显然意识到他的“功能”毫无意义,因为他们在 Vista 中删除了它。在 Windows 7 中,第一个示例的工作方式与 SP1 中的一样。

“修复”这些项目对于已经配置并使用了任何时间的系统来说可能是一项不可逾越的任务,尤其是在添加了第三方程序的情况下。

有没有办法关闭这个“功能”并让PATH变量再次发挥作用?

i33*_*36_ 0

  1. 启动进入安全模式。

  2. 导出整个注册表。

  3. 关闭电脑。

  4. 在另一个框中,编写正则表达式或简单脚本来扫描令牌并插入 FQP。

  5. 再次以安全模式启动,导入修改后的注册表配置单元。

  6. 交叉手指并重新启动。