You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

反向CRC16计算:求无线数据包CRC16的计算规则

破解CRC16参数分析

已知条件

你提供的数据包中,仅特定字节变化时CRC随之改变,说明CRC覆盖了除最后两个字节外的所有数据。整理有效测试用例:

第一组(仅第4字节不同)

  • 数据段:11 00 01 0D 30 10 05 1F 11 ED 7E 01 00 00 → CRC:B9 32
  • 数据段:11 00 01 1D 30 10 05 1F 11 ED 7E 01 00 00 → CRC:EA CC
  • 数据段:11 00 01 2D 30 10 05 1F 11 ED 7E 01 00 00 → CRC:1E CE

第二组(不同指令数据包)

  • 数据段:16 00 01 60 20 10 05 1F 11 ED 7E 01 02 00 04 00 02 00 65 → CRC:32 CC
  • 数据段:16 00 01 CB 20 10 31 53 11 ED 7E 01 42 00 04 00 02 00 65 → CRC:B4 B9

破解结果

经过对比计算,该CRC16的参数为:

  • 多项式:0x8005(标准CRC16-IBM基础多项式)
  • 初始值:0xFFFF
  • 输入处理:每个字节位反转(比如0x11 → 0x88,0x0D → 0xB0)
  • 输出处理:最终CRC值整体位反转
  • 输出异或:0x0000(无额外异或)

验证示例

以第一组第一个数据段为例:

  1. 将每个输入字节位反转:88 00 80 B0 0C 08 A0 F8 88 DE 7F 80 00 00
  2. 以0xFFFF为初始值,使用多项式0x8005计算CRC16
  3. 将计算得到的中间CRC值(0x4D96)位反转,得到0xB932,与给定CRC完全匹配

其余测试用例用同样方法均可验证通过。

内容的提问来源于stack exchange,提问作者Guillaume

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 05:50:11