目录

简介

先决条件

步骤

执行数据包转储

输出文件清理

清除数据包摘要信息

删除起始空格和偏移冒号

正确的数据包偏移

独立数据包字节

将文本文件转换为PCAP

通过Wireshark GUI

通过命令行

故障排除

文本文件正确，但Text2pcap无法读取任何数据包

不一致的偏移

简介

本文档介绍如何将COS接入点生成的数据包转储转换为Wireshark的PCAP格式，作为解决大小限制的解决方法。

先决条件

- 记事本++ — 仅在Windows上可用

- Text2pcap已安装 — 包含在常规安装的Wireshark中

步骤

执行数据包转储

通过在AP命令行上运行debug traffic wired <multiple options> verbose命令来捕获AP数据包转储。您可以在多个过滤器和接口之间进行选择。

在终端中记录会话。

执行此操作时，请注意发送最少量的按键，因为文件上不属于捕获本身的可打印字符越多，在转换之前需要执行的清理就越多。

最简单的方法是进行数据包转储的控制台会话，复制问题，停止转储并立即结束会话。

如果通过ssh执行转储，请使用过滤器仅捕获感兴趣的流量。否则，捕获包含ssh会话数据包。

有关如何配置捕获的完整说明，请参阅排除COS AP故障。

完成后，使用undebug all命令停止捕获。生成的文件如下所示：

AP-9105>en

Password:

AP-9105#debug traffic wired udp

capture  capture packets in pcap file

verbose  Verbose Output

AP-9105#debug traffic wired udp verbose

AP-9105#reading from file /dev/click_wired_log, link-type EN10MB (Ethernet)

22:35:17.1669188 IP CSCO-W-PF320YP6.lan.60354 > 239.255.255.250.3702: UDP, length 656

0x0000:  0100 5e7f fffa 806d 971d a040 0800 4500

0x0010:  02ac d4bb 0000 0111 cd11 c0a8 64d1 efff

0x0020:  fffa ebc2 0e76 0298 757b 3c3f 786d 6c20

0x0030:  7665 7273 696f 6e3d 2231 2e30 2220 656e

0x0040:  636f 6469 6e67 3d22 7574 662d 3822 3f3e

undebug 0x0070:  444c 4e41 444f 432f 312e 3530 2050 6c61

0x0080:  7469 6e75 6d2f 312e 302e 342e 320d 0a4d

0x0090:  414e 3a20 2273 7364 703a 6469 7363 6f76

0x00a0:  6572 220d 0a53 543a 2073 7364 703a 616c

all     0x00b0:  6c0d 0a4d 583a 2033 0d0a 0d0a

tcpdump: pcap_loop: error reading dump file: Interrupted system call

All possible debugging has been turned off

输出文件清理

