修改捕获的pcap并回写

时间:2013-07-12 21:41:13

标签: c pcap libpcap

我需要读取捕获的pcap文件,该文件包含一些专有描述符,它在MAC头之后的文件开头附加了FPGA,向描述符添加额外的2个字节并写回。

我正在尝试使用linux上的libpcap库在C中实现它。我是对的,我需要调用pcap_dump_open()和pcap_dump()来写缓冲区吗?另外,在使用pcap_dump编写缓冲区之前,我需要相应地增加caplen和'len'并相应地增加'len'(加2)?

提前致谢!

1 个答案:

答案 0 :(得分:1)

  

我需要读取捕获的pcap文件,其中包含一些专有描述符,在MAC头后立即由文件开头附加FPGA

所以数据包格式依次为:

  • MAC标头
  • 专有描述符
  • 有效载荷

  

向描述符添加额外的2个字节并写回。

因此,专有描述符将变为2个字节,将有效负载向下移动两个字节?

  

我正在尝试使用linux上的libpcap库在C中实现它。我是对的,我需要调用pcap_dump_open()和pcap_dump()来写缓冲区吗?

这可能是最简单的方法。

  

另外,在使用pcap_dump编写缓冲区之前,我需要相应地增加caplen和'len'并相应地增加'len'(加2)?

如果要向数据包添加2个字节,是的,在编写数据包之前,您需要将caplen结构的lenpcap_pkthdr字段增加2进行。

除非您确定caplen足够大以包含MAC标头和专有描述符中的所有数据,直到您要添加2个字节的位置,您还应该检查要确保它是,如果不是,请不要修改有问题的数据包,只修改len,而不是caplen,用于该特定数据包。