Я играю с библиотекой для рефлексивной загрузки DLL.Вот файл, с которым у меня возникают проблемы:
https://github.com/stephenfewer/ReflectiveDLLInjection/blob/master/inject/src/GetProcAddressR.c
В последней строке:
return fpResult;
Содержит правильный полный адрес функции I.я пытаюсь получить адрес.
Когда я возвращаюсь к своей основной программе, которая выглядит следующим образом:
PVOID address = GetProcAddressR(buffer, length);
Адрес усекается до 32-разрядного числа.
0x00002023A83EFF30
превращается в
0xFFFFFFFA83EFF30
Я проверяю разборку этого и похоже, что вызывается инструкция
CDQE
, которая решает именно мою проблему.Тем не менее, я не уверен, где в приведенном выше файле вызывает что-либо из этого.