【发布时间】:2014-09-13 01:35:48
【问题描述】:
我使用了wireshark 来捕获一个数据包并将它保存在一个pcap 文件中。 现在我想从文件中读取这个数据包并写入另一个文件 n 次。 我该怎么做?
【问题讨论】:
我使用了wireshark 来捕获一个数据包并将它保存在一个pcap 文件中。 现在我想从文件中读取这个数据包并写入另一个文件 n 次。 我该怎么做?
【问题讨论】:
你的问题不够清楚。
如果您只想获取文件并将其附加到自身(您可以在文件中选择wireshark的merge选项->merge - 阅读更多here)。
但是如果不对其进行编辑,您会得到很多重复的确认信息和其他“奇怪的东西”——因为序列号会保持不变(当然,如果你只是复制的话)。
如果您想进行整个编辑过程,您应该考虑使用 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>
}
【讨论】: