2

我试图使用 AppInitHook 来挂钩WinApi。所以它工作得很好,但我只需要挂钩一些进程而不是全部。问题是如何获取加载dll的进程ID?例如,为 MyApp.exe 加载了 dll,如何获取此进程 ID?

问候!

ps对不起,我不是核心WinApi程序员,我的问题很容易,但现在对我来说很难)

4

2 回答 2

2

GetCurrentProcessId()功能。

于 2013-10-31T20:27:40.063 回答
0

要在加载 DLL 时执行某些操作,您需要定义 DllMain 函数,如下面的代码示例所示。然后,您可以在进程附加到 DLL 时获取进程 ID(也在代码示例中)。

BOOL APIENTRY DllMain(HMODULE hModule, DWORD  reasonForCall, LPVOID lpReserved)
{
    hModule; lpReserved;
    switch (reasonForCall) {
    case DLL_PROCESS_ATTACH:
    {
        uint32_t pid = GetCurrentProcessId();
        // Do something depending on the process ID in |pid|
        break;
    }
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
于 2016-08-28T17:42:49.697 回答