假设注册表配置单元总是一样的,有多安全?

时间:2016-07-09 22:03:17

标签: c# .net windows registry

我正在编写一个控制台应用程序,允许您与注册表进行交互。应用程序以字符串path设置为空开始。当用户键入ls时,我希望它列出所有注册表配置单元(因为它们当前位于本地计算机的顶层)。然而,经过一些广泛的研究,我找不到一种方法来获取当前机器上的所有注册表配置单元。假设这些荨麻疹总是在那里有多安全?

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG

如果认为这些总是在那里是不安全的,我怎么能动态地得到它们呢?

(对不起,如果" hives"不是根级别子项的正确术语,我对处理注册表来说还不是很新)

1 个答案:

答案 0 :(得分:2)

“标准荨麻疹”已记录在案,因此不会改变。

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724877(v=vs.85).aspx

  

要打开密钥,应用程序必须提供另一个密钥的句柄   已经打开的注册表。系统定义预定义的键   永远是开放的。预定义的键可帮助应用程序导航   注册表,使开发允许系统的工具成为可能   管理员操纵数据类别。添加的应用程序   注册表中的数据应始终在框架内工作   预定义的键,因此管理工具可以找到并使用新的   数据

     

应用程序可以使用这些键的句柄作为注册表的入口点。这些句柄对注册表的所有实现都有效,但句柄的使用可能因平台而异。

HKEY_CLASSES_ROOT不是蜂巢,它是其他蜂巢的视图,但它是一个永远打开的预定义键。

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724836(v=vs.85).aspx

请参阅@Eser上面的评论,他们也在Microsoft.Win32.RegistryHive枚举中。

https://msdn.microsoft.com/en-us/library/ctb3kd86(v=vs.110).aspx