wow64 进程中的 x64 模块? [英] x64 modules in a wow64 process?
问题描述
我有一个小的 32 位进程,我正在 win7 x64 上调试,我看到它按预期加载了C:windowssysWow64
tdll.dll",但也加载了C:windowssystem32
tdll.dll".
我知道 x64 模块和 x86 模块不混合,但在这里它们是...混合...
怎么可能?
I have a small 32bit process I'm debugging on win7 x64 and I see that it loads "C:windowssysWow64
tdll.dll" as expected, but also "C:windowssystem32
tdll.dll"
.
I know that x64 modules and x86 modules do not mix, but here they are... mixing...
How can it be?
推荐答案
这是 WOW64 的一个特殊功能",请参阅 这篇文章.相关部分是:
This is a special 'feature' of WOW64, see this article on MSDN. the relevant part is:
WOW64 模拟器在用户模式下运行.它提供了一个接口32 位版本的 Ntdll.dll 和处理器内核,以及它拦截内核调用.WOW64 模拟器包括以下 DLL:
The WOW64 emulator runs in user mode. It provides an interface between the 32-bit version of Ntdll.dll and the kernel of the processor, and it intercepts kernel calls. The WOW64 emulator consists of the following DLLs:
Wow64.dll 提供核心仿真基础设施和 thunk用于 Ntoskrnl.exe 入口点函数.
Wow64.dll provides the core emulation infrastructure and the thunks for the Ntoskrnl.exe entry-point functions.
Wow64Win.dll 提供Win32k.sys 入口点函数的 thunk.
Wow64Win.dll provides thunks for the Win32k.sys entry-point functions.
Wow64Cpu.dll 是一个抽象主机特征的接口库处理器.(仅限英特尔安腾)
Wow64Cpu.dll is an interface library that abstracts characteristics of the host processor. (Intel Itanium only)
IA32Exec.bin 包含 x86 软件模拟器.(仅限英特尔安腾)
IA32Exec.bin contains the x86 software emulator. (Intel Itanium only)
Wowia32x.dll 提供接口在 IA32Exec.bin 和 WOW64 之间.
Wowia32x.dll provides the interface between IA32Exec.bin and WOW64.
这些 DLL,以及 64 位Ntdll.dll 的版本,是唯一可以加载的 64 位二进制文件进入 32 位进程.
这篇关于wow64 进程中的 x64 模块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!