首页
社区
课程
招聘
[旧帖] [求助]成功HOOK但回调函数没反应 0.00雪花
发表于: 2013-6-2 11:19 2362

[旧帖] [求助]成功HOOK但回调函数没反应 0.00雪花

2013-6-2 11:19
2362
在下在学习尝试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高手能帮忙指点下,谢谢!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己试了很久,结果发现将这个代码其它部分不变,只是改为HOOK别的程序比如某个游戏、记事本程序之类就都可以了……这是为什么?
自己写的测试用目标程序太简单HOOK不认么?
2013-6-2 16:40
0
游客
登录 | 注册 方可回帖
返回
//