4

win7 x64でデバッグしている小さな32ビットプロセスがあり、期待どおりに「C:\ windows \ sysWow64 \ ntdll.dll」だけでなく、「C:\ windows \ system32\ntdll.dll」も読み込まれることがわかります。
x64モジュールとx86モジュールが混在していないことは知っていますが、ここでは...混合しています...
どうすればよいでしょうか。

4

1 に答える 1

5

これはWOW64の特別な「機能」です。MSDNのこの記事を参照してください。関連する部分は次のとおりです。

WOW64エミュレーターはユーザーモードで実行されます。32ビットバージョンのNtdll.dllとプロセッサのカーネル間のインターフェイスを提供し、カーネル呼び出しをインターセプトします。WOW64エミュレーターは、次のDLLで構成されています。

  • Wow64.dllは、Ntoskrnl.exeエントリポイント関数のコアエミュレーションインフラストラクチャとサンクを提供します。

  • Wow64Win.dllは、Win32k.sysエントリポイント関数にサンクを提供します。

  • Wow64Cpu.dllは、ホストプロセッサの特性を抽象化するインターフェイスライブラリです。(Intel Itaniumのみ)

  • IA32Exec.binには、x86ソフトウェアエミュレーターが含まれています。(Intel Itaniumのみ)

  • Wowia32x.dllは、IA32Exec.binとWOW64の間のインターフェイスを提供します。

これらのDLLは、64ビットバージョンのNtdll.dllとともに、32ビットプロセスにロードできる唯一の64ビットバイナリです。

于 2012-04-17T15:45:15.667 に答える