SetWindowsHookEx DLL卸载

时间:2016-11-09 16:49:10

标签: c++ winapi dll-injection

我正在使用SetWindowsHookEx将dll注入另一个进程。但是,当注射器程序退出时,dll将从另一个进程卸载。反正我有没有停止卸货?基本上,无论注射器程序是否仍在运行,我都希望dll能够永久保留。如果我能够从dll中增加dll引用计数,那可能会有效。但我还没找到办法。

1 个答案:

答案 0 :(得分:2)

存在2种方式 1.)最有效 - 使用LdrAddRefDll - 这正是你所需要的最短的方式。你需要使用ntdll.lib(或ntdllp.lib)进行链接。

LdrAddRefDll(0, (HMODULE)&__ImageBase);

2)不好又有效但工作

WCHAR sz[MAX_PATH];
if (GetModuleFileName((HMODULE)&__ImageBase, sz, RTL_NUMBER_OF(sz)))
{
    LoadLibrary(sz);
}