高分请教 串口通信数据的检验方式破解

biscuit2 2008-11-26 10:45:00
FF 02 0B 20 02 16 08 98 21 52 01 D2 8B 03
FF 02 0B 20 02 16 08 98 21 53 01 0A 92 03
FF 02 0B 20 02 16 08 98 21 59 01 7A 6F 03
FF 02 0B 20 02 16 08 98 21 5F 01 AA 3B 03
FF 02 0B 20 02 16 08 98 21 B4 01 9B 36 03

以上5行数据,每行独立为一组数据包,前面的FF 02 0B 20是固定的,后面的01也是固定,03是结束标志,看起来,03前面的两个字节有点象CRC16校验的结果,但我用CRC16算法得出的结果跟他不一样.

请高手赐教!
...全文
271 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxxzzw 2008-12-16
  • 打赏
  • 举报
回复
不好搞,一般来说,校验数据只针对有效数据,因此应该首先确认传输的有效数据点哪几个字节
然后确认设备传送的数据类型,是以字节、字、还是双字为单位,如果以字节为单位,校验码应该按字切方式测试,否则按字或双字方式测试
FF 02 0B 20 02 16 08 98 21 52 01 D2 8B 03
FF 02 0B 20 02 16 08 98 21 53 01 0A 92 03
FF 02 0B 20 02 16 08 98 21 59 01 7A 6F 03
FF 02 0B 20 02 16 08 98 21 5F 01 AA 3B 03
FF 02 0B 20 02 16 08 98 21 B4 01 9B 36 03
从这5行数据看,如果03是结束码,而且较验占两个字节,则变化的地方只有0152、0153、0159、015F、01B4,这应该是有效数据,但使用比较简单的方法从前两行一个位的变化得出后面的校验结果的可能不大
如果校验以字节为单位,数据以字为单位,则21 52 01 d2 是两个数据,相加异或都不对,交换上下半个字节也不对

不知道设备通讯的数据重不重要,另外传送的数据是几个,如查是两个整数,数据也不太重要,为什么不认为它是两后面的5个字节中包括的中两个整数呢
BCBPLC 2008-12-12
  • 打赏
  • 举报
回复
标准校验码也有N种.每种也若干种,难呀
bluecent 2008-12-11
  • 打赏
  • 举报
回复
以前做过德洲仪器用的RFID设备,感觉命令格式有点雷同.发送和接收格式:命令+地址+数据+结束符+BCC校验码,BCC码为所有的数据+=后^21H.如果是这样你就要考虑^21H这是重点.
如果是PLC就好办多了.可以把校验码关掉.
nbzip 2008-12-01
  • 打赏
  • 举报
回复
太难了.CRC16好像有二种...还有一种叫CITCIXXX...忘记了.

你最后得到的校验码...他可能再跟前面的数据再检验.可能校最后一位,可能校第一位.可能跟全部校...还可能跟他设定的固值校.
有无限的可能.

你也说了03之前可能是CRC16.....也有可能是别的...也有可能人家自己随便做了一个校验.不一定通讯非得用复杂检验的.
可能自己按自己的一种规律性来检验.

呵呵,这种解码,得要每天做这个,手头上有代码转换工具的,熟悉的人来回答.

我看到,帮顶一下.
hz_cao 2008-12-01
  • 打赏
  • 举报
回复
有点象银行卡的数据。
biscuit2 2008-12-01
  • 打赏
  • 举报
回复
有没有给点启发啊.
biscuit2 2008-12-01
  • 打赏
  • 举报
回复
谢谢楼上的启发,看来要慢慢破解才行了,这个是法国进口的产品的通信校验协议,前面基本没加密,就是校验这里看不出规律.

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