linux下pcap文件解析头文件,在linux下操作pcap文件的各種方法整理

Editcap 與 Mergecap

Wireshark,是最受歡迎的 GUI 嗅探工具,實際上它帶了一套非常有用的命令行工具集。其中包括 editcap 與 mergecap。editcap 是一個萬能的 pcap 編輯器,它可以過濾並且能以多種方式來分割 pcap 文件。mergecap 可以將多個 pcap 文件合並為一個。 這篇文章就是基於這些 Wireshark 命令行工具的。

如果你已經安裝過 Wireshark 了,那么這些工具已經在你的系統中了。如果還沒裝的話,那么我們接下來就安裝 Wireshark 命令行工具。 需要注意的是,在基於 Debian 的發行版上我們可以不用安裝 Wireshark GUI 而僅安裝命令行工具,但是在 Red Hat 及 基於它的發行版中則需要安裝整個 Wireshark 包。

Debian, Ubuntu 或 Linux Mint

代碼如下:

$sudo apt-get install wireshark-common

Fedora,CentOS或RHEL

代碼如下:

$sudo yum install wireshark

當安裝好工具后,就可以開始使用edit與mergecap了。

pcap 文件過濾

通過 editcap, 我們能以很多不同的規則來過濾 pcap 文件中的內容,並且將過濾結果保存到新文件中。

首先,以“起止時間”來過濾 pcap 文件。 " - A < start-time > 和 " - B < end-time > 選項可以過濾出在這個時間段到達的數據包(如,從 2:30 ~ 2:35)。時間的格式為 “ YYYY-MM-DD HH:MM:SS"。代碼如下:

$edit -A '2014-12-10 10:11:01' -B '2014-12-10 10:21:01' input.pcap output.pcap

也可以從某個文件中提取指定的 N 個包。下面的命令行從 input.pcap 文件中提取100個包(從 401 到 500)並將它們保存到 output.pcap 中:

代碼如下:

$editcap input.pcap output.pcap 401-500

使用 "-D < dup-window >" (dup-window可以看成是對比的窗口大小,僅與此范圍內的包進行對比)選項可以提取出重復包。每個包都依次與它之前的 < dup-window > -1 個包對比長度與MD5值,如果有匹配的則丟棄。

代碼如下

$ editcap -D 10 input.pcap output.pcap

遍歷了 37568 個包, 在 10 窗口內重復的包僅有一個,並丟棄。

也可以將 < dup-window > 定義成時間間隔。使用"-w < dup-time-window >"選項,對比< dup-time-window > 時間內到達的包。

代碼如下:

$editcap -w 0.5 input.pcap out.pcap

檢索了 50000 個包, 以0.5s作為重復窗口,未找到重復包。

分割 pcap 文件

當需要將一個大的 pcap 文件分割成多個小文件時,editcap 也能起很大的作用。

將一個 pcap 文件分割成數據包數目相同的多個文件

代碼如下:

$ editcap -c

輸出的每個文件有相同的包數量,以 < output-prefix >-NNNN的形式命名。

以時間間隔分割 pcap 文件

復制代碼代碼如下:

$ editcap -i

合並 pcap 文件

如果想要將多個文件合並成一個,用 mergecap 就很方便。

當合並多個文件時,mergecap 默認將內部的數據包以時間先后來排序。

復制代碼代碼如下:

$ mergecap -w output.pcap input.pcap input2.pcap [input3.pcap . . .]

如果要忽略時間戳,僅僅想以命令行中的順序來合並文件,那么使用 -a 選項即可。

例如,下列命令會將 input.pcap 文件的內容寫入到 output.pcap, 並且將 input2.pcap 的內容追加在后面。

復制代碼代碼如下:

$ mergecap -a -w output.pcap input.pcap input2.pcap

總結

在這篇指導中,我演示了多個 editcap、 mergecap 操作 pcap 文件的例子。除此之外,還有其它的相關工具,如 reordercap用於將數據包重新排序,text2pcap 用於將 pcap 文件轉換為文本格式, pcap-diff用於比較 pcap 文

#########################功能说明################## pcapedit 程序可对pcap报文进行报文过滤,剥离部分包头及打标签功能。 支持通过pcap.conf配置文件设置标签内容及长度。 程序启动时,会导入配置文件中的标签内容,之后会将pcap包中的每个数据包末尾都打上该标签。标签内容填充不足,自动补0. ################################################## *************************可处理报文格式说明******** 可处理的报文格式需如下:ETH格式 --》ipv4 --> udp --> gtp_2152 --> ipv4 -->tcp -->http 剥离特殊包头后的帧格式:ETH格式 --》ipv4 --> tcp -->http *************************************************** @@@@@@@@@@@@@@@@@@@@@@@@@使用说明@@@@@@@@@@@@@@@@@ 将pcapedit 和 配置文件放到用一路径下,处理处的结果文件保存在当前路径。 [root@localhost cll]# ./pcapedit Input the pcap file name:3g_ctrl_data.pcap //符合帧格式的pcap文件处理结果 starting parse pcap file... 3g_ctrl_data.pcap input mark success! Input the pcap file name:aagxxx_data.pcap //符合帧格式的pcap文件处理结果 starting parse pcap file... aagxxx_data.pcap input mark success! Input the pcap file name:new3g_user.pcap //不符合帧格式的pcap文件处理结果 starting parse pcap file... cann't find target format packet. new3g_user.pcap input mark fail! Input the pcap file name:exit //exit 退出程序 [root@localhost cll]# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值