crc - CRC(8位?)暴力破解
问题描述
我有 3 个字节的数据集,其 CRC 代码可能为 CRC-8(计算可能包含更多位并被截断),我想知道它是如何计算的。有没有办法暴力破解算法和参数?我用reveng试了一下,但它说“找不到模型”。
样本数据(十六进制):
1F 00 00
D7 01 00
F7 02 00
B5 03 00
E5 04 00
0E 05 00
23 06 00
8A 07 00
F0 08 00
2A 09 00
74 0A 00
05 0B 00
47 0C 00
D5 0D 00
8B 0E 00
51 0F 00
FF 10 00
37 11 00
17 12 00
55 13 00
05 14 00
EE 15 00
C3 16 00
6A 17 00
10 18 00
CA 19 00
94 1A 00
E5 1B 00
A7 1C 00
35 1D 00
6B 1E 00
B1 1F 00
F0 20 00
38 21 00
18 22 00
5A 23 00
0A 24 00
E1 25 00
CC 26 00
65 27 00
1F 28 00
C5 29 00
9B 2A 00
EA 2B 00
A8 2C 00
3A 2D 00
64 2E 00
BE 2F 00
F5 A1 00
D5 A2 00
97 A3 00
C7 A4 00
2C A5 00
01 A6 00
A8 A7 00
D2 A8 00
08 A9 00
56 AA 00
27 AB 00
65 AC 00
F7 AD 00
A9 AE 00
73 AF 00
32 90 00
FA 91 00
DA 92 00
98 93 00
C8 94 00
23 95 00
0E 96 00
A7 97 00
DD 98 00
07 99 00
59 9A 00
28 9B 00
6A 9C 00
F8 9D 00
A6 9E 00
7C 9F 00
0E 50 00
C6 51 00
E6 52 00
A4 53 00
F4 54 00
1F 55 00
32 56 00
9B 57 00
E1 58 00
3B 59 00
65 5A 00
14 5B 00
56 5C 00
C4 5D 00
9A 5E 00
40 5F 00
01 60 00
C9 61 00
E9 62 00
AB 63 00
FB 64 00
10 65 00
3D 66 00
94 67 00
EE 68 00
34 69 00
6A 6A 00
1B 6B 00
59 6C 00
CB 6D 00
95 6E 00
4F 6F 00
第一个字节是CRC,另外两个字节是数据。
并尝试复仇:
reveng -w 8 -s 00001f 0100d7 0200f7 0300b5 0400e5 05000e
给我“找不到模型”
谢谢
解决方案
正如 Mark Adler 所回答的,这不是 CRC。检查这一点的一种方法是对两个示例进行异或运算,看看您是否得到第三个示例。如
F7 02 00 xor B5 03 00 = 42 01 00, which doesn't match D7 01 00
如果 crc 是后补的,那么 42 -> BD 仍然与 D7 不匹配。
更新 - 有多个条目具有相同的第一个字节,这是一个错误吗?
01 A6 00 and 01 60 00
0E 05 00 and 0E 50 00 and 0E 96 00
23 06 00 and 23 95 00
推荐阅读
- dataframe - 如何通过对现有列执行一些转换来使用 withcolumn 添加列?
- flutter - Flutter 动画更改对话框高度
- excel - 标签事件的循环控制 (mousevove)
- assembly - ARM Assembly如何打印数字而不是该数字的ASCII表示
- vue.js - Intellij 在同一个 .vue 文件中使用不同的缩进
- css - CSS BEM - 公共类的约定
- python - 如何在 Web 框架上显示数据库?
- gojs - “externalObjectDrop”函数中的“subject”参数为空
- amazon-web-services - 无法在 Azure 应用服务中挂载卷?
- python - 模拟对象的函数的模拟返回值