Z16300
驱动牛犊
驱动牛犊
  • 注册日期2002-06-04
  • 最后登录2018-01-17
  • 粉丝3
  • 关注0
  • 积分88分
  • 威望239点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1572回复:4

如何在IM中自己组装一个Ping包?有没有例子啊(35分)

楼主#
更多 发布于:2003-06-10 13:48
如何在IM中自己组装一个Ping包?如何能收到回应?
yangxiaochong
驱动牛犊
驱动牛犊
  • 注册日期2003-05-23
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-15 19:28
为什么不行?
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-17 13:16
你可以用抓包工具,抓个ICMP的包,然后照着在IMD中添一个包
然后调用NDISsend发送出去不就可以了没?

在ptreceive中判断一下收到包的目的IP,就可以了
放弃瘟草,现吃李草
yangxiaochong
驱动牛犊
驱动牛犊
  • 注册日期2003-05-23
  • 最后登录2004-07-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-18 23:37
NDISsend行吗?这样不是又发去而不是回给上层了吗?
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-19 08:58
NDISsend行吗?这样不是又发去而不是回给上层了吗?

你似乎根本不明白包的流程,看看这个帖子吧!
NDISSEND实际上是通知NDIS调用MIMINPORTSENDONEPACKETHANDLE
发送数据包。,发是发到网卡上去,而不是上层

http://www.driverdevelop.com/forum/viewthread.php?tid=2861
Digital

文章标题 我对IMD流程的理解,不对的,请多多指教  


版主



问题分数 : 0
贴子数量 : 62
注册日期 : 2001/8/8
在线情况 : 离线
   发表于: 2001/8/9 - 14:21
1,ndis结构:

|tcp/ip| |netbeui| |ipx/spx|
--------------------------------------------
tdi
--------------------------------------------
/miniport接口
imd
protcal 接口
--------------------------------------------
miniport
--------------------------------------------
|nic| |nic| |nic|

2,PACKET的收发流程
包发送:
app -> tcp/ipc...-> tdi(协议层接口) ->imd的miniport接口 -> imd的protcal接口 -> miniport ->nic

包收接:
nic -> miniport -> imd的protocal接口 ->imd 的miniport接口
-> tdi(协议层接口) -> tcp/ipc...-> app


3,如是以上成立
哪就是说包截获可以在imd的miniport接口处进行,也可以在imd的protocal接口进行


哪么是不是在imd的miniport拦接发送包,在IMD的protocal拦接接收包
效率最高?

讲各位高手,新手讨论讨论!







  
        
  
 
blue




版主



回答得分 : 0
贴子数量 : 680
注册日期 : 2001/4/25
在线情况 : 离线
   发表于: 2001/8/9 - 16:10
我认为你的理解有误,对于流程可具体看DDK中,反正我是这样理解的:
包发送,这两条线路是主从的:
| Transport Driver protocol| ---->imd的miniport接口 --->NIC
| Transport Driver protocol| ---->miniport------------->NIC
包接收时同理。
此图为DDK中的流程。


 2001-08-09_ndis.bmp
  
      
  
 
quartz




中级会员



回答得分 : 0
贴子数量 : 207
注册日期 : 2001/7/11
在线情况 : 离线
   发表于: 2001/8/9 - 17:26
我觉得你说得不正确,相比之下我赞成digtal的说法,根据http://www.pcausa.com/resources/ndispacket.htm#ConstructingPacket上所说的理解。


  
      
  
 
Digital




版主



回答得分 : 0
贴子数量 : 62
注册日期 : 2001/8/8
在线情况 : 离线
   发表于: 2001/8/9 - 17:48
2,PACKET的收发流程
包发送:
app -> tcp/ipc...-> tdi(协议层接口) ->imd的miniport接口 -> miniport ->nic

包收接:
nic -> miniport -> imd的protocal接口-> tdi(协议层接口) -> tcp/ipc...-> app


同理3 也就不存在于哪截获效率高的问提了!因为对于发送和接收都只有一个接收点!


感谢各位指教,特别是firewall的讲解





  
        
  
 
zjb




初级会员



回答得分 : 0
贴子数量 : 62
注册日期 : 2001/4/13
在线情况 : 离线
   发表于: 2001/8/10 - 09:17
上面的流程我觉得是最正确的
hehe,我在这里是zjb了,在QQ上才是firewall:)
[zjb 编辑于 2001-08-10 09:19]


  
      
  
 
andor




新手上路



回答得分 : 0
贴子数量 : 16
注册日期 : 2001/8/6
在线情况 : 离线
   发表于: 2001/8/12 - 15:31
所有的Windows NT传送驱动程序都通过传送驱动程序接口(TDI)为内核模式网络客户程序提供服务。TDI规范定义支持基于连接的和非连接的协议的低级接口。所有传送驱动程序显露一个共同的接口,简化了传送驱动程序和它们支持的客户程序的实现。
所以我认为正确得应当是:
包发送:
app -> tdi(协议层接口) ->tcp/ip->imd的miniport接口 -> miniport ->nic

包收接:
nic -> miniport -> imd的protocal接口-> tcp/ipc->tdi(协议层接口) -> app






  
        
  
 
hustfyb




新手上路



回答得分 : 0
贴子数量 : 36
注册日期 : 2001/5/28
在线情况 : 离线
   发表于: 2001/8/13 - 09:11
tdi仅次于app是对的



  
      
  
 
lzwf4




中级会员



回答得分 : 0
贴子数量 : 186
注册日期 : 2002/10/10
在线情况 : 离线
   发表于: 2003/2/16 - 14:58
哈哈,我认为andor是正确的!


  
        
  
 
gjpland




版主



回答得分 : 0
贴子数量 : 252
注册日期 : 2001/9/13
在线情况 : 离线
   发表于: 2003/2/17 - 11:43
引用:
--------------------------------------------------------------------------------
1,ndis结构:

|tcp/ip| |netbeui| |ipx/spx|
--------------------------------------------
tdi
--------------------------------------------
/miniport接口
imd
protcal 接口
--------------------------------------------
miniport
--------------------------------------------
|nic| |nic| |nic|


>> miniport 肯定在protocol下面.

2,PACKET的收发流程
包发送:
app -> tcp/ipc...-> tdi(协议层接口) ->imd的miniport接口 -> imd的protcal接口 -> miniport ->nic

包收接:
nic -> miniport -> imd的protocal接口 ->imd 的miniport接口
-> tdi(协议层接口) -> tcp/ipc...-> app

>>以上流程,应该严格的说,当有一个Protocol把他绑定的网卡设成混杂模式时以上,流程是对的。但这是例外,一般来说miniport下面就是nic


3,如是以上成立
哪就是说包截获可以在imd的miniport接口处进行,也可以在imd的protocal接口进行

>>不一定,一般是NDIS的接口,然后再有NDIS的接口分发到绑定的PROTOCOL,或IMD。

哪么是不是在imd的miniport拦接发送包,在IMD的protocal拦接接收包
效率最高?
>> 是的,但复杂,不确定性增加

讲各位高手,新手讨论讨论!





--------------------------------------------------------------------------------





 

____________________

我思故我在,脑袋不会坏.
HOMEPAGE: www.gjpsoft.com
EMail:gjpland@netease.com

  
放弃瘟草,现吃李草
游客

返回顶部