wayon
驱动牛犊
驱动牛犊
  • 注册日期2002-11-15
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1812回复:5

在NDIS中如何获得拦截下的数据包的信息?

楼主#
更多 发布于:2003-04-10 13:57
用passthru拦截下的数据包,
如何才能获得这些数据包的信息?
如数据包的源IP地址等
应该调用什么函数?
望指点!
一定给分,谢谢了。

最新喜欢:

honglun520honglu...
alan2u
驱动巨牛
驱动巨牛
  • 注册日期2001-12-11
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分5926分
  • 威望43813点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-04-10 20:08
用passthru拦截下的数据包,
如何才能获得这些数据包的信息?
如数据包的源IP地址等
应该调用什么函数?
望指点!
一定给分,谢谢了。


你可以看以前的贴子,这个问题有人问过了。
不过看在你分的份上,我再给你讲一下。:D

你取得Packet的指针后,通过这个Packet取得Buffer(不是缓冲区,而是一个结构),然后通过这个Buffer结构,取得缓冲区指针,这个缓冲区内是一个MAC包,开始是MAC头,然后是IP头,得到这个缓冲区指针后你想干什么就干什么了。;D
wayon
驱动牛犊
驱动牛犊
  • 注册日期2002-11-15
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-04-10 23:54
你的意思是先用NdisQueryPacket()得到FirstBuffer,
然后NdisQueryBuffer(FirstBuffer)得到指针,指向的就是MAC包么?
tsinghui
驱动牛犊
驱动牛犊
  • 注册日期2003-04-23
  • 最后登录2003-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-04-24 11:29
建议:
这么个问题时所有初学者都会问到的问题,怎么没有看见这方面的总结?是否可以对这些初级问题作一个汇总这样大家就不会问这些烦人的问题了。不会是大虾们想从我们身上赚分吧?!哈。。开个玩笑。
dana_wx
驱动牛犊
驱动牛犊
  • 注册日期2002-11-08
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-04-25 15:35
如果你只是想看一看东西 而不做任何修改 在passthru 例子了的你打出来纠能看到了啊

tsinghui
驱动牛犊
驱动牛犊
  • 注册日期2003-04-23
  • 最后登录2003-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-04-29 16:10
 
你可以看以前的贴子,这个问题有人问过了。
不过看在你分的份上,我再给你讲一下。

你取得Packet的指针后,通过这个Packet取得Buffer(不是缓冲区,而是一个结构),然后通过这个Buffer结构,取得缓冲区指针,这个缓冲区内是一个MAC包,开始是MAC头,然后是IP头,得到这个缓冲区指针后你想干什么就干什么了。;D


请问缓冲区指针是不是NdisBuffer 中的StartVa啊?如果是的话,是否可以通过内存复制来得到Mac 头啊?但是我实验过,好想不行嘛!
代码如下:
PNDIS_PACKET Packet
PVOID HeaderBuffer;
ETHHDR          EthHeader;

HeaderBuffer = Packet->Private.Head->MappedSystemVa;
NdisMoveMemory(&EthHeader,HeaderBuffer,sizeof(ETHHDR));

请问问题出在什么地方??  


游客

返回顶部