@sddvxd

При компиляции undefined reference to?

Здравствуйте

Я пытаюсь узнать адрес функции из модуля NtDLL:

pOrigMBAddress_1 = (pNtCreateFile)
       GetProcAddress(GetModuleHandle("NtDLL.dll"),               // get address of original
               "NtCreateFile");


Компилятор выдает
С:\Users\...main.cpp:(.text+0x394): undefined reference to 'NtCreateFile'
collect2.exe: error: id returned 1 exit status


Так-же в коде есть такие строки, на них компилятор не ругается (находится адрес функции)

pOrigMBAddress_2 = (pMoveFileExW)
         GetProcAddress(GetModuleHandle("Kernel32.dll"),               // get address of original
                 "MoveFileExW");
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Вот этот кусок кода в функции MyNtCreateFile:
retValue = NtCreateFile(FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, AllocationSize,
                            FileAttributes, ShareAccess, CreateDisposition, CreateOptions,
                            EaBuffer, EaLength);       // get return value of original function

Напрямую обращается к NtCreateFile. Разумеется, это не будет линковаться без implib для ntdll.
Почему было бы не использовать вместо прямого обращения к функции её адрес, полученный через GetProcAddr?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы