-1

Windows(WOW64)32bitで実行されるアプリケーションがあります。からいくつかの関数64bitのアドレスを知る必要があります。WinAPIkernel32.dll

の関数のアドレスを簡単に取得できます。うまく機能し32bit kernel32.dllます。GetProcAddress

しかし、Windowsはさまざまなアプリケーションkernel32.dll(またはアプリケーションアドレス空間のさまざまなアドレスにマップされたライブラリ-正確にはわかりません)を提供します。また、アプリ内の関数のアドレスはアプリ内と同じではありません。32bit64bitWinAPI32bit64bit

アプリを64bit kernel32.dll使用して関数のアドレスを取得するにはどうすればよいですか? 必要な機能のアドレスを知るためだけに32bit別のプロセスを起動したくありません。64bit

4

1 に答える 1

1

質問に意味はないと思います。ASLR のため、「DLL が自分のプロセスにロードされたときの関数のアドレスは何ですか(*)」と尋ねることしかできず、64 ビット DLL を 32 ビット プロセスにロードすることはできません。

(*) 現在、特定のブート後に実行されるすべてのプロセスで答えが同じである可能性がありますが、API はkernel32.dllプロセスごとに異なるアドレスをサポートしていると思います。

(もちろん、64 ビット値は、32 ビット ポインターに収まるよりもはるかに大きい可能性があります。)

于 2015-12-21T12:37:34.893 に答える