basalloy
驱动牛犊
驱动牛犊
  • 注册日期2002-03-20
  • 最后登录2006-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1652回复:3

对protocol wrapper机制的一些疑问?

楼主#
更多 发布于:2003-01-19 15:05
读完斑竹的“网络数据报拦截通用技术”后,有以下几点不明白:请各位大虾不吝赐教:
1.我想使用注册假协议的方法通过网卡收发数据包,但是我的程序并不需要起到拦截的作用,所以我想问:只调用registerprotocol()和openadapter(),也就是在注册协议和绑定到指定网卡后,不使用hook其他协议的函数,能否使ndis调用我自己的派遣函数?我现在观察到的是在绑定到网卡后(网卡名字是在注册表中搜的),ndis根本不调用我的ptrecive()等函数,我不知是为何?是否我还要在注册表中添加与协议有关的值?
2.在那篇文章中说,“当有网卡接收到数据时,ndis就会调用_ndis_open_block结构中的句柄,所以只要hook了所有的协议的这个结构的句柄就可实现拦截”。那哥哥协议在注册时向ndis提交的ndis_protocol_characteritics中的句柄是否就不必hook了?这两个结构的句柄是什么关系?是否是ndis先调用_ndis_open_block中的句柄,然后再调用ndis_protocol_characteritics中的句柄?
烦请各位答疑解惑!
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-21 10:06
读完斑竹的“网络数据报拦截通用技术”后,有以下几点不明白:请各位大虾不吝赐教:
1.我想使用注册假协议的方法通过网卡收发数据包,但是我的程序并不需要起到拦截的作用,所以我想问:只调用registerprotocol()和openadapter(),也就是在注册协议和绑定到指定网卡后,不使用hook其他协议的函数,能否使ndis调用我自己的派遣函数?我现在观察到的是在绑定到网卡后(网卡名字是在注册表中搜的),ndis根本不调用我的ptrecive()等函数,我不知是为何?是否我还要在注册表中添加与协议有关的值?
----------------------
Protocol wrapper
方法不适合,你应该做成一个标准的协议驱动程序(packet)。
-----------------------
2.在那篇文章中说,“当有网卡接收到数据时,ndis就会调用_ndis_open_block结构中的句柄,所以只要hook了所有的协议的这个结构的句柄就可实现拦截”。那哥哥协议在注册时向ndis提交的ndis_protocol_characteritics中的句柄是否就不必hook了?这两个结构的句柄是什么关系?是否是ndis先调用_ndis_open_block中的句柄,然后再调用ndis_protocol_characteritics中的句柄?
烦请各位答疑解惑!

两者都需要勾挂的,但主要还是NDIS_OPEN_BLOCK里,ndis_protocol_characteritics,这个结构只是一张参考表当协议驱动程序打开一个设备时会从ndis_protocol_characteritics里的派发函数拷贝到NDIS_OPEN_BLOCK里。

我思故我在,脑袋不会坏.
basalloy
驱动牛犊
驱动牛犊
  • 注册日期2002-03-20
  • 最后登录2006-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-21 15:11
谢谢斑竹,我要再好好思考以下,不过分已给出!
IoriKingdom
驱动小牛
驱动小牛
  • 注册日期2004-06-17
  • 最后登录2010-04-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望23点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-15 10:51
为什么我HOOK了OPENBLOCK没有
HOOK协议链的一样能够正常工作呢?
测试了不只一个星期了
天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
游客

返回顶部