-
-
[旧帖]
[求助]成功HOOK但回调函数没反应
0.00雪花
-
发表于:
2013-6-2 11:19
2362
-
[旧帖] [求助]成功HOOK但回调函数没反应
0.00雪花
在下在学习尝试HOOK,自己写了一个目标程序准备注入,然后用另一个程序启动HOOK的DLL模块进行注入。
一直到注入的步骤都是成功的,SetWindowsHookEx()函数返回正常,GetLastError()也查不出问题,可就是HOOK之后回调函数一点响应都没有,百思不得其解,特地来请教一下各位达人。
而且非常奇怪的是,HOOK部分的代码是从别的程序上COPY过来的,原本的程序用得好好的,我也是仿照它的模式构建的启动EXE文件和注入模块DLL,可为什么我这边就不行呢?
这是HOOK部分的关键代码:
extern "C" __declspec(dllexport) int __stdcall Crk_Push(HWND hwnd)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
DWORD dwpid, dwthread;
dwthread = GetWindowThreadProcessId(hwnd, &dwpid);
if (0 == dwthread)
{
Msg("获取线程ID失败");
return -1;
}
stc_xyhook = ::SetWindowsHookEx(WH_CBT, (HOOKPROC)CrkProc, theApp.m_hInstance, dwthread);
if (NULL == stc_xyhook)
{
Msg("注入失败");
return -1;
}
sprintf_s(stc_log, sizeof(stc_log), "注入成功,模块开始工作 0x%x", stc_xyhook);
Msg(stc_log);
return 1;
}
这是回调函数的代码:
LRESULT __stdcall CrkProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (false == stc_isinit)
{
stc_isinit = true;
/***************/
//do something
/***************/
}
return ::CallNextHookEx(stc_xyhook, nCode, wParam ,lParam);
}
这是我自己写的全部代码
myHook.rar
希望有HOOK高手能帮忙指点下,谢谢!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!