如何连接两个tcpdump文件(pcap文件)

21

如何将两个tcpdump文件连接起来,使得一个流量紧接着另一个出现在文件中?具体来说,我想要“复制”一个tcpdump文件,使得所有会话按照顺序重复出现多次。

6个回答

34

mergecap可以解决您的问题,但必须使用'-a'选项,否则它会重新排序数据包。然后执行以下命令:

mergecap -a file_1.pcap file_2.pcap file_3.cap -w output_file.pcap

2
请注意,在基于Debian的发行版中,mergecap是“wireshark-common”软件包的一部分。 - Clayton Dukes

7

如其他答案所述,您可以在Wireshark、tcpslice或mergecap中使用“文件”->“合并”功能。您也可以将文件拖入Wireshark的主窗口。如果Wireshark/tcpdump/snort/Ntop等支持pcap-ng,则可以简单地连接捕获文件。


但是它们是否都只是合并数据包,而不关心顺序号和数据包在时间上的移位,以便一个连接段在时间上放置在另一个连接段之后。 - anon
1
如果您使用File->Merge或mergecap,您可以选择在前面添加、按时间顺序合并(根据时间戳交错)或追加。 - Gerald Combs

2

Wireshark有文件->合并命令可以实现此操作。

我还记得mergecap是一个可以做到这一点的工具,但我已经有一段时间没有使用它了。


1

如果想要合并多个pcap文件,请使用此批处理脚本。

所有的pcap文件必须与该批处理脚本在同一文件夹中,并且第一个pcap文件必须命名为01.pcap,第二个必须命名为02.pcap。在列出目录时,没有其他限制。

@echo off
@setlocal enableextensions enabledelayedexpansion

set /a var1=1
set mergecapL="C:\Program Files\Wireshark"

dir /b *.pcap > list.txt
%mergecapL%\mergecap.exe -w %cd%\out%var1%.pcap %cd%\01.pcap %cd%\02.pcap
FOR /F "skip=2 delims=" %%A IN (list.txt) DO (
    set var2=!var1!
    set /a var1+=1
    %mergecapL%\mergecap.exe -w %cd%\out!var1!.pcap %cd%\out!var2!.pcap "%cd%\%%A"
    del out!var2!.pcap
)
del list.txt

1
使用Wireshark中的mergecap命令:
mergecap ... -w output.cap

-4

尝试使用pcapjoiner(商业软件,演示版仅限1000个数据包)。


2
为什么要使用商业、闭源、有限的工具,当你可以使用mergecap呢? - Léo Lam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接