原文:
注册表重定向 http://blog.csdn.net/is2120/article/details/7246334
32位程序读取64位注册表 http://bbs.eyuyan.com/read.php?tid=261750
注册表重定向解决办法:
32位程序如何访问64位的注册表(HKLM/Software)
Ø 在调用函数RegCreateKeyEx创建注册表项时,对其第六个参数REGSAM samDesired设置中添加参数KEY_WOW64_64KEY,这样可以实现对64位注册表的访问;
Ø 在调用函数RegOpenKeyEx打开注册表项时,要对其第四个参数REGSAM samDesired设置中添加参数KEY_WOW64_64KEY,这样可以实现对64位注册表的访问;
64位程序如何访问32位的注册表(HKLM/Software/Wow6432Node)
Ø 在调用函数RegCreateKeyEx创建注册表项时,对其第六个参数REGSAM samDesired设置中添加参数KEY_WOW32_64KEY,这样可以实现对32位注册表的访问;
Ø 在调用函数RegOpenKeyEx打开注册表项时,要对其第四个参数REGSAM samDesired设置中添加参数KEY_WOW32_64KEY,这样可以实现对32位注册表的访问;
文件重定向解决办法:
我们可以调用相关的API来关闭和打开这种转向。常用的函数有3个,Wow64DisableWow64FsRedirection(关闭系统转向),Wow64RevertWow64FsRedirection(打开系统转向),Wow64EnableWow64FsRedirection(打 开系统转向)。但是Wow64EnableWow64FsRedirection在嵌套使用的时候不可靠,所以通常用上面的 Wow64RevertWow64FsRedirection来打开文件系统转向功能。
下面简单讲讲为何会发生注册表和文件重定向:
____________________________________________________________
_____________________________________________________________
对于64位应用程序,其 文件通常被放在%windir%\system32和%programfiles%(比如:c:\program files)。对于32位应用程序,其文件通常在%windir%\syswow64和C:\program files (x86)下面。如果我们用32位程序去访问%windir%\system32,不管我们用硬编码还是其它的方式,系统都会自动地给我们转向 到%windir%\syswow64下面。这种转向对于每个32位应用程序默认都是打开的。但是这种转向对于我们来说并不总是需要的。那么我们可以调用相关的API来关闭和打开这种转向。常用的函数有3个,Wow64DisableWow64FsRedirection(关闭系统转向),Wow64RevertWow64FsRedirection(打开系统转向),Wow64EnableWow64FsRedirection(打 开系统转向)。但是Wow64EnableWow64FsRedirection在嵌套使用的时候不可靠,所以通常用上面的 Wow64RevertWow64FsRedirection来打开文件系统转向功能。
为了防止注册表键冲突,注册表在某些键也分成了两个部分。一部分是专门给64位系统访问的,另一部分是专门给32位系统访问的,放在Wow6432Node下面。当32位程序去访问某些键值的时候,和文件转向类似,系统也会自动地把程序的访问转向到Wow6432Node下面。Wow6432Node这个节 点存在于HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER下面。如果我们希望关闭这个转向的话,可以通过上面的Wow64DisableWow64FsRedirection和RegOpenKeyEx方法办到。
_________________________________________________
_________________________________________________
无论是Windows XP Professional X64 Edition、Windows Server 2003X64 Edition还是Windows Vista X64 Edition(以下把均统称为X64系统),都引入了一项技术:文件和注册表的重定向。
//z 2012-2-9 17:40:19 IS2120@CSDN
之所以有这个技术,是为了将32位程序和64位程序分离开。这种在64位平台上运行32位程序的模拟器被称为WOW64。WOW64是"Windows 32 on Windows 64"的简称,它在系统层中另提供了一层,以支持老式的32位程序。
在X64系统里面,一些特殊的目录和特殊的注册表键被分为2个独立的部分。对于文件系统来说,%systemroot%/system32 目录被保留给64位文件使用,而32位文件会被重定向到%systemroot%/SysWOW64目录。换句话说,所有的32位程序一般情况下只会出现在%systemroot%/SysWOW64目录里面。任何32位程序试图访问%systemroot%/system32 目录的企图都会被重定向到%systemroot%/SysWOW64目录。这个是一个默认的行为,除非程序的线程明确的指名需要关闭这种重定向机制。
//z 2012-2-9 17:40:19 IS2120@CSDN
对于注册表来说,也有类似的内容。WOW64子系统也提供了对注册表访问的重定向。如果是32位程序,对注册表的操作不论是读还是写, WOW64都将会截取对HKLM/Software访问,并重定向到HKLM/Software/Wow6432Node(即32位应用程序的注册信息被写在HKLM/Software/Wow6432Node中,而不是预期的HKLM/Software中);如果是64位程序,就直接到 HKLM/Software。
需要重定向的注册表项
注册表重定向,其实质就是维护两套不同的注册表键,一套用于64位,一套用于32位。受影响的键不只是上面提及的HKLM/Software,还包括:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER/Software/Classes
HKEY_LOCAL_MACHINE/Software
HKEY_USERS/*/Software/Classes
HKEY_USERS/*_Classes
其中,64位程序的注册信息存储在上面的健中,32位程序的注册信息重定向存储在下列健中:
HKEY_CLASSES_ROOT/WOW6432node
HKEY_CURRENT_USER/Software/Classes/WOW6432node
HKEY_LOCAL_MACHINE/Software/WOW6432node
HKEY_USERS/*/Software/Classes/WOW6432node
HKEY_USERS/*_Classes/WOW6432node
//z 2012-2-9 17:40:19 IS2120@CSDN
当运行32位程序,wow64会截取程序对注册表HKLM/Software的访问,并重定向于HKLM/Software/Wow6432Node。
分享到:
相关推荐
易语言读取64位注册表源码,读取64位注册表,读取32位注册表键值,读取64位注册表键值,API_Wow64DisableWow64FsRedirection,API_Wow64RevertWow64FsRedirection,API_RegOpenKeyEx,API_RegQueryValueEx,API_...
64位机器的注册表和程序库有两份,一份是给64位准备的,一份是给32位的程序准备的,默认情况下32位程序读取的只能是给32位程序准备的那份注册表,而要使用32位程序读取在64位机器上安装的64位程序,请下载资源自己看...
新版LabVIEW生成的可执行程序如果想在没有RTE环境的计算机上运行,需要把LabVIEW Run-Time下对应版本的文件夹连同可执行程序一起拷贝,同时把SysWOW64拷贝到windows/Sys WOW64文件夹下才可以使用。注册表文件是用来...
rewolf.wow64ext.v1.0.0.4
regbackup64 ... 尽管您可以使用“ ERUNT”注册表备份工具来执行在常规系统中运行它的注册表备份,但是由于RE缺少WoW64运行时,因此不支持它的执行,因此在RE中运行时不能使用它来还原备份。 32位“ ERUNT”。
微信防止测回补丁
borland 64 软件调试出错. 解决Assertion failure: (!SetThreadContext failed) in ..\win32src\thread32.cpp 问题
.NET FrameWork 4.8 已经对Github上的最新版本进行调整,可以无错运行导入Spell App.Config配置数据链接及新建数据库名称 ...运行,选择Mysql,顶端选择 Import 按钮,将会把Wow所有dbc文件导入mysql数据库!
安装npm install wowapi --save用法var wowapi = require('wowapi') 声誉 = wowapi.wowRep(player,server); console.log('rep', 声誉);杂项如果您有兴趣自行访问 WoW API,这里有一个演示 URL: : 发布历史0.0.1 ...
reg_hunter Blueteam操作分类检查注册表搜寻/取证... 请注意,您将要在64位OS上运行64位二进制文件,以便Windows WOW64重定向不会对它造成部分影响。 注册表项“ last_write_time”包含在注册表JSON日志中。 “标
来到Neder的家,加入WOW。如果你需要一些哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇呜呜呜呜呜 来到Neder的家,加入WOW。 如果您需要一点点哇,只需下载这个毫不费力地制作的chrome扩展程序,即可永久实现*。 因此,只需点击...
wow64 是在 64 位操作系统上允许 32 位程序(比如易编译的程序)执行的模拟器子系统;在 64 位操作系统中,不管你的程序是 32 还是 64 位的,其实都存在两个地址空间,正常情况下 32 位程序访问的自然是 32 位的地址...
1.用解压软件将压缩包内容解压到WOW文件夹内,即将Arctium WoW Client Launcher.exe和wow.exe放在同个文件夹内2.Click on Arctium WoW Client Launcher.exe 2.双击Arctium WoW Client Launcher.exe,等待运行完毕,...
wow64 是在 64 位操作系统上允许 32 位程序(比如易编译的程序)执行的模拟器子系统;在 64 位操作系统中,不管你的程序是 32 还是 64 位的,其实都存在两个地址空间,正常情况下 32 位程序访问的自然是 32 位的地址...
Angarr用户界面 预览(1/5/2021): 描述 专为1920x1080分辨率而设计,但是在与位置和锚点稍微干涉之后,类似的宽高比和尺寸应该... 将发行版中的Interface /和WTF /文件夹复制到Retail WoW Directory中。 将ACCOUN
wow.js文件的静态资源
css动画效果 wow插件需要的wow.min.js和animate.css
WowLua 是一个在魔兽世界里边运行 Lua 脚本的编辑工具环境,他功能包括: ...输出重定向到 WowLua 的输出窗口 WowLua 的输出窗口 /wowlua 或 /lua 打开 WowLua。 /wowluarun 或 /luarun 从命令行运行 WowLua 页面。 ...