问题描述
我有一个 pcap 文件:a.pcap,其中包含 udp 数据包。
我可以使用wireshark GUI 将此a.pcap 保存到文本文件(.txt)。 (文件 -> 另存为 -> k12 文本文件)。
我如何从命令行用 tshark 做同样的事情。我想要与(文件 -> 另存为 -> k12 文本文件)完全相同的输出文件。
我尝试过以下命令:
tshark -T pdml -r 1.pcap -T fields -e data > a.xml
这将导致将 udp 负载写入 a.xml。这不是我需要的确切内容。
解决方法
我可以使用wireshark GUI 将此a.pcap 保存到文本文件(.txt)。 (文件 -> 另存为 -> k12 文本文件)。
“文本文件”涵盖了多种文本文件格式,例如:
- 一个以文本形式显示数据包摘要的文件(默认情况下是 Wireshark 的最顶部窗格);
- 一个文件,以文本形式显示每个数据包的数据包详细信息(显示每个数据包的 Wireshark 默认中间窗格);
- 显示数据包数据的十六进制转储文件(显示每个数据包的 Wireshark 默认最底部窗格);
- 其中两个的组合,或所有三个的组合;
- 来自数据包摘要的列的 CSV 文件;
- 数据包中特定字段的 CSV 文件;
- 一个 PSML 文件,以 XML 格式显示数据包摘要的组成部分;
- 一个 PDML 文件,以 XML 格式显示每个数据包的详细信息的组成部分;
- 显示每个数据包详细信息的 JSON 文件;
- 一个 C 源文件,显示数据包的原始十六进制数据,每个数据包都在一个单独的 C 字节值数组中;
- 文本数据包捕获格式。
因此,没有将 pcap 文件另存为的“the”文本格式;有很多选择。
“K12文本格式”是一种文本抓包格式;这是某些泰克设备可以写出的 - 从这个意义上说,它类似于写出原始十六进制数据以及一些元数据。但是,从用户界面的角度来看,它更像是 Wireshark 中的“另存为...”,因为它是一种捕获文件格式。
你这样做的方式是
tshark -F {output file format} -r {input file} -w {output file}
因此,如果您想读取 pcap 文件并将其写为“K12 文本格式”文件,您可以使用
tshark -F k12text -r a.pcap -w a.txt
您也可以使用 editcap 来做到这一点:
editcap -F k12text a.pcap a.txt