如何在合并到单个文件之前为多个 pcap 文件中的所有数据包添加注释

How to add a comment to all packets in numerous pcap files before merging into a single file

我正在尝试将多个 pcap 文件合并在一起以进行 post- 捕获后的处理,但是,我需要保留有关每个数据包的源文件的信息(文件名包含有关网络分路器的信息资源)。此信息在数据包本身的任何地方都不可用。我的想法是使用 pcapng 的便利性,它允许向数据包添加框架注释 (frame.comment),并且可以使用 editcap 以编程方式完成。我可以使用它来将文件名中的信息添加到每个数据包中,这些数据包将被转发到合并的文件中。然而,似乎 editcap 只允许您向特定帧 editcap -a <framenumber>:<comment> 添加评论,而不是一系列帧。手动执行此操作不是一个可行的选择,因为我正在处理大量大型 pcap 文件。想法?

这将递归地将文件名保存为每个 pcap 中每个数据包的注释。如果您只需要对一个文件执行此操作,请删除外部 for 循环。

for f in $(find *.pcap); do
  num_frames=$(capinfos -rcT "$f" | awk '{ print $NF }')
  for i in $(seq 1 $num_frames); do
    editcap "$f" "$f" -a "$i:$f" 
  done
done
  • find *.pcap会递归查找该目录下所有pcap类型的文件
  • capinfos 是一个类似 wireshark 的 wireshark CLI 工具,提供有关捕获的信息

请注意,您可以动态包含一些其他评论,例如时间戳。