XO威士忌
驱动牛犊
驱动牛犊
  • 注册日期2007-07-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望153点
  • 贡献值1点
  • 好评度40点
  • 原创分0分
  • 专家分0分
阅读:1222回复:3

【求助】还是要请教关于数据包结构的问题

楼主#
更多 发布于:2007-07-25 20:52
在斑竹的指示下,我看了NDIS_PACKET的结构,并且用SoftICE进行了单步调试。发现如下:
我捕获了数据包。在SoftICE下输入命令(Packet为PNDIS_PACKET类型):
db ds:(Packet->Private.Pool)

回车后,屏幕显示:
00  80  53  81  04  00  00  00  ----  02  00  00  00  00  90  68  00
00  00  00  00  00  00  00  00  ----  00  00  00  00  00  00  00  00
00  00  00  00  00  00  00  00  ----  08  90  53  81  41  00  00  00
00  00  00  00  00  00  00  00  ----  58  BA  BE F1  80  4F  50  81
00  00  00  00  00  00  00  00  ----  00  00  00  00  00  00  00  00
...
00  00  00  00  00  00  00  00  ----  00  00  00  00  00  00  00  00

请问如何分析这些数据?(还有包括MacReserved, Reserved, ProtocolReserved等字段)

谢谢赐教!小弟不胜感激!
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-07-25 22:04
看看xpddk下的ndisuio的协议驱动的例子,对照代码,看看recv.c的对packet 的处理
pNdisBuffer = NDIS_PACKET_FIRST_NDIS_BUFFER(pRcvPacket);
while(pNdisBuffer)
{
NdisQueryBufferSafe();
NdisGetNextBuffer(pNdisBuffer, &pNdisBuffer);
}
这几个都是macro,和ndis_packet,ndis_buffer的定义都在ndis.h中
好好看看,就理解如何得到实际上的数据包了
XO威士忌
驱动牛犊
驱动牛犊
  • 注册日期2007-07-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望153点
  • 贡献值1点
  • 好评度40点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-26 09:33
首先感谢斑竹在百忙中指导在下,xpddk好像不太好下,是否2003ddk中也有?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-07-26 09:45
2003中的是ndisprot,和ndisuio基本上是一样的
游客

返回顶部