LG IR 数据包中的 4 位 CRC 逆向工程

逆向工程 二元分析 解密 CRC
2021-06-25 01:53:35

我是LG空调的逆向工程IR协议。AC 通常在每次按键时发送遥控器的整个当前状态。发送的数据长度为 28 位,最后 4 位似乎是校验和。我已经尝试过reveng,但没有运气。

位 14-16 是操作模式(加热/冷却/风扇/自动)。位 17-20 是温度 + 15 度,位 22-24 是风扇速度,位 25-28 似乎是 4 位校验和。

以下是示例值:

100010000000100001000101 0001
100010000000100001010101 0010
100010000000100001100101 0011
100010000000100010000100 0100
100010000000100011000101 1001
100010000000100011010101 1010
100010000000100011110101 1100
100010000000000011000101 0001
100010001100000000000101 0001

最后两个,只是位置11改变了,校验和保持不变。这个校验和是如何计算的?

1个回答

正如您在问题中所述,这似乎是一个校验和,而不是标题中提到的 CRC。

将值分组为 4 位块,添加它们,忽略溢出(在这些示例中,忽略溢出意味着减去 32):

1000 1000 0000 1000 0100 0101  0001 8+8+0+8+4+5=33  1
1000 1000 0000 1000 0101 0101  0010 8+8+0+8+5+5=34  2
1000 1000 0000 1000 0110 0101  0011 8+8+0+8+6+5=35  3
1000 1000 0000 1000 1000 0100  0100 8+8+0+8+8+4=36  4
1000 1000 0000 1000 1100 0101  1001 8+8+0+8+12+5=41 9
1000 1000 0000 1000 1101 0101  1010 8+8+0+8+13+5=42 10
1000 1000 0000 1000 1111 0101  1100 8+8+0+8+15+5=44 12
1000 1000 0000 0000 1100 0101  0001 8+8+0+0+12+5=33 1
1000 1000 1100 0000 0000 0101  0001 8+8+12+0+0+5=33 1