2013-05-14 91 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);