求助:Miles Tag 2激光枪IR协议4位Checksum逆向分析
逆向分析Miles Tag 2激光枪IR协议求助
我正在逆向Miles Tag 2激光枪的IR协议,原文档规定协议为14位,但实际采集到24位数据。经分析:
- 前14位符合原规范
- 中间6位始终为0
- 最后4位随玩家编号、队伍、伤害值变化,推测为Checksum
该Checksum已排除简单Sum、XOR或常量XOR算法,怀疑是CRC但缺乏相关计算能力。以下是红队9号玩家不同伤害值对应的IR代码表(十六进制代码已反转得到原始二进制并预处理):
红队9号玩家伤害对应表
| 伤害值 | 十六进制代码 | 预处理二进制(分段) |
|---|---|---|
| 1 | 0xE00090 | 00001001-00-0000-00-0000-0111 |
| 2 | 0x202090 | 00001001-00-0001-00-00000100 |
| 4 | 0x801090 | 00001001-00-0010-00-00000001 |
| 5 | 0x403090 | 00001001-00-0011-00-00000010 |
| 7 | 0xD00890 | 00001001-00-0100-00-00001011 |
| 10 | 0x102890 | 00001001-00-0101-00-00001000 |
| 15 | 0xB01890 | 00001001-00-0110-00-00001101 |
| 17 | 0x703890 | 00001001-00-0111-00-00001110 |
| 20 | 0x600490 | 00001001-00-1000-00-00000110 |
| 25 | 0xA02490 | 00001001-00-1001-00-00000101 |
| 30 | 0x001490 | 00001001-00-1010-00-00000000 |
| 35 | 0xC03490 | 00001001-00-1011-00-00000011 |
| 40 | 0x500C90 | 00001001-00-1100-00-00001010 |
| 50 | 0x902C90 | 00001001-00-1101-00-00001001 |
| 75 | 0x301C90 | 00001001-00-1110-00-00001100 |
| 100 | 0xF03C90 | 00001001-00-1111-00-00001111 |
测试发现红队9号与16号玩家同伤害值时代码碰撞,16号玩家虽使用第5位表示玩家编号,但数据结构仍为6位0加4位可变位,请求技术支持。
内容的提问来源于stack exchange,提问作者Aboba
相关产品推荐
相关产品推荐

