我们有一个应用程序,我们称之为“App A”,当您运行它时会检查注册表以查看是否安装了另一个应用程序,我们称之为“App B”。它通过搜索HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
任何DisplayName
等于“App B”的条目来做到这一点。
现在,App A 实际上并不需要 App B 才能正常运行,我们已经失去了在我们的系统上安装 App B 的能力。所以我的问题是...
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\App A
使用适当的显示名称创建注册表项是否有任何后果?我认为这可以通过包含以下内容的 *.reg 文件来完成...
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\App 1]
"DisplayName"="App 1"
您当然可以这样做来伪造已安装的应用程序。
鉴于此处的信息: https ://devblogs.microsoft.com/oldnewthing/20040709-00/?p= 38493 添加条目时唯一的强制值是 DisplayName 和 UninstallPath。
如果需要,您还可以设置 SystemComponent DWORD 值以在“程序和功能”中的应用程序列表中隐藏该应用程序。所以以下会很好: