CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

使用NDIS HOOK作防火墙和VPN的大侠请进!!

楼主leepyzh(leepyzh)2002-12-01 14:02:17 在 VC/MFC / 网络编程 提问

HOOK上ProtocolReceive后,我要对接受的数据进行解密。但是,当PacketSize   >   LookAheadBufferSize时,要调用NdisTransferData   来去剩余的数据,如下,  
  VOID     NdisTransferData(  
          OUT   PNDIS_STATUS     Status,  
          IN   NDIS_HANDLE     NdisBindingHandle,  
          IN   NDIS_HANDLE     MacReceiveContext,  
          IN   UINT     ByteOffset,  
          IN   UINT     BytesToTransfer,  
          IN   OUT   PNDIS_PACKET     Packet,  
          OUT   PUINT     BytesTransferred  
          );  
  但是我不知道第二个参数该如何确定,导致我已经死机N次了。  
   
  高手指点,我可以再加分。救我吧...................  
  waiting.... 问题点数:0、回复次数:11Top

1 楼snsins(初雪草)回复于 2002-12-01 17:24:58 得分 0

NdisBindingHandl是一指针,  
  指向NDIS_OPEN_BLOCK表  
   
  通过NdisOpenAdapter  
  返回的  
   
  VOID  
      NdisOpenAdapter(  
          OUT   PNDIS_STATUS     Status,  
          OUT   PNDIS_STATUS     OpenErrorStatus,  
          OUT   PNDIS_HANDLE     NdisBindingHandle,//就是这个  
          OUT   PUINT     SelectedMediumIndex,  
          IN   PNDIS_MEDIUM     MediumArray,  
          IN   UINT     MediumArraySize,  
          IN   NDIS_HANDLE     NdisProtocolHandle,  
          IN   NDIS_HANDLE     ProtocolBindingContext,  
          IN   PNDIS_STRING     AdapterName,  
          IN   UINT     OpenOptions,  
          IN   PSTRING     AddressingInformation     OPTIONAL,  
          );  
  NdisOpenAdapter   sets   up    
   
  Top

2 楼leepyzh(leepyzh)回复于 2002-12-01 21:58:06 得分 0

上次网上有人讲是NdisProtocolHandle(第七个参数)。  
   
  谢谢:   snsins(不再信仰,不再坚持),我试试!  
   
  另外,NdisBindingHandle,NdisProtocolHandle,ProtocolBindingContext这三个参数区别是什么?  
  Top

3 楼snsins(初雪草)回复于 2002-12-01 22:43:20 得分 0

NdisRegisterProtocol(  
  OUT   PNDIS_STATUS   Status,  
  OUT   PNDIS_PROTOCOL_BLOCK   NdisProtocolHandle,   //看这里,这下知道NdisProtocolHandle是什么了吧?  
   
   
  IN   PNDIS_PROTOCOL_CHARACTERISTICS   ProtocolCharacteristics,  
  IN   UINT   CharacteristicsLength  
  );  
   
   
  struct   _NDIS_OPEN_BLOCK  
  {  
  PNDIS_MAC_BLOCK   MacHandle;   //   pointer   to   our   MAC  
  NDIS_HANDLE   MacBindingHandle;   //   context   when   calling   MacXX   funcs  
  PNDIS_ADAPTER_BLOCK   AdapterHandle;   //   pointer   to   our   adapter  
  PNDIS_PROTOCOL_BLOCK   ProtocolHandle;   //   pointer   to   our   protocol  
  NDIS_HANDLE   ProtocolBindingContext;//   这个东西  
  ..................  
  Top

4 楼snsins(初雪草)回复于 2002-12-01 22:59:11 得分 0

NDIS这东西  
  一个字儿:难Top

5 楼snsins(初雪草)回复于 2002-12-01 22:59:28 得分 0

看看DDK附带的SAMPLE里的PACKETTop

6 楼leepyzh(leepyzh)回复于 2002-12-02 15:02:18 得分 0

snsins(不再信仰,不再坚持):  
   
  谢谢提示!我用NdisBindingHandle试了一下,还是死机,我晕~~~  
   
  其实我的要求很简单,就是在HOOK上的ProtocolReceive里面用NdisTransferData取得剩下的数据,就OK!没想到搞了一两个星期还没有成功!偏偏我必须过这一关!  
   
  分特!Top

7 楼zhaolaoxin()回复于 2002-12-02 15:04:30 得分 0

upTop

8 楼snsins(初雪草)回复于 2002-12-02 15:20:53 得分 0

啊啊啊  
  你有几块网卡?  
   
  Top

9 楼leepyzh(leepyzh)回复于 2002-12-02 22:28:51 得分 0

我就一块网卡呀!  
  不过曾经装了两块,后来拆掉了,不会有影响吧?  
  不过,我用SoftIce发现,启动时,NdisOpenAdapter函数被调用了8次,难道跟这个有关系?  
  就是说如果有两块网卡的话,我必须找到对应关系?  
   
  网上高手说,  
  “你既然hook了NdisOpenAdapter,那么你唯一的办法就是做个对应表把ProtocolBindingContext和NDIS_OPEN_BLOCK对应起来”  
  不知是不是这个意思?  
   
  我很郁闷,有时怀疑是不是我的要求根本是不可能实现的??  
  谢谢!!  
  在下有礼了!!Top

10 楼snsins(初雪草)回复于 2002-12-02 23:49:40 得分 0

NDIS   HOOK我也没做过  
  我一直在学做标准的NDIS驱动  
  具体情况也不清楚  
  NdisOpenAdapter被调用8次不奇怪,因为NdisRegisterProtocol每注册一个协议,都会调用BindAdapterHandler,BindAdapterHandler会导致NdisOpenAdapter被调用    
   
  Top

11 楼snsins(初雪草)回复于 2002-12-02 23:56:49 得分 0

哦  
  记得斑竹wuxuan说过他有过NDIS方面的具体项目经验  
  你可以请教一下他  
   
  祝你好运Top

相关问题

  • VPN与防火墙
  • 连接不上VPN,客户端防火墙问题
  • 思科"PIX-515E-R-BUN"这款防火墙兼做VPN怎么样?
  • 高分求教Netscreen防火墙VPN的配置
  • 防火墙
  • 防火墙
  • 关于防火墙
  • 防火墙问题
  • 关闭防火墙
  • 防火墙问题

关键词

  • 数据
  • pndis
  • ndisopenadapter
  • ndis
  • ndisprotocolhandle
  • ndisbindinghandle
  • 调用
  • ndistransferdata
  • protocolbindingcontext
  • hook

得分解答快速导航

  • 帖主:leepyzh

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo