首页
社区
课程
招聘
[原创][Windows核心编程]32bit程序在64bit操作系统下处理重定向细节_注册表操作[2]
发表于: 2009-5-22 00:58 4899

[原创][Windows核心编程]32bit程序在64bit操作系统下处理重定向细节_注册表操作[2]

2009-5-22 00:58
4899
在阅读此文章之前,可以先阅读之前的文章

[Windows核心编程]32bit程序在64bit操作系统下处理重定向细节[1]
http://bbs.pediy.com/showthread.php?p=625419#post625419

最近又有一个32bit的程序需要在Windows 64bit操作系统下对注册表操作进行兼容。
  经过实践,在此写下心得。
  备注: 此32bit的程序是 DELPHI 程序

1> Delphi程序的TRegistry类无法对KEY_WOW64_64KEY 兼容。也就是说,TRegistry.Create(KEY_WOW64_64KEY or KEY_ALL_ACCESS) 这样是无效的。

2> SHDeleteKey这类Shellapi 对 KEY_WOW64_64KEY 不兼容。也就是说就算你关闭重定位机制,也无法对64bit的注册表操作。一律全部重定位到Wow64xxx 的位置。
    这是因为这类API没有KEY_WOW64_64KEY这个标志为的设置

3> 针对RegDeleteKeyEx这类带有Ex的注册表函数,不管你是否显示关闭和打开重定位机制,只要在参数设置KEY_WOW64_64KEY 或者 KEY_WOW32_32KEY 就可以直接操作 64BIT 或者 32BIT的注册表了。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
心得不多啊,比1k党还少
2009-5-22 01:08
0
游客
登录 | 注册 方可回帖
返回
//