首页
社区
课程
招聘
DETOUR库如何挂接KeyboardProc函数
发表于: 2010-4-7 09:56 4391

DETOUR库如何挂接KeyboardProc函数

2010-4-7 09:56
4391
DETOUR库如何挂接KeyboardProc函数,我Link时候出现:
error LNK2001: unresolved external symbol "long __stdcall KeyboardProc(int,unsigned int,long)" (?KeyboardProc@@YGJHIJ@Z)
这是我挂接的代码
LRESULT WINAPI CopyKeyboardProc(int nCode,WPARAM wParam,LPARAM lParam);
DETOUR_TRAMPOLINE(LRESULT WINAPI CopyKeyboardProc(int nCode,WPARAM wParam,LPARAM lParam), KeyboardProc);
LRESULT WINAPI MyKeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
............//自己的函数处理代码
}
高手告诉下,问题出在哪里。

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 249
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
.lib文件和.h文件包含了没有?
2010-4-7 10:29
0
雪    币: 366
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
如果我没记错的话,KeyboardProc只是个回调函数声明格式,它不是一个api函数吧
2010-4-7 10:56
0
雪    币: 934
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
DETOUR库的头文件和LIB都已经包含了,不知道你说的是哪些.h和.lib.
那DETOUR库能HOOK keyboardPROC和mouseproc函数吗如果不能
DETOUR库如何截获键盘消息,给个方案也行啊
2010-4-7 11:39
0
雪    币: 366
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
Detour库是hook api的,你要截获消息的话用SetWindowsHookEx;
2010-4-7 12:13
0
雪    币: 934
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
就是说Detour库不能HOOK keyboardproc函数,我能这样理解吗? 那有没有什么可以用Detour库HOOK的API用来截获键盘按键。
2010-4-7 12:30
0
雪    币: 366
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
没有那个系统库导出了keyboardproc这个函数,它是要用户自己定义的,msdn只是提供了声明格式;当你调用SetWindowsHookEx之后会把你定义的钩子加入相应的链表,当有相应的消息触发时候,你定义的keyboardproc函数将会被调用;建议你看看windows消息机制。
2010-4-7 12:40
0
雪    币: 934
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
那 DETOUR库可以和setwindowhookex结合使用吗?比方说用 DETOUR注入,用setwindowshookex截获键盘消息?
2010-4-8 11:28
0
雪    币: 366
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
SetWindowsHookEx的回调函数是你自己实现的,就好像:

LRESULT WINAPI KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
          ......

          CallNextHookEx......              //下一个钩子的回调函数;
        
}

你自己google下SetWindowsHookEx,就知道怎么用了
2010-4-8 18:50
0
游客
登录 | 注册 方可回帖
返回
//