阅读:1762回复:4
[求助] passthru 输出数据包内容
新手第一次发帖 请多多支持~ 谢谢
最近在研究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完全没找对地方??或者是还要进行移位处理?? 如果是要移位处理的话应该怎么做?请诸位不吝指教 感激不尽~~~~ |
|
沙发#
发布于:2008-06-03 20:33
经过这几天的研究,发现:事实上 在接收函数中没有半点问题,在发送函数中只有MAC地址,其他的不知道那去了 全是空的!
|
|
板凳#
发布于:2008-06-04 15:50
没有代码,没法说
|
|
|
地板#
发布于:2008-10-11 15:00
iphd=(PIP_HEADER)((PCHAR)FirstBuffer+14); 错,FirstBuffer是缓冲区描述符,不是缓冲区
|
|
|
地下室#
发布于:2008-10-13 10:51
这么老的帖子还翻出来回?
|
|