wow64进程中的x64模块?

时间:2012-04-17 15:39:26

标签: windows-7 module x86 64-bit wow64

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

1 个答案:

答案 0 :(得分:5)

这是WOW64的一个特殊“功能”,请参阅MSDN上的this article。相关部分是:

  

WOW64模拟器以用户模式运行。它提供了一个接口   32位版本的Ntdll.dll和处理器的内核,以及   它拦截内核调用。 WOW64模拟器由   以下DLL:

     
      
  • Wow64.dll提供核心仿真基础架构和thunk   用于Ntoskrnl.exe入口点函数。

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

  •   
  • Wow64Cpu.dll是一个   提取主机特征的接口库   处理器。 (仅限Intel Itanium)

  •   
  • IA32Exec.bin包含x86软件   模拟器。 (仅限Intel Itanium)

  •   
  • Wowia32x.dll提供了界面   在IA32Exec.bin和WOW64之间。

  •   
     

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