首页
社区
课程
招聘
[求助]多个ndis中间层驱动的并列层级关系
发表于: 2013-8-7 09:52 8463

[求助]多个ndis中间层驱动的并列层级关系

2013-8-7 09:52
8463
一个系统中同时加载了3个ndis中间层驱动,这三个驱动的层级关系是并列的还是上下层关系?
加入一个中间层驱动拦截丢弃所有封包,而另一个中间层驱动则正常收包,那么最后的包是否会
提交到上层应用程序中?

我知道单个ndis中间层驱动与上下级的关系是这样的

各种协议驱动: tcp        udp        ipx

                               中间层驱动

各种端口驱动: 以太网卡  无线网卡 令牌环网卡  

现在的问题是如果同时插入多个中间层驱动,他们的层次位置关系如何?


各种协议驱动:           tcp        udp        ipx
   
        我的中间层驱动   杀毒软件的中间层驱动  某第三方防火墙的中间层驱动

各种端口驱动:        以太网卡  无线网卡 令牌环网卡   

还是
各种协议驱动:           tcp        udp        ipx
   
                                           我的中间层驱动
                          杀毒软件的中间层驱动
                        某第三方防火墙的中间层驱动

各种端口驱动:        以太网卡  无线网卡 令牌环网卡        

求大牛解决疑惑或推荐相关技术文章,谢谢?
看了恁多书和网页都没找到一个解释的。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
还是
各种协议驱动:     tcp            udp         ipx   

                       杀毒软件的中间层驱动
                    某第三方防火墙的中间层驱动
                        我的中间层驱动

各种端口驱动:     以太网卡  无线网卡 令牌环网卡
2013-8-7 09:54
0
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
我觉得貌似是层级关系而非并列关系,先加载的中间层驱动在底层,后加载的在上层,是不是这样?
2013-8-7 10:03
0
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
都说中间层驱动能拦截封包,但是下面的情况是否也能拦截到呢?
一个中间层驱动对协议驱动来说是作为一个虚拟端口驱动的,协议驱动在系统启动时就绑定了真正的以太网卡驱动,如果系统启动完毕一段时间后再手动加载我们的中间层驱动,这个时候就导致协议驱动同时绑定着两个端口驱动(一个是真正启动时绑定的以太网卡端口驱动,一个是后来手动启动后绑定的我们的中间层驱动),这个时候,上层应用程序发包,貌似仍是发给真正的那个端口驱动吧,我觉得不会走我们的中间层驱动,这样,就拦截不到应用层发给tcp驱动的包了!

我觉得要想拦截所有包,必须把我们的中间层驱动配置为在系统启动时所有真正端口驱动都加载完后,在加载tcp协议驱动之前,必须在这个时机加载我们的中间层驱动才能拦截到任意包,不知对不对?

请高手不吝赐教,谢谢
2013-8-7 11:12
0
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
最关键的问题就是:
在中间层驱动加载之前,一个tcp驱动绑定着一个真实端口驱动,如果现在突然加载了一个中间层驱动绑定在那个真实网卡端口驱动后,tcp驱动原来与真实网卡驱动之间维持的绑定关系是否会自动断开?
2013-8-7 11:29
0
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
每个协议驱动在绑定了一个网卡后,就会生成一个hBindContext,这个绑定上下文看字面意思就是
原来维持绑定关系的一个结构,我猜想,如果一个新的中间层驱动绑定了本协议驱动绑定的这块网卡,那么ndis内部会自动更正hBindContext->网卡设备对象 = 新的栈顶设备对象(也即那个中间层驱动),这样就断开了原来的绑定关系,从而NdisSendPacket(hBindContext)现在转为发到栈顶的我们的那个中间层驱动!

我觉得这个说法很合乎情理
2013-8-7 11:55
0
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
NND,透明的微软总是隐藏了好多细节
2013-8-7 11:57
0
雪    币: 3116
活跃值: (1269)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
8
兄弟很用心。这也是为什么中间层安装的时候会导致断网
2013-8-7 12:52
0
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
xp的没断啊,只要中间层驱动不主动丢包,就没断啊
2013-8-7 12:58
0
雪    币: 1559
活跃值: (1795)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wbs
10
自学就是困难重重 呵呵 等高手揭秘吧
2013-8-7 14:27
0
游客
登录 | 注册 方可回帖
返回
//