首页
社区
课程
招聘
[旧帖] [求助]应聘时的问题,关于钩子链的问题请大牛帮助! 0.00雪花
发表于: 2011-4-19 08:33 1471

[旧帖] [求助]应聘时的问题,关于钩子链的问题请大牛帮助! 0.00雪花

2011-4-19 08:33
1471
我用DLL可以做钩子,但是有一个问题,是在一次就聘时遇到的!
就是关于钩子链,如果一个系统上存在多个键盘钩子:
1。我怎么才能知道我的钩子的优先级呢?
2。怎么把我的钩子设为系统的最高优先级,我应该怎么做?
3。如果可以设最高优先级,那么如果我的钩子设为最高优先级了,其它的钩子用同样的方法能否设为比我的优先级还高。
4。怎么防止其它钩子的优先级怎么设置都不能超过我的呢?


我想到的解决方案是settimer不停的装载卸载。。。100毫秒一次·这样的办法比较lJ
也只能解决一小部分问题·也只能暂时解决问题2,。。
剩下的几个问题没有办法解决请大牛们帮助。。。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
提升优先级 be
2011-4-19 08:41
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最后安装的钩子 都在最高级吧
2011-4-19 08:56
0
雪    币: 143
活跃值: (61)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
这个好玩~学习
2011-4-19 09:19
0
雪    币: 24
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
记得消息钩子没有优先级概念,只是最后安装的钩子会先得到优先处理权,
采用定时的方式影响稳定性,且容易出错,可以采用APIHook,SetWindowHookEx函数
的方式来弥补,当其他程序安装钩子后,你在将你的钩子移除后再安装一次,这样
就可以跑到前面了。
2011-4-19 11:48
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
那如果一个程序用settimer的话··那我挂钩的setwindowshookEx函数不是一样要按照别的程序设定的settimer的时间规律走吗??频率是一样快的·肯定也是一样大量消耗系统资源的··
请问有什么办法能解决的吗?????

如何能确定我的钩子优先级最高呢·?
2011-4-19 14:44
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看看~~~~~~~~~~~~
2011-4-19 17:36
0
雪    币: 41
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
5楼已经说了,采用APIHook,SetWindowHookEx函数

如果一定要说人家也可以APIHook,可以破解你的APIHook的话。那这就是一个无止尽的问题了
2011-4-19 23:56
0
雪    币: 343
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
以下纯属猜测:
相关钩子链应该有个ListHead来维护,你的DLL设置钩子(可能是个ListEntry,具体类型不YY了)时在ListHead处插入。此时如果能将你的ListEntry转换成ListHead,再将其欺骗为原有的ListHead。。。

新手学习,继续关注中,勿喷我!
2011-4-20 00:52
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢大家的回答。。。。
问题基本上已经解决
2011-4-20 07:54
0
雪    币: 118
活跃值: (55)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
11
钩子链是一个堆栈,所以遵循后进先出的原则,也就是最后安装的优先级最高了!
2011-6-2 16:05
0
游客
登录 | 注册 方可回帖
返回
//