Windows 7 wow64进程中的x64模块?

Windows 7 wow64进程中的x64模块?,windows-7,module,x86,64-bit,wow64,Windows 7,Module,X86,64 Bit,Wow64,我在win7 x64上调试一个32位的小进程,我看到它按预期加载了“C:\windows\sysWow64\ntdll.dll”,但也加载了“C:\windows\system32\ntdll.dll” . 我知道x64模块和x86模块不会混合使用,但在这里它们是。。。混合… 怎么可能呢?这是WOW64的一个特殊“功能”,请参见MSDN上的。有关部分是: WOW64仿真器以用户模式运行。它提供了 32位版本的Ntdll.dll和处理器内核,以及 它拦截内核调用。WOW64仿真器包括 以下DLL:

我在win7 x64上调试一个32位的小进程,我看到它按预期加载了“C:\windows\sysWow64\ntdll.dll”,但也加载了“C:\windows\system32\ntdll.dll” .
我知道x64模块和x86模块不会混合使用,但在这里它们是。。。混合…

怎么可能呢?

这是WOW64的一个特殊“功能”,请参见MSDN上的。有关部分是:

WOW64仿真器以用户模式运行。它提供了 32位版本的Ntdll.dll和处理器内核,以及 它拦截内核调用。WOW64仿真器包括 以下DLL:

  • Wow64.dll提供了核心仿真基础设施和thunks 用于Ntoskrnl.exe入口点函数

  • Wow64Win.dll提供 Win32k.sys入口点函数的thunks

  • Wow64Cpu.dll是一个 抽象主机特性的接口库 处理器。(仅限英特尔安腾)

  • IA32Exec.bin包含x86软件 仿真器。(仅限英特尔安腾)

  • Wowia32x.dll提供了接口 在IA32Exec.bin和WOW64之间

这些DLL以及64位 Ntdll.dll版本是唯一可以加载的64位二进制文件 转换为32位进程。