求助,帮分析一下串口校验码算法。
求算法牛人帮看一下, 另外,我申明一下,这个不是破解,仿制别人的产品,只是从别人的产品串口上读取数据,来显示1. 55 AA 43 31 00 00 00 00 39 66
2. 55 AA 43 31 00 00 00 40 7F 66
3. 55 AA 43 31 00 00 40 40 C5 66
4. 55 AA 43 31 00 00 80 40 0B 66
5. 55 AA 43 31 00 52 56 47 6B 66{:smile:}
从以上5组数据可以看出,55 AA 43 31 00前5字节固定不变,最后一字节固定不变, 倒数第2字节可能是校验码。
第1组校验码是0x39, 第2组比第1组多了个0x40, 于是校验码多了0x46. 同样的规律也存在于2,3之间,3,4之间。校验码最后好像都是模0x100。
问题1是:第一组的0x30不知怎么算出来的,试过了各种方法。
问题2是:如果数据不是多了个0x40,而是其它的值,就不知如何计算了。
当然,问题1解决了,问题2也就解决了。 我听说过一个成语,叫“掩耳盗铃”{:titter:} 你的意思是真实的数据藏于校验码中? 感觉无校验 是不是某款电机驱动的串口数据? 是不是上位机控制下位机的数据? 你这也是逗,你这不就是破解别人的协议?虽然看上去你是升级别人的设备。 既然是正常和人家的产品通讯,直接问人家不就行了? 知道是什么芯片就好弄了 就这么点数据量,倒推是分分钟的事。但是好歹得知道每个数据各是什么含义吧!比如某参数由1修改为2,发送的数据有什么变化。多试,就找到规律了 唉,已解决,逆向的算法计算的结果,与上面完全吻合。
数据量不够,把大量的数据导到excel就能看到规律
页:
[1]