0
我试图对协议的校验和进行反向工程。它似乎是一个4位的基于半字节的协议。 下面是一个分组在协议的二进制表示:协议校验和逆向工程
1000 0001 1000 0001 0000 0001 1111 0010 1010 : 1001
1000 0001 1000 0001 0000 0001 1111 0010 1011 : 1010
1000 0001 1000 0001 0000 0001 1111 0010 1100 : 1111
1000 0001 1000 0001 0000 0001 1111 0010 1101 : 0000
1000 0001 1000 0001 0000 0001 1111 0010 1110 : 1101
1000 0001 1000 0001 0000 0001 1111 0010 1111 : 1110
1000 0001 1000 0001 0000 0001 1111 0011 0000 : 0100
1000 0001 1000 0001 0000 0001 1111 0011 0001 : 0011
1000 0001 1000 0001 0000 0001 1111 0011 0010 : 0010
1000 0001 1000 0001 0000 0001 1111 0011 0011 : 0001
1000 0001 1000 0001 0000 0001 1111 0011 0100 : 1000
1000 0001 1000 0001 0000 0001 1111 0011 0101 : 0111
1000 0001 1000 0001 0000 0001 1111 0011 0110 : 0110
1000 0001 1000 0001 0000 0001 1111 0011 0111 : 0101
1000 0001 1000 0001 0000 0001 1111 0011 1000 : 1100
1000 0001 1000 0001 0000 0001 1111 0011 1001 : 1011
1000 0001 1000 0001 0000 0001 1111 0011 1010 : 1010
1000 0001 1000 0001 0000 0001 1111 0011 1011 : 1001
1000 0001 1000 0001 0000 0001 1111 0011 1100 : 0000
1000 0001 1000 0001 0000 0001 1111 0011 1110 : 1110
1000 0001 1000 0001 0000 0001 1111 0011 1111 : 1101
1000 0001 1000 0001 0000 0001 1111 0100 0000 : 0101
1000 0001 1000 0001 0000 0001 1111 0100 0001 : 0110
1000 0001 1000 0001 0000 0001 1111 0100 0010 : 0111
1000 0001 1000 0001 0000 0001 1111 0100 0011 : 1000
1000 0001 1000 0001 0000 0001 1111 0100 0100 : 0001
1000 0001 1000 0001 0000 0001 1111 0100 0101 : 0010
1000 0001 1000 0001 0000 0001 1111 0100 0110 : 0011
1000 0001 1000 0001 0000 0001 1111 0100 0111 : 0100
最后半字节(后“:”)的某种形式的校验和。我无法弄清楚它是如何计算的。我甚至不确定是否需要考虑所有以前的字段。大多数(如果不是全部)其他36位是简单递增计数器的一部分。
如果有人能帮忙弄清楚算法用来计算csum,那将不胜感激。
- 汤姆
你可以用任何你想要的东西进去看看校验和是如何出来的吗?如果是这样,我建议喂养2,4,8和16行文件,每行文件全部为0,然后全部为1(总共8个文件),然后比较结果。这应该比看柜台更具启发性。我快速地看了一下,看起来似乎有某种楼梯踏步模式正在进行,但看起来并不简单。 – Patrick87