删除不属于数据包转储本身的任何信息。删除包含dump命令、包含主机名(APname#)的任何提示以及文件中存在的任何其他无关系统日志消息的行。

请特别注意undebug命令，因为它可以在数据包内容之前打印，如上所示。清理之后，生成的文件如下所示：

22:35:17.1669188 IP CSCO-W-PF320YP6.lan.60354 > 239.255.255.250.3702: UDP, length 656

0x0000:  0100 5e7f fffa 806d 971d a040 0800 4500

0x0010:  02ac d4bb 0000 0111 cd11 c0a8 64d1 efff

0x0020:  fffa ebc2 0e76 0298 757b 3c3f 786d 6c20

0x0030:  7665 7273 696f 6e3d 2231 2e30 2220 656e

0x0040:  636f 6469 6e67 3d22 7574 662d 3822 3f3e

0x0070:  444c 4e41 444f 432f 312e 3530 2050 6c61

0x0080:  7469 6e75 6d2f 312e 302e 342e 320d 0a4d

0x0090:  414e 3a20 2273 7364 703a 6469 7363 6f76

0x00a0:  6572 220d 0a53 543a 2073 7364 703a 616c

0x00b0:  6c0d 0a4d 583a 2033 0d0a 0d0a

清除数据包摘要信息

当出现新的偏移量时，检测到新数据包000000开始。Text2pcap可以处理每个数据包之前打印的总结信息，为了避免出现问题最好将其删除。

在记事本++导航到Search>Find，然后选择Mark选项卡，确保Search Mode为Extended。

在Find what:字段输入符号>并单击Mark All。此操作会将包含>符号的所有行添加为书签。

记事本++标记对话框，其中的“查找什么字段，其中包含Chevron字符。

在标记标题后，记事本++突出显示所有文档行，如下所示：

突出显示行（包含Chevron）的数据包转储代码段。

导航到搜索>书签，然后单击删除书签行。执行此操作后，文件类似于以下代码段：

0x0000:  0100 5e7f fffa 806d 971d a040 0800 4500

0x0010:  02ac d4bb 0000 0111 cd11 c0a8 64d1 efff

0x0020:  fffa ebc2 0e76 0298 757b 3c3f 786d 6c20

0x0030:  7665 7273 696f 6e3d 2231 2e30 2220 656e

删除起始空格和偏移冒号

导航到搜索>查找，然后选择替换选项卡，确保搜索模式为扩展。

在Find what:字段输入8个空格。将Replace with:字段为空，然后单击Replace all。这会将每行开头的8个连续空格替换为无内容，从而有效地删除它们。“替换”对话框类似于此图像。

记事本++用“查找包含8个空格的字段”替换对话框。

此操作后生成的文件类似于以下代码段：

0x0000:  0100 5e7f fffa 806d 971d a040 0800 4500

0x0010:  02ac d4bb 0000 0111 cd11 c0a8 64d1 efff

0x0020:  fffa ebc2 0e76 0298 757b 3c3f 786d 6c20

0x0030:  7665 7273 696f 6e3d 2231 2e30 2220 656e

0x0040:  636f 6469 6e67 3d22 7574 662d 3822 3f3e

0x0050:  3c73 6f61 703a 456e 7665 6c6f 7065 2078

0x0060:  6d6c 6e73 3a73 6f61 703d 2268 7474 703a

0x0070:  2f2f 7777 772e 7733 2e6f 7267 2f32 3030

导航到搜索>查找，然后选择替换选项卡，确保搜索模式为扩展。输入：  （注意冒号后面的空格）在Find what:字段。将Replace with:字段为空，然后单击全部替换。

这将替换偏移后的所有冒号和第一个空格。

记事本++用查找用冒号和空格填充的字段替换对话框。

在上一操作之后，生成的输出文件类似于以下代码段：

0x0000 0100 5e7f fffa 806d 971d a040 0800 4500

0x0010 02ac d4bb 0000 0111 cd11 c0a8 64d1 efff

0x0020 fffa ebc2 0e76 0298 757b 3c3f 786d 6c20

0x0030 7665 7273 696f 6e3d 2231 2e30 2220 656e

0x0040 636f 6469 6e67 3d22 7574 662d 3822 3f3e

0x0050 3c73 6f61 703a 456e 7665 6c6f 7065 2078

0x0060 6d6c 6e73 3a73 6f61 703d 2268 7474 703a

0x0070 2f2f 7777 772e 7733 2e6f 7267 2f32 3030

正确的数据包偏移

Text2pcap期望每个数据包内的数据包偏移量为6个字符的十六进制字符串，但AP数据包转储使用0x来表示偏移量。要更正此错误，请导航到搜索>查找，然后选择替换选项卡，确保搜索模式为扩展。

在查找内容：字段。用Replace:字段中的0，然后单击全部替换。这会将偏移内的所有x替换为0，以匹配Text2pcap的预期偏移格式。

记事本++“替换”对话框为“查找用字符x填充的字段”和“替换用字符0填充的字段”。

在上一操作之后，生成的输出文件类似于以下代码段：

000000 0100 5e7f fffa 806d 971d a040 0800 4500

000010 02ac d4bb 0000 0111 cd11 c0a8 64d1 efff

000020 fffa ebc2 0e76 0298 757b 3c3f 786d 6c20

000030 7665 7273 696f 6e3d 2231 2e30 2220 656e

000040 636f 6469 6e67 3d22 7574 662d 3822 3f3e

000050 3c73 6f61 703a 456e 7665 6c6f 7065 2078

独立数据包字节

Text2pcap数据格式要求每对十六进制值用空格分隔，不正确的格式会导致Text2pcap将数据包数据读取为偏移量并失败。

导航到搜索>查找，然后选择替换选项卡，确保搜索模式为正则表达式。

在Find what:字段。

用Replace:字段中的\1 \2（请注意前导空格），然后单击全部替换。

替换操作会查找数据包的十六进制字节，并在每对之间插入一个空格。正则表达式匹配后跟一个十六进制数字对的空格，将它们保存在捕获组1中，然后获取相邻十六进制数字对，将它们保存在捕获组2中。替换项会打印所需的空格以及每个捕获组的内容。

根据文件的长度需要几秒或几分钟。它在运行时会占用大量内存。如果文件很大，请耐心等待。

记事本++用“查找使用正则表达式填充的内容”和“替换”字段填充另一个正则表达式的“替换”对话框替换。

在上一操作之后，生成的输出文件看起来与此代码片断类似，并且已准备好通过Text2pcap进行转换。

000000 01 00 5e 7f ff fa 80 6d 97 1d a0 40 08 00 45 00

000010 02 ac d4 bb 00 00 01 11 cd 11 c0 a8 64 d1 ef ff

000020 ff fa eb c2 0e 76 02 98 75 7b 3c 3f 78 6d 6c 20

000030 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e

000040 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e

000050 3c 73 6f 61 70 3a 45 6e 76 65 6c 6f 70 65 20 78

000060 6d 6c 6e 73 3a 73 6f 61 70 3d 22 68 74 74 70 3a

000070 2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 32 30 30

000080 33 2f 30 35 2f 73 6f 61 70 2d 65 6e 76 65 6c 6f

000090 70 65 22 20 78 6d 6c 6e 73 3a 77 73 61 3d 22 68

将文本文件转换为PCAP

通过Wireshark GUI

要将完整的文件转换为pcap，请打开Wireshark并导航到文件>从十六进制转储导入，此时将显示一个对话框。

Wireshark导入对话框

单击Browse...按钮并选择转储文本文件。确保选定的偏移量类型为十六进制,封装类型为Ethernet，且未选择虚设报头。

单击Import开始转换过程。

通过命令行

要在windows命令行中将文本文件转换为pcap文件，请运行<path to wireshark install folder>\text2pcap.exe <path to text file pcap> <output file path>。

或者，可以将wireshark文件夹添加到PATH中，否则每次转换文件时都需要运行text2pcap引用text2pcap.exe的整个路径。Text2pcap.exe位于wireshark安装文件夹中。

成功进行数据包转储转换后的Windows命令行输出

Text2pcap还包括多个用于预处理文本文件的正则表达式选项，有关详细信息，请参阅Text2pcap手册页。

故障排除

文本文件正确，但Text2pcap无法读取任何数据包

Text2pcap无法读取常用终端仿真程序（安全CRT、Putty或其他）生成的某些文件编码。

更改为使用记事本++的Text2pcap可读取的编码。转到Encoding>UTF-8并保存文件，然后再次转换为pcap。

记事本++编码菜单选项。

不一致的偏移

当数据包中数据部分的字节没有正确成对分开时，会出现此错误，这会导致Text2pcap假设新数据包启动，并且解释失败。

搜索数据包内容中间不带分隔或字符串（如命令）的任何数据包字undebug all节。

尝试转换无效文件之后的Windows命令行输出。不一致的偏移被多次打印到终端。