gpt4 book ai didi

tcp - 如何基于TCP流高效拆分pcap文件?

转载 作者:行者123 更新时间:2023-12-05 04:05:25 28 4
gpt4 key购买 nike

我正在尝试将包含数百个 TCP 流的大型 pcap 文件拆分为单独的文件。我目前的方法(见下文)对我来说似乎效率很低。我的问题是:通过 TCP 流将 pcap 文件拆分为单独文件的最有效方法是什么?

当前方法

在我目前的方法中,我首先使用 tshark 找出文件中有哪些 TCP 流。接下来,对于这些 TCP 流中的每一个,我读取原始文件并提取给定的流。下面的代码片段展示了我的方法:

#!/bin/bash

# Get all TCP stream numbers
for stream in `tshark -r $file -T fields -e tcp.stream | sort -n | uniq`
do
# Extract specified stream from $file and write it to a separate file.
tshark -r "$file" -Y "tcp.stream eq $stream" -w "$file.$stream.pcap"
done

但是,这种方法似乎效率低下,因为 tshark 必须多次读取 pcap 文件(每个流一次)。理想情况下,我想要一个解决方案,它遍历原始 pcap 文件一次,并在找到属于特定连接的数据包后,将其附加到该文件。

其他方法

我也四处寻找其他方法,但它们似乎不适合我的情况:

  • PcapPlusPlus' PcapSplitter对 TCP 连接的定义略有不同。他们将“连接”定义为相同的(协议(protocol)、源 ip、目标 ip、源端口、目标端口)元组,如果多个 TCP 流具有相同的元组,这可能会显示奇怪的行为。我相信 wireshark/tshark 实际上将他们的 TCP 流基于 SYN:SYN-ACK 和 FIN:FIN-ACK 标志(但如果我错了请纠正我)。
  • Python's Scapy Scapy 与 PcapSplitter 存在相同的问题,因为它不提供除上述 5 元组之外的任何拆分 TCP 流的方法。 (当然我可以自己写,但这超出了我目前的工作范围)。

同样对于这两种解决方案,我不完全确定它们是否能够正确处理错误的捕获。

问题

因此,我想就如何以最有效的方式基于TCP流将pcap文件拆分成单独的文件提出一些建议。

最佳答案

你看过Tracewrangler了吗? ?它适用于 Windows,但 documentation确实提到它可以在 wine 下运行.

这可能是我能想到的最好的工具,但您可能想看看 Wireshark wiki 上列出的其他工具 Tools页面。

关于tcp - 如何基于TCP流高效拆分pcap文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51261288/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com