阅读:1812回复:5
在NDIS中如何获得拦截下的数据包的信息?
用passthru拦截下的数据包,
如何才能获得这些数据包的信息? 如数据包的源IP地址等 应该调用什么函数? 望指点! 一定给分,谢谢了。 |
|
最新喜欢:honglu... |
沙发#
发布于:2003-04-10 20:08
用passthru拦截下的数据包, 你可以看以前的贴子,这个问题有人问过了。 不过看在你分的份上,我再给你讲一下。:D 你取得Packet的指针后,通过这个Packet取得Buffer(不是缓冲区,而是一个结构),然后通过这个Buffer结构,取得缓冲区指针,这个缓冲区内是一个MAC包,开始是MAC头,然后是IP头,得到这个缓冲区指针后你想干什么就干什么了。;D |
|
板凳#
发布于:2003-04-10 23:54
你的意思是先用NdisQueryPacket()得到FirstBuffer,
然后NdisQueryBuffer(FirstBuffer)得到指针,指向的就是MAC包么? |
|
地板#
发布于:2003-04-24 11:29
建议:
这么个问题时所有初学者都会问到的问题,怎么没有看见这方面的总结?是否可以对这些初级问题作一个汇总这样大家就不会问这些烦人的问题了。不会是大虾们想从我们身上赚分吧?!哈。。开个玩笑。 |
|
地下室#
发布于:2003-04-25 15:35
如果你只是想看一看东西 而不做任何修改 在passthru 例子了的你打出来纠能看到了啊
|
|
5楼#
发布于:2003-04-29 16:10
你可以看以前的贴子,这个问题有人问过了。 请问缓冲区指针是不是NdisBuffer 中的StartVa啊?如果是的话,是否可以通过内存复制来得到Mac 头啊?但是我实验过,好想不行嘛! 代码如下: PNDIS_PACKET Packet PVOID HeaderBuffer; ETHHDR EthHeader; HeaderBuffer = Packet->Private.Head->MappedSystemVa; NdisMoveMemory(&EthHeader,HeaderBuffer,sizeof(ETHHDR)); 请问问题出在什么地方?? |
|