查看: 2063|回复: 1
收起左侧

[讨论] 注册表HKEY_CLASSES_ROOT到底是什么?

[复制链接]
落华无痕
发表于 2020-10-16 23:30:01 | 显示全部楼层 |阅读模式
本帖最后由 落华无痕 于 2020-10-17 09:46 编辑

关于HKEY_CLASSES_ROOT(HKCR)有两种说法:
为了方便,下面用缩写替代
HKEY_CLASSES_ROOT=HKCR
HKEY_LOCAL_MACHINE=HKLM
HKEY_CURRENT_USER=HKCU

1. HKCR等同于HKLM\SOFTWARE\Classes。
补充:
HKLM\SOFTWARE\WOW6432Node\Classes是HKCR\WOW6432Node的符号链接,按1这里的逻辑,又等同于HKLM\SOFTWARE\Classes\WOW6432Node


2.HKCR是HKLM\SOFTWARE\Classes和HKCU\Software\Classes的合并视图。


有些人可能发现了HKCR里也显示HKCU\Software\Classes的项。
(1)在HKLM\Software\Classes和HKCU\Software\Classes有相同项的情况下,优先显示HKCU\Software\Classes的。
(2)在HKCR下创建项时,优先在HKLM\SOFTWARE\Classes下创建,但HKCU\Software\Classes有相同项的情况下,创建失败。
(3)在HKCR下删除时,优先删除HKCU\Software\Classes。两个位置都有时,HKCR下要删除两遍。

补充:
HKCU等同于HKEY_USERS\当前用户SID(其中HKCU\Software\Classes是HKEY_USERS\当前用户SID_Classes的符号链接)

HKEY_USERS\当前用户SID
内核下路径为:
\Registry\User\当前用户SID
对应文件:
%userprofile%\NTUSER.DAT

HKEY_USERS\当前用户SID_Classes
内核下路径为:
\Registry\User\当前用户SID_Classes
对应文件:
%userprofile%\AppData\Local\Microsoft\Windows\UsrClass.dat



1.论据。
(1)已知Windows 2000之前,HKCR不显示HKCU\Software\Classes的项。

(2)在HKCU\Software\Classes\WOW6432Node下创建testhkcr时,能看到HKCR\WOW6432Node\testhkcr,但HKLM\SOFTWARE\WOW6432Node\Classes和HKLM\SOFTWARE\Classes\\WOW6432Node下看不到testhkcr。

(3)在HKCU\Software\Classes下创建testhkcr时,用火绒剑和procmon监控,会发现用reg.exe访问HKCR\testhkcr,火绒剑和procmon提示访问HKCR\testhkcr结果是“0xC0000034 [系统找不到指定的文件。  ]”或“NAME NOT FOUND”
lcl521
发表于 2020-10-22 18:58:04 | 显示全部楼层
不是低层注册信息吗好像是全局改可以考虑改他
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-4-25 11:40 , Processed in 0.115730 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表