SplitCap切分TCP流(windows)
说明
最近读了一篇论文,里面用到了SplitCap处理pcap文件,将里面的TCP流划分为单独的pcap文件。简单试了一下发现划分速度还挺快,顺手写了个脚本,因此写一篇纯基础教程来记录下这个过程,方便后面查看。
SplitCap
SplitCap是一款免费工具,用于将大型网络抓包文件(PCAP)按会话、IP地址、MAC地址等标准拆分为更小文件,提升分析效率,支持高效过滤和命令行操作,适合网络安全及流量分析场景。类似的工具其实不少,毕竟wireshark自身也可以做这种划分,或者也有功能更加全面的flowcontainer。但是相对来说都比SplitCap麻烦一点,并且SplitCap更加轻量化,不失为一个轻度使用时的选择。
准备工作
下载
SplitCap官方网站:chat.openai.com/auth/login
下载完之后会得到一个SplitCap.exe的文件,不用双击试图安装,没有图形化界面。
配置SplitCap环境变量(可选)
把下载的SplitCap.exe放到你的任何一个目录下,点击开始菜单搜索“环境变量”,打开进入环境变量配置界面:

点击环境变量,在系统变量中找到“Path”这一栏,点击编辑。

点击新建,将你的SplitCap.exe保存目录填进去:

打开终端,输入
splitcap |
有如下输出证明你配置成功了:

SplitCap使用
SplitCap提供了相关的参数及说明,根据官方的说明和自己的需求选择,这里只说划分流的方法:
splitcap -r [待处理目录] -s flow -o [分割后文件的保存目录]
,例如:
splitcap -r D:\pcaps\email.pcap -s flow -o D:\tmp\data |
如果需要递归对目录下所有文件进行分割,则增加一个参数-recursive
:
splitcap -r D:\pcaps -recursive -s flow -o D:\tmp\data |
这样划分出来的流包含了TCP流和UDP流,我自己的需求是只想要TCP流,所以还需要去除掉UDP文件,每次都先分割再删除太麻烦了,写成了一个脚本合并了这两个过程。注意:如果你不是只需要TCP流那么需要对脚本简单修改后再使用。
新建一个txt文件split.txt
,把下面的代码复制进去,保存,然后修改文件后缀名为bat
。
@echo off |
打开终端,移动到你保存split.bat
的地方,我直接保存在D盘根目录下:
D: |
执行process_pcaps.bat [原始pcap目录] [输出目录]
,例如:
split.bat D:\pcaps\email D:\tmp\data\VPN_Data\VPN_SPLIT\TCP\email |
效果如图:

