首页
社区
课程
招聘
[求助]DNF的已注入DLL,怎么实现键盘钩子
发表于: 2011-3-8 22:46 10612

[求助]DNF的已注入DLL,怎么实现键盘钩子

2011-3-8 22:46
10612
直接用SetWindowsHookEx不可以的

用SetWindowLong 可以键盘键盘 并且还还能输出MessageBoxW的信息
但是缺不实现呼出窗口

我在SetWindowLong 的回调函数里写
if(Message == WM_KEYDOWN)//此处假设处理键盘按下消息,可以是任意消息 包括自定义消息 自定义消息一般是 WM_USER+N N是正整数
	{
		if(wParam == VK_F8)
		{
 			MessageBox(NULL,TEXT("按下了F8"),NULL,NULL);
			if (DLLdlg==NULL) 
			{ 
				MessageBox(NULL,TEXT("F8"),NULL,NULL);
				DLLdlg=new CDlg;
		DLLdlg->Create(IDD_DIALOG1);
		DLLdlg->ShowWindow(SW_SHOW);
				MessageBox(NULL,TEXT("111"),NULL,NULL);


			}

		}

	}


MessageBox都能输入 但是中间的创建窗口缺出不来

这是啥子原因?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 113
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Create(IDD_DIALOG1);
- -!```资源引用么????
我建议你用createwindowex来建立窗口..不行就外部建立窗口再在进程内发送消息控制.
2011-3-9 01:19
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好像不是这个原因
2011-3-9 09:08
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
他只响应MeassageBox 其他的好像不响应
2011-3-9 20:24
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
别沉那 ,还没解决  郁闷啊
2011-3-11 07:06
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
友情帮顶                                                                                          .
2011-3-11 09:33
0
雪    币: 345
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不用顶 其实有些很蹊跷的方法   都是未公开API  HOOK   我实现过  绑定热键嘛

我想问你是什么注入呢
2011-3-11 11:47
0
雪    币: 579
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是不是要进行资源切换?MFC的对话框装载资源是通过获取当前线程对应的ModuleState保存的ResourceHandler来装载资源的。所以,DLL里的代码,需要在函数的入口,首先把当前执行线程的ModuleState换成该Dll的State,这样才能装载该dll的资源。
2011-3-11 11:53
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
输入法注入...
2011-3-11 17:43
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
AFX_MANAGE_STATE(AfxGetStaticModuleState());
是加上这个吧 加上了以后要会卡一下 然后游戏就消失了
2011-3-11 17:45
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我现在是能监控的按键,但是呼不出窗体  把代码放到InitInstance()里就可以呼出
2011-3-11 17:48
0
游客
登录 | 注册 方可回帖
返回
//