在修改vim中的十六进制后,Wireshark不会打开pcap

时间:2018-08-24 00:47:36

标签: wireshark pcap

我有一个pcap文件,可以在Wireshark中打开。我使用:%!xxd以十六进制模式在Vim中打开了pcap文件,并修改了明文字母,例如AB。但是,在使用:%!xxd -r将文件更改回文本模式并尝试在Wireshark中打开文件后,出现两种情况(取决于我在PCAP中编辑的内容):

  1. 捕获文件似乎在数据包中间被剪短了。
  2. “ capture.pcap”文件不是Wireshark理解的格式的捕获文件。

如果我以十六进制模式返回到同一文件并撤消更改,即从B回到A,我肯定会遇到上述错误2。

有什么主意为什么只在十六进制模式下用一个字母修改数据包会导致Wireshark表现这种方式?为什么修改回原始状态肯定会破坏pcap文件?

1 个答案:

答案 0 :(得分:1)

vimxxd -r命令在末尾附加换行符似乎是一个问题。只是从十六进制转换然后再次返回也会触发此操作。

运行以下内容:

xxd < 51996055.pcap > 51996055.pcap.before
vim -c ':%!xxd' -c '%!xxd -r' -c ':wq' 51996055.pcap
xxd < 51996055.pcap > 51996055.pcap.after
diff 51996055.pcap.before 51996055.pcap.after

给出以下输出:

59c59
< 000003a0: 3031 3233 3435 3637                      01234567
---
> 000003a0: 3031 3233 3435 3637 0a                   01234567.

在Wireshark中打开此文件,这是您遇到的第一个错误。

运行:%!xxd本身不会使vim进入十六进制模式,它只是将当前缓冲区替换为通过命令xxd传递输出的输出。反之亦然。

some ways可以提高vim的十六进制编辑能力,或者您可以尝试使用另一种特定于十六进制的编辑器,例如hexedit