在NDIS驱动中,如何把接受的数据包。转发出去。有人说改IP头或IP。然后算校检,然后发送出去,是这样吗?现在的问题是,在xpassthru中调用MPSendOnePacket自定义函数在这个函数里面如何改IP地址和校检?我是刚学的菜鸟,请前辈们指点一下,非常感谢了。如果有源码,...
全文
回复(8) 2012-12-07 20:20 来自版块 - NDIS网络接口开发
表情
xczc10@sina.cn谢谢大家了,虽然我还没有搞定,但是还是要谢谢你们(2012-12-12 21:53)
zhangfresh修改报文的ip,最好是在mpsendpackets里面,抓到要发送的报文后,在内存buffer里面修改报文内容(参照楼上的格式),然后用修改后的报文内存,另外组建一个packet发送出去。 至于原来的packet,先不动他,将它的地址保存在新packet里面(见下面的代码,新pa...(2012-12-11 10:12)
hsluoyz用下面的几个结构套在字节指针上,再修改就行了,IP地址注意字节序 #define ETHER_ADDR_LEN 6 typedef struct _Eth_Header { UCHAR eth_DstAddr[ETHER_ADDR_LEN]; UCHAR ...(2012-12-10 23:46)
xczc10@sina.cnhsluoyz:收报后转发我在网上快找死了也没找到,后来自己写的,还算能用,就是不知道有没有内存泄露什么的,主要函数就是下面几个,看名字就知道了 NDIS_STATUS getPacketBuffer(PNDIS_PACKET Packet, PUCHAR *ppBuffer,...(2012-12-10 13:18)
xczc10@sina.cnhsluoyz:收报后转发我在网上快找死了也没找到,后来自己写的,还算能用,就是不知道有没有内存泄露什么的,主要函数就是下面几个,看名字就知道了 NDIS_STATUS getPacketBuffer(PNDIS_PACKET Packet, PUCHAR *ppBuffer,...(2012-12-10 10:52)
hsluoyz收报后转发我在网上快找死了也没找到,后来自己写的,还算能用,就是不知道有没有内存泄露什么的,主要函数就是下面几个,看名字就知道了 NDIS_STATUS getPacketBuffer(PNDIS_PACKET Packet, PUCHAR *ppBuffer, UINT *p...(2012-12-10 00:22)
xczc10@sina.cn有没有什么资料参考呢?如果能修改IP和包的内容在转发出去,那需要怎么做? 很是郁闷(2012-12-09 15:34)
hsluoyzxpassthru没看过,只看过passthru,它的packet buffer和内存都是自己分配的话,肯定是可以改的(2012-12-08 23:53)

返回顶部