pcap文件过滤、分割、合并处理工具
Editcap 与 Mergecap
Wireshark,是最受欢迎的 GUI 嗅探工具,实际上它带了一套非常有用的命令行工具集。其中包括 editcap 与 mergecap。editcap 是一个万能的 pcap 编辑器,它可以过滤并且能以多种方式来分割 pcap 文件。mergecap 可以将多个 pcap 文件合并为一个。可以在windows下或Linux下使用。
参考:https://www.wireshark.org/docs/man-pages/editcap.html
pcap 文件过滤
通过 editcap, 我们能以很多不同的规则来过滤 pcap 文件中的内容,并且将过滤结果保存到新文件中。
首先,以“起止时间”来过滤 pcap 文件。 -A
editcap -A '2014-12-10 10:11:01' -B '2014-12-10 10:21:01' input.pcap output.pcap
也可以从某个文件中删除指定序号的 N 个包。下面的命令行从 input.pcap 文件中删除50个包(从 1 到 50)并将剩余的包保存到 output.pcap 中:
editcap input.pcap output.pcap 1-50
删除单个数据包也很简单,如删除第50个数据包:
editcap input.pcap outpcap 50
进阶的,将1、5、10至20和30至40包从新文件中排除使用:
editcap input.pcapng out.pcapng 1 5 10-20 30-40
如果想从某个文件中提取指定序号的 N 个包。在上一步命令的基础上增加 -r
选项:
editcap input.pcap output.pcap -r 1-50
将每个报文的时间戳提前3.0827秒
editcap -t 3.0827 input.pcap adjusted.pcap
确保所有时间戳严格按照时间顺序排列
editcap -S 0 input.pcap adjusted.pcap
删除前四帧中看到的重复包
editcap -d input.pcap output.pcap
等价于 editcap -D 5 input.pcap output.pcap
删除前100帧中看到的重复包
editcap -D 101 input.pcap output.pcap
移除过去的、小于或等于1/10秒内重复的数据包:
editcap -w 0.1 input.pcap output.pcap
分割 pcap 文件
当需要将一个大的 pcap 文件分割成多个小文件时,editcap 也能起很大的作用。
将一个 pcap 文件分割成数据包数目相同的多个文件
editcap -c <packets-per-file> <input-pcap-file> <output-prefix>
输出的每个文件有相同的包数量,以 < output-prefix >-NNNN的形式命名。
以时间间隔分割 pcap 文件
editcap -i <seconds-per-file> <input-pcap-file> <output-prefix>
合并 pcap 文件
如果想要将多个文件合并成一个,用 mergecap 就很方便。
当合并多个文件时,mergecap 默认将内部的数据包以时间先后来排序。
mergecap -w output.pcap input.pcap input2.pcap [input3.pcap . . .]
如果要忽略时间戳,仅仅想以命令行中的顺序来合并文件,那么使用 -a 选项即可。
例如,下列命令会将 input.pcap 文件的内容写入到 output.pcap, 并且将 input2.pcap 的内容追加在后面。
mergecap -a -w output.pcap input.pcap input2.pcap