首页 > 其他分享 >Wow64知识

Wow64知识

时间:2022-10-16 11:57:00浏览次数:47  
标签:调用 重定向 Windows 32 知识 64 Wow64 注册表

为了在windows 64位系统上运行32位用户态程序,Windows操作系统有一个Wow64子系统来转换处理32位程序的调用请求。

当32位程序调用api接口时,32位接口会去调用64位的ntdll,如果存在指针,那么会把指针转化为8字节,从内核返回后,又会将64位指针转化为32位的。

 

还有 文件系统重定向以及注册表重定向需要注意。

在64位系统上,如果32位程序访问系统盘下 Windows\System32路径,那么会默认转换到Windows\SysWOW64路径下,也就是说要在Windows\System32目录下存放文件时,会默认存储到Windows\SysWOW64路径下,System32路径下是64位的系统dll,SysWOW64路径下是32位的系统dll。

要想关闭文件系统重定向可以使用如下API接口

BOOL WINAPI Wow64DisableWow64FsRedirection(_Out_ PVOID * OldValue);

传入一个指针,用于保存原来的值,方便之后恢复,调用上面函数后就关闭了文件系统重定向。

现在就可以在真实的system32位目录下存取文件了,执行完自己的操作后需要恢复文件系统重定向,使用如下API

BOOL WINAPI Wow64RevertWow64FsRedirection(_In_ PVOID OlValue);

传入调用Wow64DisableWow64FsRedirection返回的数据,就可以恢复了,注意这两个API需要配套使用。

注册表重定向指的是32位程序访问HKEY_LOCAL_MACHINE\SOFTWARE时会自动重定向到HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node下。

如果需要指定访问32位的注册表还是64位的注册表,那么需要在调用RegCreateKeyEx时指定标志位,如下:

KEY_WOW64_64KEY   如果32位程序想打开64位注册表,可以使用此标志。

KEY_WOW64_32KEY   如果64位程序想打开32位注册表,可以使用此标志。

 

标签:调用,重定向,Windows,32,知识,64,Wow64,注册表
From: https://www.cnblogs.com/ps12345678/p/16795880.html

相关文章

  • 关于数据库的一些基础知识,不总结就会忘
    之前在Mac上安装了MySQL5.7版本,最近想连接数据库看看之前的数据还在不在,结果发现初始密码给忘了。这可怎么办,别着急,从头开始来吧 1.打开终端,输入mysql-uroot-p然后......
  • 知识点学习掌握-集合
    集合Arraylist与LinkedList的区别​ ArrayList是一个动态数组,但对数据的增加和删除比较复杂,它是基于索引的数据接口,随机访问较为便捷,它的底层是数组,是非同步的。​ Link......
  • Java:语言相关知识
    版本新功能5泛型、枚举、自动装拆箱、foreach循环、可变参数静态导入(无需指定类名,直接调用静态结构,前提是导包)内省6:GUI7switch-字符串泛型集合:泛型实例化类......
  • 【数据库】oracle初学知识点详解!
    一、关系数据库基础(20)1.关系型数据库基本知识:关系模型以及模型的层次结构:数据库系统、数据库管理系统的基本概念及其基本组成;E-R图;关系数据库设计数据库系统的概念:数据库......
  • AI\ML,数字孪生,知识图谱,数据湖,元宇宙......
    AI\ML,数字孪生,知识图谱,数据湖,元宇宙.....,各种新名词层出不穷,应接不暇。不过也是好事,说明这个行业蓬勃发展,百花齐放,百家争鸣。在这些纷繁复杂的现象背后,还是要看到实物的......
  • 内容付费与知识经济
    以前在IBM时,在IBMdeveloperworks上发表文章是被计入绩效评分的,所以大家动力比较足,一篇文章往往会精雕细琢,要有一点理论,还要配备例子,截图,搞得和发论文一般。当然,这样雕琢......
  • 基本类型拓展知识
    浮点数拓展浮点数分为float和double浮点数所表示出来的数是有限的,是接近数但是不等于数;所以浮点数是不能用来作比较的作比较可以用BigDecimal(教学工具类)publicclassS......
  • Baklib分享|知识管理是企业发展的风向标
    管理家彼得·德鲁克(1994)认为,“技术与流程并不在商业管理的实质上,而在于让知识更有效。”在一个以知识为基础的社会里,一个公司依靠知识进行创新的能力,就是其在竞争中所具有的......
  • Baklib|构建在线客户服务,产品知识库至关重要
    随着人工智能时代的来临,企业服务领域中的人工智能应用越来越迫切,对智能服务机器人的需求也随之出现。同时,随着用户体验需求的不断提高,传统企业客户服务部门往往陷入某种自我......
  • 项目1 数据库基础知识【简单易懂】
    目录​​1.数据库是什么?​​​​2.用户可以对数据库执行什么操作?​​​​3.什么是数据库管理系统?​​​​4.什么时候会用到数据库应用程序?​​​​5.一个数据库服务器可以管......