首页
社区
课程
招聘
[原创][原创]QQ,挂你没商量(2)
2010-2-23 20:23 10444

[原创][原创]QQ,挂你没商量(2)

2010-2-23 20:23
10444
QQ,挂你没商量(2)

声明:

      本文不是教你如何盗QQ的,取这个题目无非是为了吸引人们的眼球,大家都来看看罢了(QQ的影响力很高,不是吗?)。

      上次挂的是虚拟设备,这次真的要挂KeyBoard了。本文假设你看了《QQ,挂你没商量》。

      本文纯属本人主观臆断,如有误导还请见谅。当我笔记了。

 

      

      这里假设你已经知道设备挂接是怎么一回事了,无非是驱动的分层设计。代码还是NT式驱动,还有一个作即插即用的WDM就不说了。要学会,关键是理解IRP。
  
      我们先猜想一下键盘是如何工作的(为什么是“猜想”?嗯,我老是在臆断,因为我什么都不知道)。你按下键盘,就会产生一个硬件中断,这个中断例程会通过各种手段向键盘驱动发送IRP(我们的message),键盘驱动处理IRP并结束IRP。应用程序得到按键。

那我们又要拦截IRP了。这时有人说了,“这个我会,因为我看了《QQ,挂你没商量》,就是下图那个样子”

“可是......可是那个IRP我们要怎么处理啊?KeyBoardDriver还没有加工IRP,我们怎么用啊?”。嗯,是啊,我想说IRP被结束后是要反回给I/O管理器的,这样应用程序才能得到处理结果(就是那个IRP->AssociatedIrp.SystemBuffer)。我们只要得到KeyBoardDevice处理后的IRP->AssociatedIrp.SystemBuffer就好啦。这时又有人说了“啊?可我们的HookDevice在KeyBoardDevice的上面。HookDevice先得到IRP,我们又怎么得到KeyBoardDriver处理的IRP呢?”。靠!你能问这种问题就说明你有了解IRP了,这又说明你控制IRP的能力将有质的飞越。好吧,我只能告诉你“该看看完成例程了”。我不想重复教科书上的东西(因为我看教科书从没考过高分,~~~~(>_<)~~~~ ),大家自己找一下资料(关于驱动分层设计,完成例程的),我略说一下自己的知道的得了。
 
    IRP完成后,一层层堆栈向上弹出,如果遇到IO_STACK_LOCATION的CompletionRoutine非空,就调用这个函数。

      好吧,我们说我们自己的程序,我们要捕捉的IRP是IRP_MJ_READ,因为我们敲击键盘时,键盘驱动会收到这个IRP。我们要在每个IRP_MJ_READ的IRP设置一个完成例程,这样每一次击键动作都会在IRP回滚时执行我们完成例程。那完成例程做些什么呢?这里我只打印了扫描码,别的没做,有心人就做自己想做的事吧。

http://g.zhubajie.com/urllink.php?id=8326585vig3zaga3mz5hcqq

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

上传的附件:
收藏
点赞6
打赏
分享
最新回复 (21)
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
qihoocom 9 2010-2-23 20:26
2
0
QQ那个保护,球技术含量都没有,居然还有人分析,居然还发了两个帖子,还画了这多图,我真是震惊了
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
丽史成爱 2010-2-23 20:42
3
0
2楼你是大大级别 我是连门口都还没进 还是感谢楼主的共享
雪    币: 135
活跃值: (76)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wkaka 2010-2-23 20:54
4
0
LZ 写得不错.呵呵.幽默又有趣.支持一下
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jwtck 2010-2-24 14:21
5
0
如果能出一个ring3下的方法那应该有点东西可以看看
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jwtck 2010-2-24 14:22
6
0
期待楼主发觉ring3下的方式,qq保护现在貌似不用驱动了
雪    币: 808
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
zyr零零发 1 2010-2-24 14:29
7
0
研究QQ的人越来越多了,感谢分享!
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
exile 1 2010-2-24 18:24
8
0
都驱动了。。以前有人发过R3 的HOOK 转会员区去了
雪    币: 445
活跃值: (25)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
fenchang 2 2010-2-24 21:50
9
0
这个帖子的题目可以改成《阿里旺旺,挂你没商量》、《MSN,挂你没商量》、《gmail,挂你没商量》之类的
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
圣新冰心 2010-2-24 22:48
10
0
r3 都搞得定,不需模拟窗口,多吃一举搞驱动,很多人都写过这种东西
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
圣新冰心 2010-2-24 22:50
11
0
真佩服 mj的性格,
雪    币: 4399
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
izayoi 2010-2-26 09:30
12
0
有些人的人格度量在现实世界中和网络上是有很大差距甚至是截然相反的。
雪    币: 411
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kmlch 2010-2-26 10:45
13
0
不错。楼主实在,有分析,有代码。
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
studykkjs 2010-2-26 12:27
14
0
。。。。。代码弄的太不方便了而且缺个DEMO。。。。。呵呵。明天或者后天我也发个吧。。(如果下午有空的话)。。不过还是严重支持楼主。
雪    币: 96
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wkxq 2010-2-26 13:01
15
0
不太明白,谁叫咱是菜鸟一个呢
雪    币: 220
活跃值: (631)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dayang 2010-2-27 00:12
16
0
MJ也来发个更独特的吧!
雪    币: 220
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
百年孤独 2010-2-27 16:58
17
0
纵横于牛A和牛C之间的人物,俺农民一般都是比较震惊滴。。。
雪    币: 299
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 7 2010-2-27 17:04
18
0
支持楼主的分享
雪    币: 39
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zerovirs 2010-3-1 19:46
19
0
支持楼主 必须回帖
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
艾米 2010-3-17 17:35
20
0
2楼!兄弟们对你顶礼膜拜!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
兵火 2010-3-17 23:31
21
0
qq这个软件也有人研究呀,哈哈
雪    币: 636
活跃值: (174)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
Fypher 4 2010-3-18 10:53
22
0
建议,以后搞QQ,都发ring3的方法,稍微有点挑战性。
游客
登录 | 注册 方可回帖
返回