kkkhmy
驱动牛犊
驱动牛犊
  • 注册日期2008-04-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望198点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1762回复:4

[求助] passthru 输出数据包内容

楼主#
更多 发布于:2008-05-30 11:54
新手第一次发帖 请多多支持~ 谢谢

最近在研究NDIS,所以就看了Windows防火墙与网络封包截获技术这本书,
里面有个源程序叫xpassthru的。可以实现调试输出接收到包的诸如大小,长度等信息。现在我想让它
输出源IP和目标IP以及端口,如果的TCP包 还想知道里面详细的内容,诸如GET。。一类的。

但是现在 我用
NdisQueryPacket(packet,&PhysicalBufferCount,&BufferCount,&FirstBuffer,&TotalPacketLength);
获得了FirstBuffer。我定义了以太头,IP头,TCP头

    iphd=(PIP_HEADER)((PCHAR)FirstBuffer+14);//获得IP地址,14是以太头长度
    iphdlen=(iphd->iph_verlen&0xf)*4;//计算IP头长度
    tcphd=(PTCP_HEADER)((PCHAR)iphd+iphdlen);//获得TCP地址

这样获得各部分的地址。
接着用Dbgprint();输出

不过这样输出的东西好象完全对不上啊??这是怎么回事??
或者是我FirstBuffer完全没找对地方??或者是还要进行移位处理??
如果是要移位处理的话应该怎么做?请诸位不吝指教  感激不尽~~~~

kkkhmy
驱动牛犊
驱动牛犊
  • 注册日期2008-04-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望198点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-06-03 20:33
经过这几天的研究,发现:事实上 在接收函数中没有半点问题,在发送函数中只有MAC地址,其他的不知道那去了 全是空的!
stonne
驱动牛犊
驱动牛犊
  • 注册日期2008-05-16
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望14点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-04 15:50
没有代码,没法说
一定要活着!
NDISVCBoy
驱动牛犊
驱动牛犊
  • 注册日期2008-10-11
  • 最后登录2008-10-15
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望8点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-10-11 15:00
iphd=(PIP_HEADER)((PCHAR)FirstBuffer+14); 错,FirstBuffer是缓冲区描述符,不是缓冲区
驱网无线,快乐无限
king00star
驱动牛犊
驱动牛犊
  • 注册日期2006-08-17
  • 最后登录2014-04-19
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望92点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-10-13 10:51
这么老的帖子还翻出来回?
游客

返回顶部