首页
社区
课程
招聘
[原创]第二题的办法。
发表于: 2008-12-19 14:01 27073

[原创]第二题的办法。

2008-12-19 14:01
27073

nids驱动俺不是很熟,不过俺跟了一下,最后跟到ndisDeviceControlIrpHandler -> ndisQueryStatisticsOids。OK,HOOK之。
现在的问题就是怎么找了,\\Driver\\NdisWan里面就有。俺是懒虫,未仔细研究传入的参数,HOOK后的ndisDeviceControlIrpHandler直接返回了,不过似乎并不影响网络传输,反正是达到不再闪烁的目标了。
当然也可以SSDT HOOK拦,但其实原理一样。


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
直接返回的话,你打开什么网络属性之类的会出错的,因为这个DeviceControl不单是查询进出包的批次和数量,还有其它一些功能。

最好的办法是需要处理IoControlCode 0x17003e(2k下是0x17000e)对应的buffer,buffer是OID和对应数据,0x20101是发出包计数,0x80020207是发出包数量,0x80020208是收到包计数,0x80020201是收到包数量。主要需要处理的是0x20101和0x80020208,因为上层是根据这个数值和原来的相比,一旦不同则发消息闪电脑。可以顺便连0x80020207和0x80020201一块处理了,这样连看属性的包数量都不变了。

更底层就是直接Miniport的routine的hook了,但方法差不多。
2008-12-19 14:24
0
雪    币: 152
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这题也害死我了!!!!!
2008-12-19 14:27
0
雪    币: 299
活跃值: (25)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
4
知道,所以这题俺得分不高,不过说句实话,题目确实没要求打开网络属性报错扣分!。
2008-12-19 14:37
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
5
这个题目说难说难,说易也易
难就难在在题目中说NT平台,而且题目中的图是vista的,那么至少2k, xp, 2k3, vista要通过吧
也难在网络环境,更多的人玩虚拟机下的都是lan,但我家xp sp2,adsl直接拨号,右下角系统自带小电脑,经过分析发现它是直接查询小猫来决定亮不亮,根本不走ndis,0x17003e, 0x20101对我是没效果的。 所以谁能保证自己的答案在lan, adsl,  笔记本无线, 台式机无线等等环境下都有效果呢?
说易是因为裁判不会也不可能测全
2008-12-19 14:47
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
6
呵呵 因为要求也没有那么严苛,很多人都会钻题目的空啊~

出题的时候要求时间只有一天多~
2008-12-19 14:49
0
雪    币: 152
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
无语中。。。。。。。。。。。。。。
2008-12-19 14:51
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我和楼主一样,也是直接返回的。呵呵,我也很懒。但是我的网络连接小图标是可以正常打开的。不如我也发上来和大家探讨一下。
2008-12-22 11:09
0
雪    币: 297
活跃值: (53)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
9
没研究出低层结构 ...
没敢用hook怕出问题 这题没交 没分了 认了
2008-12-22 14:37
0
游客
登录 | 注册 方可回帖
返回
//