я имею 32bit
приложение, которое работает на 64bit
Windows (WOW64).
Мне нужно знать адреса нескольких WinAPI
функции от kernel32.dll
,
А может легко получить адрес функции в 32bit
kernel32.dll
: GetProcAddress
работает хорошо.
Но Windows предоставляет разные kernel32.dll
за 32bit
а также 64bit
приложения (или библиотеки, сопоставленные с разными адресами в адресном пространстве приложения — я точно не знаю).
И адрес WinAPI
функция в 32bit
приложение не такое, как в 64bit
приложение.
Как я могу получить адреса функций от 64bit
kernel32.dll
с помощью 32bit
приложение?
Я не хочу запускать отдельный 64bit
процесс просто узнать адреса необходимых функций.
Я не думаю, что вопрос имеет смысл. Из-за ASLR вы можете спросить «каков адрес функции, когда DLL загружена в мой процесс (*)», и вы не можете загрузить 64-битную DLL в 32-битный процесс.
(*) Может случиться так, что ответ в настоящее время одинаков для каждого процесса, запускаемого после конкретной загрузки, но я уверен, что API поддерживает другой адрес для kernel32.dll
для каждого процесса.
(Также, конечно, 64-битное значение, вероятно, будет намного больше, чем уместится в 32-битном указателе.)
Других решений пока нет …