阅读:2680回复:8
XP下ndis hook,插拔网线怎样处理?
我在xp下用ndis hook(注册假协议的方法)处理数据包,
但插拔网线会出问题, 我先进行了hook,拔下网线再插上,我的程序就不好使了, 我查了一下各个handler,发现sendhandler改变了! 但我只找到了protocol_block的pchar里的pnphandler,它的参数有一个netpnpevent,如果它==reconfigure时,我重新hook,可是它好象并不是每次插拔网线都会触发! 哪位大侠遇到过这种情况,请指点? 是不是还有其他的事件会触发?谢谢! |
|
最新喜欢:minewd... |
沙发#
发布于:2002-07-19 12:16
bindadapter中重新hook
|
|
|
板凳#
发布于:2002-07-19 13:39
我在xp下用ndis hook(注册假协议的方法)处理数据包, receivehandler一开始的时候就检查当前SENDHANDLER是否改变如果是就重新勾回来。 |
|
|
地板#
发布于:2002-07-19 14:18
gjp你是说每来一个包就检查一下sendhandler?
不会吧! trent我就是在bindadapter的时候rehook的! 插拔网线好象不会触发bindadapter事件,禁止再启用网卡的时候才触发bindadapter! |
|
地下室#
发布于:2002-07-21 00:30
gjp你是说每来一个包就检查一下sendhandler? 就是这样做的。检查一下sendhandler不会画很多指令了。 基本上简单的处理应该就是. mov esi,open_block cmp [esi].sendhandler,offset oursendhandler je go_on mov [esi].sendhandler,offset oursendhandler; go_on: |
|
|
5楼#
发布于:2002-07-21 12:38
gjp,是不是2000也要这样,
我现在发现2000好象也有插拔网卡的问题,有的拔掉时间长一些才会出现这个现象,网卡不同好象也不同,有的网卡是这样,有的网卡不是这样! 这些是不是都是pnp闹的? |
|
6楼#
发布于:2002-07-21 22:52
gjp,是不是2000也要这样, 是的。 |
|
|
7楼#
发布于:2004-08-14 18:24
[quote]我在xp下用ndis hook(注册假协议的方法)处理数据包, receivehandler一开始的时候就检查当前SENDHANDLER是否改变如果是就重新勾回来。 [/quote] 如果OPENBLOCK表变了,还能够进入自己的receivehandle么? 不能够进入自己的receivehandle又怎么样hook回来??? |
|
|
8楼#
发布于:2004-08-15 00:56
测试结构是可以的~~~~~~
具体为什么我就不知道了 |
|
|