【问题标题】:How to call winapi function via pointer to this function?如何通过指向该函数的指针调用winapi函数?
【发布时间】:2013-05-14 13:22:09
【问题描述】:

我从ntdll.dll动态获取函数,使用GetProcAddress这样的winapi函数:

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

如何通过 ptrToNtLoadDriver 调用 NtLoadDriver 函数?我想到了这样的事情:((NTSTATUS NtLoadDriver(PUNICODE_STRING driverServiceName))ptrToNtLoadDriver)(fooString)

【问题讨论】:

    标签: c++ call dllimport dllexport


    【解决方案1】:
    1. 对要调用的函数类型执行 typedef "X"(例如:"typedef returntype (*X)(argtype);")
    2. 将“unsigned char* ptrToNtLoadDriver”更改为“X ptrToNtLoadDriver”
    3. 调用函数为“ptrToNtLoadDriver(argsHere)”

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-12-21
        • 2019-04-20
        • 1970-01-01
        • 2015-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-18
        • 1970-01-01
        相关资源
        最近更新 更多