鱼C论坛

 找回密码
 立即注册
查看: 7199|回复: 5

为什么WH_GETMESSAGE 不能捕获WM_SETTEXT消息呢

[复制链接]
发表于 2011-10-12 19:58:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码如入

HWND gameh;
#define GameCaption "测试消息钩子的对像"
//安装勾子的函数
void go()
{  AFX_MANAGE_STATE(AfxGetStaticModuleState());
gameh=FindWindow(NULL,_T(GameCaption));
if (gameh==0) { AfxMessageBox(_T("未找到游戏"),0,0);}
DWORD tid=::GetWindowThreadProcessId(gameh,NULL);
::SetWindowsHookEx(WH_GETMESSAGE ,&GetMsgProc,::GetModuleHandle(_T("OSE.dll")),tid);
}
LRESULT CALLBACK GetMsgProc( int nCode,WPARAM wParam, LPARAM lParam)
{ AFX_MANAGE_STATE(AfxGetStaticModuleState());
    MSG *pMSG = (MSG*)lParam;
if(pMSG->message ==WM_SETTEXT)
{
  ::MessageBoxExW (0,0,0,0);
}
return CallNextHookEx(0,nCode,wParam,lParam);
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-10-12 20:05:24 | 显示全部楼层
又是脓肿的MFC。。。。

你调试过了吗?
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-10-13 02:48:53 | 显示全部楼层
这个调试起来比较麻烦,得生成了DLL之后,再注入到别程序后才能调试:'(
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-10-13 10:29:44 | 显示全部楼层
本帖最后由 yipwing 于 2011-10-13 10:30 编辑

远程注入? 具体怎么做,我用MFC还真没写过。。
改天自己写过。。。

我还以为是简单的Hook。。。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-10-13 16:56:24 | 显示全部楼层
网上例子一大堆,也不难
只是WM_SETTEXT是非队列消息,一般用WH_GETMESSAGE是hook不到的,能hook的是按键和鼠标消息和char消息之类的队列消息,不是我说的,我也是听别人说的
而用WH_CALLWNDPROC可以hook到WM_SETTEXT消息,可是不能修改,郁郁死了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-10-14 09:44:01 | 显示全部楼层

                               
登录/注册后可看大图
顶你一下吧
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-8 21:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表