我正在尝试对通过串行端口接收到的一些数据进行逆向工程。
发送数据的硬件包括 GPS、指南针和电源监控单元(发送有关电池的信息)。
我收到了三种不同长度的消息。这些在下面给出:
55 BB 55 BB 33 00 E7 29 B4 BD D7 82 61 39 23 C4 04 74 04 38 6B 02 12 8E 8D F3 E3 D7 4B 59 91 9C 01 98 0F C5 43 95 D2 03 D2 CC 4B B1 9A A2 54 8C 99 4A 00 DD 02 AB CD
55 BB 55 BB 38 00 85 1F EA BD DE D0 87 7F 14 9A 5C 46 78 7A D1 E7 29 56 2E 7D F9 A9 FF DE E4 6C F2 F5 26 0D EF CD 6A ED B0 28 1D 9E DB 9D 8E BA 5F 58 26 3F B3 DD 03 00 A6 73 AB CD
55 BB 55 BB 24 00 F3 8B FD F6 BF D0 B0 06 05 8D 7C 40 19 CF 29 72 0E 88 B5 0F 4E 56 67 1C 56 AE F8 A3 01 00 DE 05 AB CD
到目前为止我所了解的是:
每条消息都以 55 BB 55 BB 开头,我假设它是消息头。
该字段(字节 5)是从第 5 个字节到最后一个字节的消息长度。
然后是 00,这可能标志着有效载荷的开始。
最后两个字节总是 AB CD,它可能是尾随头。
倒数第四个和倒数第三个字节可能是消息的校验和。
最后的第五个字节始终为零,这可能表示有效负载的结束。
校验和是通过使用 TCP 替代校验和选项文档 (rfc1145) 中描述的 8 位 Fletcher 校验和算法获得的。
有效载荷中的数据没有意义。我必须弄清楚顺序以及可能发生的任何加密。似乎他们正在对数据进行异或运算,并且每次异或掩码都会发生变化。但是他们在数据中发送 Xor 掩码。我尝试用每个字节对整个字符串进行异或运算,但无法获得与已知的纬度/经度值类似的东西。
有人可以就我应该如何进行提供一些指导吗?
以前在这里做过一些工作。Rcgroups 帖子#15
这是一个包含其余数据的 rft 文件。 4shared Link RTF文件