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