2013-05-14 146 views
1

我得到的功能從ntdll.dll動態,使用GetProcAddress WINAPI函數是這樣的:如何通過此函數的指針調用winapi函數?

HMODULE ntdllh = LoadLibrary(L"ntdll.dll"); 
unsigned char* ptrToNtLoadDriver 
         = (unsigned char*)GetProcAddress(ntdllh, "NtLoadDriver"); 

如何通過ptrToNtLoadDriver調用NtLoadDriver功能?我想過這樣的事情:((NTSTATUS NtLoadDriver(PUNICODE_STRING driverServiceName))ptrToNtLoadDriver)(fooString)

回答

1
  1. 做的typedef 「X」 爲你想調用函數類型(例如: 「typedef的返回類型(* X)(argtype);」)
  2. 變 「無符號字符* ptrToNtLoadDriver」 到 「X ptrToNtLoadDriver」
  3. 呼叫功能爲 「ptrToNtLoadDriver(argsHere)」
0

((NTSTATUS(WINAPI *)(PUNICODE_STRING))ptrToNtLoadDriver)(fooStrin);