-
-
[旧帖]
[求助][求助]通过进程a(与进程b)共享的dll卸载进程b的dll的一个错误
0.00雪花
-
发表于:
2012-11-9 00:14
2093
-
[旧帖] [求助][求助]通过进程a(与进程b)共享的dll卸载进程b的dll的一个错误
0.00雪花
两进程a和b,实现过程:a运行并加载此dll,然后想通过b卸载a进程的dll
dll源码如下
问题在SetHook()函数描述
HMODULE Handle;//已设置共享
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if(a进程)
Handle=hModule;
if(b进程)
uninstallDll();
return 0;
}
void uninstallDll()
{
...
..
.
//pfnStartAddr为SetHook的地址,
CreateRemoteThread(hRemoteProcess, NULL, 0, pfnStartAddr, &Handle, 0, NULL)
}
卸载dll
DWORD __stdcall SetHook(LPVOID lParam)
{
MessageBox(..);//测试这步能执行到,并且lParam无误.
FreeLibrary(*((HMODULE *)lParam));//执行到这步时a进程就死了,求解答
return 0;
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)