我使用wireshark捕获数据包并将其保存在pcap文件中。现在我想从文件中读取这个数据包,并向另一个文件写入n次。我该怎么做?
您的问题不够清楚。
-
如果您只想获取一个文件并将其附加到自身(您可以在file->merge中选择wireshark的merge选项-在此处阅读更多信息)
但如果不编辑它,你会得到很多重复的ack和其他"奇怪的东西"——因为序列号会保持不变(当然,如果你只是复制的话)。 -
如果您想进行整个编辑过程,您应该考虑pcap编辑工具,如:bittwist、libcrafter、editcap(假设在您的wireshark安装文件夹中)或powereditpcap(当然您可以找到其他工具:))。
希望这给了你一些方向。
要打开pcap文件,您可以使用:
pcap_t *pcap, *handle;
char errbuf [PCAP_ERRBUF_SIZE];
pcap = pcap_open_offline(argv[1],errbuf);
如果pcap=NULL,则已成功打开pcap文件。现在,您可以循环浏览该文件,直到到达文件的末尾。
struct pcap_pkthdr header;
const unsigned char *packet;
for (i = 0; (packet = pcap_next(pcap, &header)) != NULL; i++) {
<do what you want to do with the packet using the packet pointer>
}