<1>64位操作系统上的注册表
<2>文件系统重定向
<3>UAC
<4>注册表重定向
<5>SysWoW64
<6>注册表存放位置
<7>注册表跟环境变量
<1>64位操作系统
在64位的操作系统中有64位版本的注册表编辑器以及32版本的注册表编辑器,64版本的注册表在C:\Windows\regedit.exe,32位版本的在C:\Windows\SysWow64\regedit.exe。
注册表中的内容主要分为系统配置文件,用户配置文件。
通过cmd打开注册表编辑器的方法
运行:Regedit(这个表示的是64位的注册表编辑器)
运行:%windir%\SysWOW64\regedit或者%systemroot%\syswow64\regedit(这个表示32位的注册表编辑器)
默认情况下只能打开一个注册表编辑器,如果要打开多个注册表编辑器的话,需要在命令后面加入参数 m,如:%systemroot%\syswow64\regedit -m
<2>文件系统重定向
%windir%\System32文件夹是为64位的应用程序保留的,多数Dll文件并没有在其创建64位的版本时候改变名字,因此32位版本的dll被存储在一个不同的文件夹中。WOW64通过文件系统重定向来隐藏这一不同。
通常,当一个32位的应用程序试图访问%windir%\System32文件的时候,访问被重定向到%windir%\SysWOW64。访问%windir%\lastgood\system32的时候被重定向到%windir%\lastgood\SysWOW64。访问%windir%\regedit.exe被重定向到%windir%\SysWOW64\regedit.exe。
如果访问会导致系统显示UAC提示,重定向不会发生。取而代之的是,64位版本的所请求的文件的启动。为了避免这个问题,可以指定SysWOW64文件目录以避免重定向并确保访问的32位版本的文件。或用管理员权限来运行32位应用程序,从而不显示UAC提示。
<3>UAC
UAC是 useraccount control(用户账户控制)的缩写,是微软在windows Vista 和win7中引用的新技术,主要功能是是进行一些影响系统安全的操作时候会自动的触发UAC,用户确认后才能继续执行。
大部分的恶意软件、木马病毒、广告插件在进入计算机时都会有如:将文件复制到Windows或Program Files等目录、安装驱动、安装ActiveX等操作,而这些操作都会触发UAC。能够触发UAC的操作包括:修改Windows Update配置;增加或删除用户帐户;改变用户的帐户类型;改变UAC设置;安装ActiveX;安装或卸载程序;安装设备驱动程序;修改和设置家长控制;增加或修改注册表;将文件移动或复制到Program Files或是Windows目录。
<4>注册表重定向
创建键KEY_LOCAL_MACHINE\software\vc++此时打开64bit的注册表会在KEY_LOCAL_MACHINE\SOFTWARE\Wow6432node中看到vc++键。如果通过32bit版本的注册表打开,将会在KEY_LOCAL_MACHINE\SOFTWARE中找到vc++键。
<5>SysWow64
SYsWow64 是 Windows 32bits onWindows 64bits的缩写,是个Windows操作系统的子系统,64位的操作系统运行32位的程序都是通过这个子系统的。
<6>注册表存放位置
配置单元是注册表中的项,子项的逻辑组合,它提供了备份注册表中数据的支持文件。每一个新的用户登录到计算机时,一个新的配置单元就会为该用户而被创建,配置单元是基于跟用户属性相关的单独文件。这就是所谓的用户属性配置单元。用户的配置单元包含与用户的应用程序设置,桌面环境,网络连接和打印机特定的注册信息。用户配置文件配置单元都位于HKEY_USERS键。
注册表文件有以下两种格式:标准的和最新的。标准格式是它也支持更高版本的向后兼容性的Windows版本Windows 2000支持的唯一格式。最新的格式支持开始使用Windows XP。在支持最新格式的Windows版本,下面的配置单元仍然使用标准格式:HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE\ SAM,HKEY_LOCAL_MACHINE\Security和HKEY_USERS\DEFAULT;其它所有配置单元使用最新的格式。
大多数的配置单元的支持文件都在%SystemRoot%\ SYSTEM32 \Config目录。这些文件在用户每次登录时更新。在这些目录中的文件的文件扩展名,或在某些情况下,缺乏延伸的,表示数据所包含的类型。
Registry hive |
Supporting files |
HKEY_CURRENT_CONFIG |
System, System.alt, System.log, System.sav |
HKEY_CURRENT_USER |
Ntuser.dat, Ntuser.dat.log |
HKEY_LOCAL_MACHINE\SAM |
Sam, Sam.log, Sam.sav |
HKEY_LOCAL_MACHINE\Security |
Security, Security.log, Security.sav |
HKEY_LOCAL_MACHINE\Software |
Software, Software.log, Software.sav |
HKEY_LOCAL_MACHINE\System |
System, System.alt, System.log, System.sav |
HKEY_USERS\.DEFAULT |
Default, Default.log, Default.sav |
<7>注册表跟环境变量
系统环境变量:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Environment
用户环境变量:HKEY_CURRENT_USER\Environment
%SystemRoot%,%windir%,%temp%等变量的形式是%xxx%,其中%表示变量的意思。这些东西在注册表中也都能看到。例如%SystemRoot%表示Windows安装文件夹,如果系统是在C盘安装,那么就是C:\Windows,%windir%等同%SystemRoot%。
位置:在注册表的如下位置可以找到SystemRoot的值。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
参考文献:
http://msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms724877(v=vs.85).aspx
Windows 注册表