SetWindowsHookEx DLL卸载
SetWindowsHookEx DLL unloading
我正在使用 SetWindowsHookEx 将 dll 注入另一个进程。但是,当注入程序退出时,dll 会从其他进程中卸载。无论如何我可以停止卸载吗?基本上,我希望 dll 永久保留,而不管注入程序是否仍然 运行。如果我能够从 dll 中增加 dll 引用计数,那是可行的。但是我还没找到方法。
存在两种方式
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);
}
我正在使用 SetWindowsHookEx 将 dll 注入另一个进程。但是,当注入程序退出时,dll 会从其他进程中卸载。无论如何我可以停止卸载吗?基本上,我希望 dll 永久保留,而不管注入程序是否仍然 运行。如果我能够从 dll 中增加 dll 引用计数,那是可行的。但是我还没找到方法。
存在两种方式 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);
}