-
-
[求助]dll注入后钩子不好使。请教
-
发表于:
2009-5-3 08:14
4592
-
做了一个DLL注入的简单程序。目的是在目标程序中HOOk到F12键,作为呼出窗体热键。
注入成功。可是钩子却并不好使。请教为什么?
代码片断1:(DLL入口)
BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved )
{
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
if( !installhook( hinstDLL ) )
{
MessageBox( NULL, TEXT("Set KBHook error"), TEXT("ERROR"), MB_ICONERROR );
}
。。。。
代码片断2:(装置钩子函数)
BOOL installhook( HINSTANCE hinstDLL )
{
hins = hinstDLL;
hkb=SetWindowsHookEx( WH_KEYBOARD, (HOOKPROC)KeyboardProc, hins, 0 );
if( NULL == hkb )
return false;
return true;
}
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if( nCode == HC_ACTION )
{
{
if( VK_F12 == wParam )
MessageBox( NULL, TEXT("F12 Key Pressed"), TEXT("TEST"), MB_OK );
}
}
return CallNextHookEx( hkb, nCode, wParam, lParam );
}
奇怪的现象是:DLL在收到“PROCESS_ATTACH”的通知了以后,紧接着就收到了“THREAD_DETACH”通知。是这个原因钩子才不好使得么?DLL为什么瞬间就从线程中被分开了?
感谢,任何有帮助的提示和回答。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!