swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:2680回复:8

XP下ndis hook,插拔网线怎样处理?

楼主#
更多 发布于:2002-07-17 17:50
我在xp下用ndis hook(注册假协议的方法)处理数据包,
但插拔网线会出问题,
我先进行了hook,拔下网线再插上,我的程序就不好使了,
我查了一下各个handler,发现sendhandler改变了!

但我只找到了protocol_block的pchar里的pnphandler,它的参数有一个netpnpevent,如果它==reconfigure时,我重新hook,可是它好象并不是每次插拔网线都会触发!

哪位大侠遇到过这种情况,请指点?
是不是还有其他的事件会触发?谢谢!

最新喜欢:

minewdyminewd...
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-19 12:16
bindadapter中重新hook
我不仅要金子,我还要点石成金的手指!
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-19 13:39
我在xp下用ndis hook(注册假协议的方法)处理数据包,
但插拔网线会出问题,
我先进行了hook,拔下网线再插上,我的程序就不好使了,
我查了一下各个handler,发现sendhandler改变了!

但我只找到了protocol_block的pchar里的pnphandler,它的参数有一个netpnpevent,如果它==reconfigure时,我重新hook,可是它好象并不是每次插拔网线都会触发!

哪位大侠遇到过这种情况,请指点?
是不是还有其他的事件会触发?谢谢!

receivehandler一开始的时候就检查当前SENDHANDLER是否改变如果是就重新勾回来。
我思故我在,脑袋不会坏.
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-19 14:18
gjp你是说每来一个包就检查一下sendhandler?

不会吧!

trent我就是在bindadapter的时候rehook的!
插拔网线好象不会触发bindadapter事件,禁止再启用网卡的时候才触发bindadapter!
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-21 00:30
gjp你是说每来一个包就检查一下sendhandler?

不会吧!

trent我就是在bindadapter的时候rehook的!
插拔网线好象不会触发bindadapter事件,禁止再启用网卡的时候才触发bindadapter!

就是这样做的。检查一下sendhandler不会画很多指令了。
基本上简单的处理应该就是.
mov esi,open_block
cmp [esi].sendhandler,offset oursendhandler
je  go_on
mov [esi].sendhandler,offset oursendhandler;
go_on:
我思故我在,脑袋不会坏.
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-21 12:38
gjp,是不是2000也要这样,
我现在发现2000好象也有插拔网卡的问题,有的拔掉时间长一些才会出现这个现象,网卡不同好象也不同,有的网卡是这样,有的网卡不是这样!

这些是不是都是pnp闹的?
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-21 22:52
gjp,是不是2000也要这样,
我现在发现2000好象也有插拔网卡的问题,有的拔掉时间长一些才会出现这个现象,网卡不同好象也不同,有的网卡是这样,有的网卡不是这样!

这些是不是都是pnp闹的?
 

是的。
我思故我在,脑袋不会坏.
IoriKingdom
驱动小牛
驱动小牛
  • 注册日期2004-06-17
  • 最后登录2010-04-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望23点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-14 18:24
[quote]我在xp下用ndis hook(注册假协议的方法)处理数据包,
但插拔网线会出问题,
我先进行了hook,拔下网线再插上,我的程序就不好使了,
我查了一下各个handler,发现sendhandler改变了!

但我只找到了protocol_block的pchar里的pnphandler,它的参数有一个netpnpevent,如果它==reconfigure时,我重新hook,可是它好象并不是每次插拔网线都会触发!

哪位大侠遇到过这种情况,请指点?
是不是还有其他的事件会触发?谢谢!

receivehandler一开始的时候就检查当前SENDHANDLER是否改变如果是就重新勾回来。 [/quote]

如果OPENBLOCK表变了,还能够进入自己的receivehandle么?
不能够进入自己的receivehandle又怎么样hook回来???
天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
IoriKingdom
驱动小牛
驱动小牛
  • 注册日期2004-06-17
  • 最后登录2010-04-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望23点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-08-15 00:56
测试结构是可以的~~~~~~
具体为什么我就不知道了
天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
游客

返回顶部