首页 > 解决方案 > 在 Linux 中从 Pcap 文件的数据包中插入、删除和修改字节

问题描述

我需要一种在 pcap 文件的数据包中插入、删除或修改十六进制数据字节的方法。是否有tshark命令或任何其他方法来执行此操作。

00292c0: 900b 0000 0018 5a82 5a82 a57e 5a82 a57e  ......Z.Z..~Z..~
00292d0: a57e a57e 5a82 5a82 a57e 5a82 a57e 5a82  .~.~Z.Z..~Z..~Z.
00292e0: a57e 5a82 5a82 5a82 a57e a57e 5a82 a57e  .~Z.Z.Z..~.~Z..~

假设我想将数据的前 4 个字节从 900b 0000 修改为 801b 0101 或删除第一个字节或在 a57e 之后的末尾添加一组额外的字节?我该怎么做?

标签: linuxwiresharkpcaptsharkeditcap

解决方案


有多种方法可以修改数据包数据。例如:

  • 您可以使用十六进制编辑器。有很多搜索和使用适合您的任何一个。也许看看这个十六进制编辑器的比较来帮助指导你。我还要注意,Notepad++有一个十六进制编辑器插件可供您使用,以防您感兴趣。
  • 您可以使用诸如WireEdit 之类的工具。
  • 从 Wireshark 中,您可以通过“文件 -> 导出数据包剖析 -> 作为纯文本... ”将数据包导出到纯文本文件,并设置数据包格式选项,以便导出数据包字节,然后使用任何文本编辑器根据需要修改数据包数据。之后,您可以使用text2pcap将修改后的文本文件转换回二进制 pcap 文件,然后可以将其加载回 Wireshark,或者您可以使用 Wireshark 的内置功能直接导入包含数据包修改后的十六进制转储的文本文件您之前通过“文件 -> 从十六进制转储导入... ”导出。 笔记在编辑数据包时,尤其是在添加/删除字节时,您可能还需要进行其他调整以使数据包仍然有意义。这是因为数据包数据中经常嵌入长度字段,因此您需要确保新的长度与数据匹配。而且您可能必须在几个地方进行更改。如果您关心正确的校验和/CRC,那么您可能还需要调整这些字段。
  • 捕获文件编辑器和/或匿名器部分的 Wireshark工具wiki 页面中的其他可能解决方案。

推荐阅读