我正在尝试将从 Cisco 路由器通过嵌入式数据包捕获功能获取的十六进制转储转换为 pcap 文件。
我的输入格式如下所示
0
0000: 70E42273 90D2003A 7D36A502 81000183 p."s...:}6......
0010: 080045C0 003BB1BF 40000106 8FA20A10 ..E..;..@.......
0020: 91BD0A10 91BEAC03 00B313C4 EE96E803 ................
0030: 1C875018 3D41832D 0000FFFF FFFFFFFF ..P.=A.-........
0040: FFFFFFFF FFFFFFFF FFFF0013 04 .............
1
0000: 003A7D36 A50270E4 227390D2 81000183 .:}6..p."s......
0010: 08004500 00281097 40000106 319E0A10 ..E..([email protected]...
0020: 91BE0A10 91BD00B3 AC03E803 1C8713C4 ................
0030: EEA95010 7B534936 0000 ..P.{SI6..
2
0000: 003A7D36 A50270E4 227390D2 81000183 .:}6..p."s......
0010: 08004500 003B1197 40000106 308B0A10 ..E..;[email protected]...
0020: 91BE0A10 91BD00B3 AC03E803 1C8713C4 ................
0030: EEA95018 7B534508 0000FFFF FFFFFFFF ..P.{SE.........
0040: FFFFFFFF FFFFFFFF FFFF0013 04 .............
text2pcap 不接受上述格式,因为 text2pcap 期望
0000: 70 E4 22 73 90 D2 00 3A 7D 36 A5 02 81 00 01 83
0010: 08 00 45 C0 00 3B B1 BF 40 00 01 06 8F A2 0A 10
有可用的转换器工具或脚本吗?
有可用的转换器工具或脚本吗?
text2pcap
目前不支持此数据格式;然而,我已经打开了一份 Wireshark 错误报告,以便有一天 text2pcap 可能原生支持以这种格式读取数据。请随意关注 Wireshark Bug 16193 - text2pcap 可以增强以接受其他格式的输入以获取对此增强请求的任何更新。
与此同时,您要么必须编写自己的脚本/命令,找人为您编写脚本/命令,要么使用/修改现有脚本/命令,以便将数据转换为 text2pcap 可读的格式。为了帮助您继续前进,我为您提供了一种在我的测试中似乎有效的方法。假设您的输出保存在
dump.in
文件中,您可以运行以下命令:
cat dump.in | sed 's/\([0-9A-F]\{2\}\)/\1 /g' | sed 's/\([0-9A-F]\{2\}\) \([0-9A-F]\{2\}\) : /\1\2 /g' > dump.out
cat
和 sed
都应该在大多数平台上可用。实际上,我在 Windows 10 上的 Cygwin 下运行了这个命令。
注意:我不是 sed 专家,但几乎可以肯定有 sed 专家,他们可能可以弄清楚如何让它在 1 遍中工作;我无法在我愿意花的时间上做到这一点。
使用提供的命令,我能够将数据转换为 text2pcap 可以读取的格式,然后运行
text2pcap -a dump.out dump.pcap
生成有效的 pcap 文件。运行 tshark -r dump.pcap
会生成以下输出:
1 387 2019-11-12 21:49:23.000000 0.000000 0.000000 10.16.145.189 → 10.16.145.190 BGP 77 KEEPALIVE Message
2 387 2019-11-12 21:49:23.000001 0.000001 0.000001 10.16.145.190 → 10.16.145.189 TCP 58 bgp(179) → 44035 [ACK] Seq=1 Ack=20 Win=31571 Len=0
3 387 2019-11-12 21:49:23.000002 0.000002 0.000001 10.16.145.190 → 10.16.145.189 BGP 77 KEEPALIVE Message
我认为这是正确且预期的输出。
只需将文件放在 将十六进制转换为 pcapng