我在两台设备之间记录了蓝牙传输,我想对协议进行反向工程。我想出了一切,但不是日期时间格式。 我有以下已知的十六进制值和日期对:
00:fe:a6:11:f5:0d:c7:19:00:ff:01:09:00:00:00:00 --> 03.06.2017 - 07:44:06
00:fe:68:40:f4:0d:da:15:00:ff:01:09:00:00:00:00 --> 02.06.2017 - 16:51:20
00:fe:33:3d:f4:0d:c6:14:00:ff:01:09:00:00:00:00 --> 02.06.2017 - 16:37:39
00:fe:83:1d:f4:0d:ba:15:00:ff:01:09:00:00:00:00 --> 02.06.2017 - 14:22:27
00:fe:c2:19:f4:0d:7d:16:00:ff:01:09:00:00:00:00 --> 02.06.2017 - 14:06:26
00:fe:f5:15:f4:0d:b2:16:00:ff:01:09:00:00:00:00 --> 02.06.2017 - 13:50:13
00:fe:67:14:f4:0d:e4:16:00:ff:01:09:00:00:00:00 --> 02.06.2017 - 13:43:35
00:fe:80:0f:f4:0d:6a:17:00:ff:01:09:00:00:00:00 --> 02.06.2017 - 13:22:40
如何将其从十六进制值转换为日期/时间格式?我已经尝试过,如果他们以unix时间戳格式传输日期/时间,但似乎他们使用的是不同的东西。
有人看到了解决方案吗?
由于
答案 0 :(得分:0)
我需要有更多的数据才能完全理解正在发生的事情,但这是我可以从有限的数据中收集的信息:
|Grp 1 |Grp 2 |Grp 3 |Grp 4 | Grp 5 | Padding? | |------|------|------|------|-----------|------------| |00 fe |a6 11 |f5 0d |c7 19 |00 ff 01 09|00 00 00 00 | : 03.06.2017 - 07:44:06 |00 fe |68 40 |f4 0d |da 15 |00 ff 01 09|00 00 00 00 | : 02.06.2017 - 16:51:20 |00 fe |33 3d |f4 0d |c6 14 |00 ff 01 09|00 00 00 00 | : 02.06.2017 - 16:37:39 |00 fe |83 1d |f4 0d |ba 15 |00 ff 01 09|00 00 00 00 | : 02.06.2017 - 14:22:27 |00 fe |c2 19 |f4 0d |7d 16 |00 ff 01 09|00 00 00 00 | : 02.06.2017 - 14:06:26 |00 fe |f5 15 |f4 0d |b2 16 |00 ff 01 09|00 00 00 00 | : 02.06.2017 - 13:50:13 |00 fe |67 14 |f4 0d |e4 16 |00 ff 01 09|00 00 00 00 | : 02.06.2017 - 13:43:35 |00 fe |80 0f |f4 0d |6a 17 |00 ff 01 09|00 00 00 00 | : 02.06.2017 - 13:22:40
真正能够扭转协议的唯一方法就是拥有大量不同的信息。日期/月/天和时间戳不同的日期,时间相似但分钟/秒不同等等。
道歉,如果这对你没什么帮助,无论哪种方式都好运!
答案 1 :(得分:0)
你的答案。
我发现了如何解码日期和时间。 Grp 3和Grp 2处于unix时间的小端,但从2010年开始奇怪,而不是从1970年开始。
所以我必须增加40年才能获得正确的一年。
例如:
00:fe:a6:11:f5:0d:c7:19:00:ff:01:09:00:00:00:00 --> 03.06.2017 - 07:44:06
unix时间解码:
0d:f5:11:a6 --> 234164646 -> unix time stamp 1977-06-03T05:44:06+00:00 in ISO 8601
在此unix时间戳上添加40年我得到了正确的日期和时间。