我需要读取捕获的pcap文件,该文件包含一些专有描述符,它在MAC头之后的文件开头附加了FPGA,向描述符添加额外的2个字节并写回。
我正在尝试使用linux上的libpcap库在C中实现它。我是对的,我需要调用pcap_dump_open()和pcap_dump()来写缓冲区吗?另外,在使用pcap_dump编写缓冲区之前,我需要相应地增加caplen和'len'并相应地增加'len'(加2)?
提前致谢!
答案 0 :(得分:1)
我需要读取捕获的pcap文件,其中包含一些专有描述符,在MAC头后立即由文件开头附加FPGA
所以数据包格式依次为:
向描述符添加额外的2个字节并写回。
因此,专有描述符将变为2个字节,将有效负载向下移动两个字节?
我正在尝试使用linux上的libpcap库在C中实现它。我是对的,我需要调用pcap_dump_open()和pcap_dump()来写缓冲区吗?
这可能是最简单的方法。
另外,在使用pcap_dump编写缓冲区之前,我需要相应地增加caplen和'len'并相应地增加'len'(加2)?
如果要向数据包添加2个字节,是的,在编写数据包之前,您需要将caplen
结构的len
和pcap_pkthdr
字段增加2进行。
除非您确定caplen
足够大以包含MAC标头和专有描述符中的所有数据,直到您要添加2个字节的位置,您还应该检查要确保它是,如果不是,请不要修改有问题的数据包,只修改len
,而不是caplen
,用于该特定数据包。