阅读:1572回复:4
如何在IM中自己组装一个Ping包?有没有例子啊(35分)
如何在IM中自己组装一个Ping包?如何能收到回应?
|
|
沙发#
发布于:2003-06-15 19:28
为什么不行?
|
|
板凳#
发布于:2003-06-17 13:16
你可以用抓包工具,抓个ICMP的包,然后照着在IMD中添一个包
然后调用NDISsend发送出去不就可以了没? 在ptreceive中判断一下收到包的目的IP,就可以了 |
|
|
地板#
发布于:2003-06-18 23:37
NDISsend行吗?这样不是又发去而不是回给上层了吗?
|
|
地下室#
发布于: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 |
|
|