如何有效地切片PCAP文件?

时间:2017-03-07 16:34:26

标签: python wireshark scapy tshark

我正在尝试使用Ubuntu中的tshark切片大型PCAP文件(3 GB)。 下面的代码是我想要做的:

tshark -r dia5_20Jan17.pcap -Y '((frame.time >= "2017-01-20 10:32:00") && (frame.time <= "2017-01-20 18:44:00"))'  -w 1.pcap

问题是内存RAM的浪费:

代码使用95/95%的内存(8GB)。是否有更好的方法来切片PCAP文件?我也试过Python ......

3 个答案:

答案 0 :(得分:3)

您可以使用editcap分割捕获文件。例如:

editcap -A "2017-01-20 10:32:00" -B "2017-01-20 18:44:00" infile.pcap outfile.pcap

答案 1 :(得分:2)

tshark不是这项工作的最佳工具。我对libtracegithub link)有很好的使用经验,它为处理捕获文件提供了一个很好的工具箱。具体来说,就您而言,tracesplit工具。

请注意,他们的大多数示例都使用名为erf的捕获格式,而不是pcap。但是他们support pcap个文件,你只需要指定它。

等效的tracesplit命令类似于:

tracesplit --starttime=1484908320 --endtime=1484937840 -compress-type=none pcapfile:dia5_20Jan17.pcap pcapfile:1.pcap

答案 2 :(得分:2)

我现在还没有尝试过,但我的猜测是内存占用主要是由TCP解剖器跟踪连接等引起的。如果你创建一个配置文件,你禁用所有你不需要的解剖器(以及你只是对框架元信息进行过滤,可能所有)你可能会节省大量的内存。

我这样做的方式是

  1. 启动Wireshark
  2. 创建新的个人资料
  3. 使用&#34;分析&#34; - &GT; &#34;启用协议&#34; - &GT; &#34;全部禁用&#34;
  4. 关闭Wireshark
  5. 运行tshark,使用&#34; -C&#34;指定新配置文件;参数
  6. 正如我所说,我还没有针对您的情况对此进行测试,但是在从pcaps刻录数据包时,我使用了减少的解剖设置。它速度更快,错误更少,并且可以节省RAM。