Editcap 指南:有效处理网络数据包转储的 11 个示例

举报
Tiamo_T 发表于 2021/10/11 08:01:46 2021/10/11
【摘要】 Editcap 实用程序用于从转储文件中选择或删除特定数据包并将它们转换为给定格式。Editcap 不像 ethereal 那样执行数据包捕获。相反,它对捕获的数据包进行操作并将一些所需的数据包写入另一个文件。我们可以将各种选项传递给 editcap 以获得我们喜欢的数据包。在本文中,让我们看看 11 个关于如何使用 editcap 有效处理数据包转储的实际示例。editcap 的主要目的以...

Editcap 实用程序用于从转储文件中选择或删除特定数据包并将它们转换为给定格式。Editcap 不像 ethereal 那样执行数据包捕获。相反,它对捕获的数据包进行操作并将一些所需的数据包写入另一个文件。我们可以将各种选项传递给 editcap 以获得我们喜欢的数据包。

在本文中,让我们看看 11 个关于如何使用 editcap 有效处理数据包转储的实际示例。

editcap 的主要目的

以下是使用 editcap 命令的主要原因。

  • 将转储文件分成多个文件。
  • 仅选择所需的数据包。
  • 将捕获文件从一种格式转换为另一种格式。
  • 能够从压缩的转储文件中读取。
  • 通过仅加载选择性数据包,而不是加载整个转储,使网络分析器工具的工作更轻松。
  • 所有功能都可以减少处理或分析数据包的时间消耗。


让我们假设您必须仅分析巨大转储文件中的某些特定数据包类型的场景。在这种情况下,我们不能使用网络数据包分析器(wireshark 或 ethereal)在单个 shoh 中加载巨大的转储文件,因为这将是一个 CPU 密集型进程,系统可能会挂起。Editicap 实用程序通过仅提供相关数据包使工作更轻松,因此它可以由网络分析器工具快速加载。


edicap 使用的 11 个实际例子

示例 1:从 input_dump 文件的开头丢弃一组数据包

output_dump 文件将包含除前 10 个数据包之外的所有数据包。

# editcap -v input_dump output_dump 1-10

示例 2:丢弃 input_dump 文件中间的一组数据包

output_dump 文件将包含除 200 到 210 的数据包之外的所有数据包。

# editcap -v input_dump output_dump 200-210

示例 3:选择多个范围的数据包(从头到中)

output_dump 文件将包含前 10 个数据包以及来自 100 和 200 的数据包。

# editcap -r -v input_dump output_dump 1-10 100-200

示例 4:使用选项 -T 更改捕获文件的封装类型

默认情况下,转储文件的封装类型是 ether。下面的示例,将捕获文件转换为 ieee-802-11-bsd 格式


# editcap -v -T ieee-802-11-radiotap input_dump output_dump

示例 5:处理压缩的 input_dump 文件

editcap 自动检测压缩的捕获文件格式。目前它支持 gzip 格式。在下面的示例中,它从压缩的输入文件中获取数据包,并将前 10 个数据包和介于 100 和 200 之间的数据包写入 o​​utput_dump 文件。

# editcap -r -v input_dump.gz output_dump 1-10 100-200

示例 6:使用选项 -A 和 -B 在特定时间段之间提取数据包

此示例创建 output_dump,其中包含在选项 A 中提到的时间和选项 B 中提到的时间之间捕获的数据包。

# editcap -v -A "2020-02-11 11:26:30" -B "2020-02-11 11:27:00" input_dump output_dump

示例 7:使用选项 -t 更改数据包的时间戳(减少或提前)

将数据包的时间戳提前到一小时。

# editcap -t 3600 input_dump output_dump


要将数据包的时间戳减少到 30 分钟,

# editcap -t -1800 input_dump output_dump

示例 8:使用选项 -d 从 output_dump 文件中删除重复数据包

下面的示例回顾前一帧以查找重复项。最后它给出了不包含重复的转储。

# editcap -v -d input_dump output_dump

示例 9:使用选项 -s 将数据包截断为特定长度

生成 ouptut_dump 文件,数据包长度限制为 100。这在很多情况下非常有用。例如,如果您只想获取所有数据包的 IP 层,而不需要其他层,则可以使用此方法。

# editcap -s 100 -v -A "2020-02-11 11:26:30" -B "2020-02-11 11:27:00" input_dump.gz output_dump

示例 10:使用选项 -c 将 input_dump 文件分成多个文件

将单个转储分成多个文件,每个文件包含指定数量的数据包。

# editcap -v -c 1000 input_dump output

 
如果 input_dump 包含 5000 个数据包,editcap 将生成以下 5 个不同的输出文件。

output-00000 
output-00001    
output-00002
output-00003
output-00004

示例 11:使用选项 -C 从所有数据包的底部删除某些字节

此示例从每个数据包中删除 10 个字节并写入输出文件。您可以通过查看wireshark中的输出文件来确认这一点,每个数据包的帧层将显示“wireshark 50 bytes bytes, 40 bytes captures”(这里数据包的实际大小为50字节)。

# editcap -C 10 input_dump output
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。