32 位应用程序在 Windows 10 中不显示某些文件

问题描述 投票:0回答:1

我正在开发一个库,用于从可移植可执行格式的文件中获取信息。

对我来说重要的是该库可以在 32 位和 64 位模式下运行。

在测试过程中,我使用了硬路径,例如:L"C:\Windows\System32 toskrnl.exe”来显示导出函数的列表。

在 Windows 10 中,我发现在管理员模式下,我的 32 位应用程序在尝试打开现有文件时返回错误代码 2 (ERROR_FILE_NOT_FOUND),而 64 位应用程序成功打开该文件。

在另一台计算机上的 Windows 7 中,两个应用程序均成功打开此文件。

此外,我发现Windows 10上的许多应用程序,特别是Total Commander、winhex、x32dbg、ollydbg,在System32文件夹中看不到很多文件。

我可以通过在文件系统中跳转来从磁盘读取它们,有没有更简单的方法?

windows 32bit-64bit createfile
1个回答
0
投票

Mark Rotteveel 提到,Windows 64 (WOW64) 上的 Windows 对某些文件系统(例如 C:\Windows\System32、C:\Program Files)目录和注册表项(例如 HKLM\Software、HKCU\Software)执行自动重定向适用于在 64 位系统上运行的 32 位程序。

可以通过调用 Wow64DisableWow64FsRedirection 关闭文件系统重定向,然后使用 Wow64RevertWow64FsRedirection

重新启用

对于注册表,RegOpenKeyEx 函数中有一个标志 (KEY_WOW64_32KEY),用于查看注册表的 32 位视图。

© www.soinside.com 2019 - 2024. All rights reserved.