为了学习目的,我想用 Wireshark 分析我手写的十六进制以太网数据包。我尝试将十六进制值写入文本文件并将其导入 Wireshark,但程序没有显示任何内容。
如何使用Wireshark分析键盘输入?
答案1
十六进制字节必须采用以下格式text2pcap期望。您可以使用 Wireshark 命令行text2pcap
配套工具将文本文件转换为 pcap 文件(或通过选项转换为 pcapng 文件-n
),也可以使用 Wireshark 本身。
正如 barlop 所指出的,您可能希望先在 Wireshark 中从一个简单的数据包(或少量数据包)开始,然后通过 Wireshark 的File -> Export Packet Dissections -> as "Plain Text" file...
方法将其导出到文本文件,以便查看结果输出。如果这样做,请确保取消选择“数据包摘要行”和“数据包详细信息”选项,然后选择“数据包字节”;否则您将看不到预期的输出。
如果要保留数据包的时间戳,则需要将其导出。为此,我建议创建一个仅包含绝对时间列的新 Wireshark 配置文件,然后在执行导出时选择“数据包摘要行”,但取消选择“包含列标题”。这会将时间戳写入文本文件,Wireshark 稍后text2pcap
可以在导入时使用该文件。
在 Wireshark 中,您可以使用导入文本文件File -> Import from Hex Dump...
,如果您希望 Wireshark 使用任何已保存的时间戳,请选中“日期/时间”复选框;默认格式“%F %T.”应该可以正常工作。请参阅Wireshark 用户指南了解更多信息。
使用text2pcap
,您可以使用类似下面的方法从文本文件创建一个 Wireshark 可以打开的 pcap 文件:
text2pcap -a -t "%F %T." input.txt output.pcap
以下是一些代表 ICMP 回显请求/响应对的示例文本,可供您参考:
2017-01-12 12:30:00.000000000
0000 00 20 ee 00 00 02 00 20 ee 00 00 01 08 00 45 00 . ..... ......E.
0010 00 28 45 a7 00 00 80 01 71 78 c0 a8 01 64 c0 a8 .(E.....qx...d..
0020 01 01 08 00 a5 d0 00 01 00 3f 48 65 6c 6c 6f 20 .........?Hello
0030 57 6f 72 6c 64 21 World!
2017-01-12 12:30:00.000001000
0000 00 20 ee 00 00 01 00 20 ee 00 00 02 08 00 45 00 . ..... ......E.
0010 00 28 45 a7 00 00 ff 01 f2 77 c0 a8 01 01 c0 a8 .(E......w......
0020 01 64 00 00 ad d0 00 01 00 3f 48 65 6c 6c 6f 20 .d.......?Hello
0030 57 6f 72 6c 64 21 00 00 00 00 00 00 World!......