我正在尝试将文本十六进制转储导入到具有毫秒时间戳的wireshark中。
这是我的示例十六进制转储:
0.111
000000 00 e0 1e a7 05 6f 00 10 ........
000008 5a a0 b9 12 08 00 46 00 ........
000010 03 68 00 00 00 00 0a 2e ........
000018 ee 33 0f 19 08 7f 0f 19 ........
000020 03 80 94 04 00 00 10 01 ........
000028 16 a2 0a 00 03 50 00 0c ........
000030 01 01 0f 19 03 80 11 01 ........
1.222
000000 00 e0 1e a7 05 6f 00 10 ........
000008 5a a0 b9 12 08 00 46 00 ........
000010 03 68 00 00 00 00 0a 2e ........
000018 ee 33 0f 19 08 7f 0f 19 ........
000020 03 80 94 04 00 00 10 01 ........
000028 16 a2 0a 00 03 50 00 0c ........
000030 01 01 0f 19 03 80 11 01 ........
3.333
000000 00 e0 1e a7 05 6f 00 10 ........
000008 5a a0 b9 12 08 00 46 00 ........
000010 03 68 00 00 00 00 0a 2e ........
000018 ee 33 0f 19 08 7f 0f 19 ........
000020 03 80 94 04 00 00 10 01 ........
000028 16 a2 0a 00 03 50 00 0c ........
000030 01 01 0f 19 03 80 11 01 ........
如果我在导入时输入“%S”作为日期/时间格式,我可以得到第二个粒度,这很好 - 但是超过秒的所有内容都被截断,所以我没有得到实际的毫秒数。 (纳秒也会很好,但我会坚持几毫秒。)
有任何想法吗?谢谢!
这是不可能的,因为wireshark使用strptime(3)来解析时间戳,而strptime(3)不支持毫秒/分数。
更新1:
一种可能的解决方案是使用wireshark支持的Lua api编写自定义解剖器。更多关于那here。
正如针对Wireshark发行版的一部分text2pcap
所记录的那样,如果需要亚秒级时间戳,则需要在格式字符串中包含尾随“句点”。例如。 %H:%M:%S.
也会在Wireshark UI中正确解析10:15:14.5476
。在你的情况下%S.
应该工作。
来自text2pcap
的帮助:
-t <timefmt>
将数据包之前的文本视为日期/时间代码;指定的参数是strptime支持的排序格式字符串。 示例:时间10:15:14.5476
的格式代码为%H:%M:%S.
注意:必须给出亚秒组件分隔符'。',但不需要模式;剩下的数字假定为几分之一秒。
注意:当前日期/时间的日期/时间字段用作未指定字段的默认值。