Reverse engineer - who can find the CRC algorithm
Given 3 dataseries with 1 byte CRC:
1) 55 0C 00 20 00 01 15 00 00 00 00 00 00 00 01 01 00 00 (CRC=71)
2) 55 09 00 53 00 01 00 00 00 00 00 00 01 00 01 (CRC=9C)
3) 55 0A 00 46 00 01 00 00 00 00 00 00 00 00 00 00 (CRC=02)
Any idea which algorithm is used?
BR
S鴕en
Hello,
I found the answer myself. I hope you haven't spend to much time finding a solution. I had an idea that the algorithm was based on XOR. The secrect was in the start value.
I simply tried all values from 0x01 to 0xFF and XOR'ed byte by byte until the values matched. The final solution solution in java is:
byte calculateCRC(byte[] in, int len) {
int i, j;
byte out = (byte) 0xC7;// bit-swapped 0xE3;
for (j = 0; j < len; j++) {
out = (byte) (out ^ (in[j] & 0xFF));
for (i = 0; i < 8; i++) {
if ((out & 0x80) != 0)
out = (byte) ((out << 1) ^ 0x1D);
else
out = (byte) (out << 1);
}
}
return out;
}
Can anyone help me figure out which CRC algorithm this is using? It should be CRC8 because the output length is 1 byte. Sorry for the long post, but I wanted to make sure I was providing as much information as possible. If anyone could help but needs even more examples, I have 256 CRCs with 258 data bytes each. I have been baffled by this calculation for days. Any help would be appreciated. Thanks.
(CRC = 8E) 54 7A C4 EB 0F 51 03 E9 6D 2C 05 28 76 A6 E6 6B 63 B4 8E 22 18 B2 D7 16 C1 71 B2 1D CA 72 51 D9 B7 78 A1 81 FE 90 AB 60 E2 BE AB 1E 65 F4 C1 0D 42 63 0C EA 87 30 A5 D5 1D FF 5C EE 3D F7 B5 92 08 F2 50 98 23 8C 8C 9E 6D A9 C0 62 A0 C3 44 54 31 85 31 23 D7 CC EA 2A 6E C1 FC 56 84 EF A3 CC 73 D7 00 5F CC B2 E8 66 61 B1 F7 04 0E 95 7D 56 33 A0 99 DA B9 EB D5 0C 08 DF C0 5E 32 97 31 7E 57 C0 01 02 B5 B5 C5 0A 47 AD 8D F5 53 8F F8 0C 13 A9 C2 32 D3 B1 2B 5A 2B AF CF 3C 7B 9D A4 E7 6F EE 7D B9 D2 D6 FF 83 22 9C 3E 11 E5 7E 51 23 4F 18 76 25 7E 0F AA FB F5 3D CE 0F F1 5E 51 3A 85 39 8A 3E 1A 71 47 77 4A 14 6F FB D5 79 F8 4B 6B 2C D0 38 4F 20 23 51 CA 24 8D 30 A1 32 F2 DE 92 9F 79 8F C3 AD 59 EF 50 F9 B6 E0 B5 84 F0 38 31 33 AB 50 36 05 5E 59 C7 69 C9 48 F5 3B 51 29 D5 1D
(CRC = 95) 54 7B C6 53 86 64 FD 6C 5E 24 04 76 D1 31 17 51 67 1A 61 51 6C 32 8B 7B FA 76 46 5B E2 26 B7 04 52 52 06 77 E0 5C 5B 68 C3 76 E7 3C B5 4A FC 70 98 4D BF 5C 0D 22 7B 08 0A 05 CA 6C DB 41 EB EE B8 41 FD 11 CB 32 A8 04 18 AB 6D 4C 0A 7A 9E A8 3B 1F AD CA 2E 3D C8 EE EB 72 70 02 41 2B C6 4E 56 9A 00 35 87 19 25 27 FD 42 D5 DF 0A 5C BF 5F 95 1C E7 10 59 A3 07 E0 AE 8D 0F AD 91 F9 6F F9 3D 8D 8D C9 42 B0 24 8A 9D CC 0F 87 DC FF CA 93 5A A9 B2 27 B1 03 CC 82 31 39 43 3B 42 29 DF 17 B6 9D E0 AC 84 3C 2D CD 97 F5 A7 2A 45 BD CA D0 06 91 55 F3 70 13 2C 4B 29 D5 B1 14 E9 4D 22 46 97 5B DF 94 76 CB 0A 1D 6E BD 15 AD A2 16 E9 D1 60 F6 0F AA 22 CD AE 59 B9 26 0C F4 35 0E 8A 32 CC 0B 17 65 B7 D4 99 FA EB 2E CA A0 39 80 BC 35 90 C3 76 C0 98 DC D7 BE 74 4F 6B 3E B1 C5 2C D8 B5 03
(CRC = CE) 54 78 0D 02 E5 84 69 DF 06 2F C7 93 4F EF 36 B5 8C A1 10 25 F8 48 75 5D BE 50 99 60 00 0A 52 6A 6B 48 80 8D 97 05 CB 1F 02 71 61 36 61 23 37 95 06 08 7F 36 03 7F 28 00 A5 45 BE 76 FD 54 AB 4C 75 59 7A 29 CC 7D B8 73 C3 0E 27 12 65 38 54 40 7A 4E 0B 49 FC 44 E7 3A 01 56 08 54 A7 6A 68 03 B5 29 13 F8 D7 07 17 2C 8C 6E 11 3A E1 33 25 C5 EF 78 DC D1 1B 24 93 AD 2C 0A 30 FD 53 DF 85 CA A5 38 14 39 E2 B0 F3 98 62 86 3F F5 6E 87 EF 1D 66 31 6E 28 A1 FE DA A3 6D D4 AC 52 2F 7F 8B 1E 3D BA D3 81 7E 86 93 3E BB 6B DB B7 43 C2 46 B8 FB 7C 67 85 65 FE 4C DE B9 09 58 CF C1 3D 29 0B 2B 18 98 A9 38 DB A5 2B D3 66 EB 0A 79 36 13 61 52 31 B8 B1 30 89 78 5B C9 6F 38 03 A2 2F 4D 12 89 D0 78 D5 65 42 86 13 DB BB 90 A9 FA 6F EF F9 DA 25 49 3D 5E 34 26 5E 0D 82 25 AD D2 32 1D 60 DC 5D
(CRC = 78) 54 79 2F 3B 85 05 B6 B1 CF A5 0B 21 E4 E5 C6 AF 94 1A FF E4 AE 2C ED E8 61 8E F3 40 7D 22 FC 10 75 6F 93 41 D0 83 CB FF FD 6E B5 4A 1D 7D 20 D1 ED B7 C7 33 1F D7 A2 7F AD DC 84 80 29 5B A5 CA 06 18 D0 15 0F 59 BF 0C A9 83 CF A7 F0 76 66 DC 5F 2B 1F 84 AD 88 D7 0C 77 CA B3 72 B8 F5 B5 8B F9 5A F7 D8 18 71 30 F4 D1 88 AF 15 F7 B9 E8 7D 8D 79 01 A0 9D 1A CC 68 F8 4C D4 74 79 E4 4A D5 F7 1A 3C B0 7D DB BA 2B 38 D0 AC A2 6D AE 77 A8 A1 03 D9 0A BD AF 59 BD 6E D4 B0 F2 58 28 CB 30 50 D1 27 BB B0 85 45 1F A7 BC BC 1B 4E 17 3D FC B9 C3 9E DE B7 2E 1B 8C 91 79 DD 36 0E BA 34 FB 7D 62 50 00 22 9B 53 97 CE 44 D2 42 95 AB 20 B8 27 3E 30 3D D9 A4 DC FF 23 7C 11 F5 F7 A4 3B 47 DB 06 58 25 1B 4B C3 F8 C8 DE 50 1C BF 30 D4 8E 7B 1D CF 39 40 67 AE 0C 18 83 2B 98 36 62 9F 37 B0 E8
(CRC = 51) 54 7E D4 60 C1 6C 5C 33 92 D0 9E D7 AB 0D A7 3D B8 8E C2 06 FF 10 E9 58 C2 A3 D3 51 14 95 67 BA B9 17 3E 02 DA 8F F2 B5 F5 B0 7C 7D D7 97 33 4D 23 75 BB FD 68 7E 2C 3B 70 01 89 A9 DC AF 30 C5 A2 6F 0E CB 2A 6F F6 4F 11 47 80 F2 8A 9B DA B1 15 30 6A 54 8E 5C 3F 06 F4 E5 FB AE 27 C5 B8 25 7E 12 4C 91 71 44 CB CF 8C 05 44 FC 7B DF AB E0 38 12 6D C7 30 2B A5 48 F0 0E CE 15 F9 C6 BB E9 D9 79 9F 2B A3 90 72 A8 59 88 29 5C 20 D4 56 1B 25 6A 1A 93 84 FE 29 B7 6D 08 D9 81 F1 77 FE 73 75 85 00 D6 BB BE BB DF 48 09 BC 66 FC 93 E7 EB 6B 46 52 21 2E 80 4C 71 50 DB 44 7E 5D F3 2A 94 C3 94 B9 0F 43 B7 A6 3E 3C 46 C3 50 64 7C B0 DC 5E 87 02 2E F5 D3 CA 14 58 FC 0A 27 F7 44 E1 99 56 43 7A 47 E6 63 78 B8 FE 82 FC 08 BA 1A EB E3 35 5E DA 6C 14 86 AE 59 BD A6 4A B3 3C 5B 78 C7 0B C4
(CRC = 64) 54 7F C2 58 53 75 F0 83 EB 00 55 30 4F F5 93 55 54 E6 AD 18 F1 92 57 2D C3 73 72 9B DA 63 32 1A D4 C1 11 41 B5 8A 95 DE BE 31 78 AB 31 46 34 57 D5 9B A4 8A C0 28 09 1A FF E1 D9 8B A7 6F DC 1A F2 8E 45 EB 7D F6 83 DD D4 D1 B8 34 00 D0 13 DC 98 55 B7 42 C0 A7 5A 68 71 D2 B3 9F F1 6B 25 46 CC 73 21 E9 5A 8E D1 98 8D 41 23 51 BF 9A 91 50 3B 73 14 AF 12 99 12 DA 82 BA A6 07 A3 03 6E FD F2 D1 53 5B 90 33 E9 F7 F8 25 7C FF 0E BD 78 4D 00 B5 55 5C 11 10 C8 42 FD BA 6F 1F 8E B4 CE 00 8A C5 14 E9 24 69 4A E1 4A 06 9E 07 2F 0A 9B D1 6C 89 C2 66 6D 03 53 0C 88 7D CA A4 14 88 AC 1A 5F 5B 12 26 AB 11 2A 96 4C 5E 70 C7 81 AB 47 6F 4A 96 A9 E3 88 3B 01 22 FF 9E 0A 73 C6 9D 02 28 BD 1F E0 6E D5 0E A2 A8 45 9F 3E 7B 7B E4 5C 23 C7 59 60 09 5B 8E D7 CB 6D EF 6E 5F 4D C8 CE F5 C2 F6
(CRC = D7) 54 7C 50 FC 14 80 F8 00 3C 91 0E 7F 4F 03 15 55 60 B0 28 F7 F1 87 41 73 92 CC 7D 18 BF 02 D9 4D 02 F8 40 DA E2 56 B0 EA 0E 14 9B CD EF 1D DB 9E 32 54 43 64 DA FC 8C 81 F7 77 E8 9D 1A C4 FF D4 99 95 65 11 25 8C 8D FE 9C 87 98 6A B7 9F 38 17 81 AA EB 7D 4B 6B E3 D7 73 7C A8 04 28 FE 14 1E DB E7 18 91 66 74 CA 25 C7 E3 9D 83 13 01 F6 7B D9 90 3E 54 62 85 EA 33 FA 24 C2 8B CB 01 1E B0 48 3C 78 47 14 CE 9E 3D 89 55 A8 EB 51 56 02 0C 1B C2 16 36 53 34 95 C4 C9 63 6C 24 D9 29 BF D6 EF 5D F5 A2 B8 5E 60 65 1D A5 0E 42 12 F1 5D 4E 0D E9 10 3D 88 0C DF 1D F1 85 13 73 67 A8 DE 42 CF 21 5F 2D E3 00 A6 50 EF 55 94 67 CD 7A 07 13 E5 14 D7 68 6E 73 2D 20 7E 5E 5A 72 D4 61 4E 3D F2 63 13 69 F5 54 C2 49 D5 23 C3 F3 D3 69 DE 11 70 64 54 57 32 42 96 65 7C 46 F9 77 7B 4D 96 6C ED 45
(CRC = BA) 54 7D E3 46 F6 6B A2 21 76 43 F3 2D 8E 26 C7 18 49 41 53 71 D1 6A 01 58 AE 68 A5 40 29 34 43 32 10 71 1D A9 EC 19 87 1C C1 34 AC D8 6C A4 74 FD C2 3B CF EF D1 2D DE 69 C5 37 30 5C C9 38 86 6F 71 43 25 4D 4C D6 46 C0 D8 40 7F 3B D8 DE 80 4C 09 5C 6C 6B 8C 1B DB E6 6B F4 61 3A EA 33 16 07 8A 0B 4E 72 23 3D CA F5 11 7D 9C D4 60 0A DB 5A 12 24 48 5D 6F 28 FD 30 8A 3A F5 A9 C0 4F 4F 3A D4 08 A9 71 1A 1B 10 C4 B5 ED C5 E5 17 6A 51 7B 7E 17 E7 05 06 39 B2 F4 93 56 39 1A CD D6 55 49 FB 00 00 47 A2 A1 8E 22 14 EB 67 4F 56 2E 08 7B 9C 18 2D 00 A3 26 07 B9 23 82 FA 7E B4 3F 43 00 86 28 D1 41 3C 59 86 07 4A C8 FF 18 CD 1B 99 AF 72 E7 81 33 48 D7 AC 00 BE 87 8F 08 17 F7 A4 47 22 26 2F 4C 0F 53 33 1E 25 23 B6 08 2B 77 B8 3D FD 4C D7 61 6A 18 BD BA 4A 05 D2 71 AF 3D FC 4F 26 2A
(CRC = FD) 54 72 F3 78 5F 40 AE 03 FA 01 77 44 96 5F C8 57 42 44 41 D6 DD 5C 0C 4F 31 10 5F 55 FD 17 5F 05 DD 19 34 09 DC 34 DF 72 DC 58 C1 4E 3E 34 14 72 BC 3C C7 11 DE 2C F9 4E F8 5D E7 89 B2 31 DC 53 92 39 46 47 43 35 83 79 CC 48 8A 5F EF 14 35 48 62 AF 8C 61 DE 71 43 42 EF 1B 17 08 2D 57 E6 35 5F 6C 73 12 10 1F 82 61 98 95 7B 7B D0 E9 7E 1F B6 B0 B9 02 1A 8D 26 4C 03 05 DC 6C 22 22 9F 27 09 6E 47 48 ED 1B C9 E2 D3 64 FA 78 09 39 27 70 94 3E D2 29 DA 78 29 1A 10 3F 80 20 39 2B 65 28 96 F9 34 58 4B E3 8F 36 A2 65 B5 58 A2 75 BD 2D 14 3E 4D 27 DA 1D 02 7F 2F F8 3F 12 98 7C 56 37 A7 3C 01 37 5F 79 54 5F 7F 01 95 35 1F C1 F2 00 4A FE 50 5E 3E 18 B5 2F 60 73 2D 40 DA 76 1F 13 02 78 21 13 D4 E7 6A 3E E0 1E F1 14 42 0F C4 25 55 63 0F 0B 22 5F 11 24 FD 0E 7F 41 F7 34 15 53 AF 68
(CRC = 7C) 54 73 5D 51 D8 67 7E 66 2A 76 CA BC F0 20 29 7C A5 4D 25 3E 67 75 36 1E B7 56 70 67 30 74 7F 1B 08 25 45 75 A7 78 F7 6C EF 47 0D 4D 93 73 0B 12 7F 2C 7F 43 44 6D 23 0B 38 7A B9 7C 60 34 21 03 E3 6B 50 0B FE 5A 64 54 FA BC 69 BE CD BB C8 82 55 11 08 6C 59 2B E8 65 D4 4B D2 ED 6C 6A FF 69 E8 02 55 EE 3F B3 D1 CB 8A 6C 97 21 46 48 61 FA 14 08 AB 0D D8 F8 FE 53 42 56 8E 70 F2 04 41 4D 74 6C FB 0C 53 DD 32 7D F4 C4 CA FF 1F A0 0E 59 31 94 F1 A1 FB 34 03 3F DE 2E 46 A1 B5 CF 8C A1 DC 2F 10 CE BF 04 40 5D CD 38 EE E0 8E 46 8D 1D 26 83 88 5E C4 70 4F 39 A1 60 78 43 BF 11 33 01 90 9A DD 3F EE C0 83 99 F4 FF EA D3 37 61 2F 36 0A 21 75 63 3A 32 EA 31 E5 FF E8 6C C2 BA 48 8C F5 68 FF 13 80 7C 60 33 2D 45 8B B8 F8 30 2E 53 A9 E5 03 6C 10 39 22 32 A4 70 0D 3A 70 7A 61 54 58 EB
(CRC = 62) 54 70 9D 4A 2F CE 36 C3 58 F4 0E 31 97 DB 86 D2 CD 7C 8E 6F 83 5A 86 75 CD 5A DE 9B 6C B3 AD 90 54 20 02 B3 97 6B CD 12 D8 14 FF 50 21 C2 3F 12 C9 0F 8B 0F B7 39 21 5F 7A 77 61 3A 69 00 1D 28 1F 21 A1 12 EF 15 9F C3 32 42 2D 36 61 54 F9 64 02 32 4B 72 0C 44 1D 0F 6F 52 D5 03 B8 31 50 3F 79 5A 2E C2 E2 9F 9F DB 1A 76 66 D2 B4 17 53 F0 CA 03 EA 00 70 2C 56 FC 61 3F 42 A9 BC EF 97 4B AE 26 AD AB AB 1B D8 44 DC EF 03 4B 65 BD FD 19 53 47 48 2F C1 79 5B 73 2D 53 89 0B A7 64 28 6D DA 7D D7 77 87 1F 54 7F EC 57 F4 83 01 FB 00 62 81 2B DB 2D 82 26 E0 45 C9 F4 9A 85 4A 5C D7 0B 5A 72 C9 00 34 1A B0 20 9F 35 96 04 1E E7 CC 40 21 08 68 01 72 5C F2 A5 1C 74 18 18 DD 4C CB 63 3B 26 2A 73 A4 E6 16 0C CD 45 67 B0 A7 84 EB 1D 2D EC F1 01 14 00 30 81 24 F0 0E 37 EE 40 C8 D9 D6 F9
(CRC = DF) 54 71 C4 25 DC 06 11 05 2E F2 F8 F3 09 81 3D B0 70 3B 59 F2 8D 31 58 5A 29 18 A8 C8 9F 44 33 06 4F 42 C1 CA B9 A2 73 90 21 B5 5C 6B 74 60 74 7B 22 DD B3 13 49 1B 3D 6A 8A 19 ED 79 85 26 56 6A 9F 75 DC 23 F8 86 FA 4A 27 67 7F 09 CA F9 34 5B 11 85 3F 3A 4A 3A 47 52 DB 6D 9A C1 23 03 E0 09 D8 57 19 5B D4 85 98 2A EA 72 62 3E 17 7A 78 EE C6 85 66 9A C0 2C 6D E0 8F 82 61 5D FD E4 00 2B B0 C3 5B C8 61 D3 65 D8 33 D6 E6 4B A5 E4 69 F0 6C 7F FC 08 2E 32 BC 1D F5 07 21 51 90 61 F3 DE 17 6A 55 5B 69 0A 5F 2D 40 25 EF 00 25 C9 D5 1B D3 32 8F 77 A2 00 7D 0D 05 46 F0 5F 87 8C 52 48 76 38 84 60 97 26 6E D3 0F 19 E9 34 91 BB 48 8E 88 90 CB 92 AE 82 4F 3B 21 C9 95 7D A1 61 40 6A 75 F7 43 1C CD 72 60 44 68 D0 1B 27 E3 55 1D 66 64 42 9B 40 C1 CB C3 BF E2 4C 76 69 9F 74 E0 99 3C 42
(CRC = 27) 54 76 A5 8D 79 13 AB 54 45 43 2F 5F 08 2D 2D AE 3B 1A BE 68 4E CF 2E 6B D2 A8 1A 0B 1E 50 6B 44 38 FE BA 2B 56 41 6E FB 4C 42 6D 75 32 53 4C 42 2C 7F CE 01 79 2B 4F F9 26 2B 4A 79 B5 4B 58 38 23 EB 71 02 C4 BF 5B 77 5F 03 F3 5E 41 D5 32 77 0A 0C 4F 09 2D 25 7C 4F 10 46 06 DD 6B 68 44 19 FD 29 C7 80 45 A8 0D E5 9E 72 5D B2 81 2E 64 34 A5 79 C6 20 B3 19 66 7D D9 34 10 12 EF FE 67 57 BA 29 A5 7A 60 4E 7E 55 B9 55 C2 F5 8F 24 59 B6 1B BD 51 5E 2D C6 3E A4 1F 43 42 16 A3 63 BF 4E 75 1B 15 74 A7 40 51 2C 76 19 5A 48 C9 3A 3D 77 D1 70 9C A2 A5 57 AD 69 6B 31 98 34 7C B9 53 B6 F1 63 E9 70 75 07 FE BF 27 25 E0 BF C3 36 48 20 54 4F DF 24 2B 5C B8 3D DA 29 B6 95 32 7E 79 83 88 50 5C 14 F6 72 66 32 B3 4C C5 AE C1 E0 D5 00 21 35 F7 C4 99 D4 28 A0 23 60 15 B1 CF 27 FC AD C3 B9
(CRC = B3) 54 77 AE 98 58 33 D6 4C 3C 7D 6A 0D F5 67 C6 45 81 79 6C 33 74 10 65 03 D4 73 82 24 E6 29 C7 2E CE DF 91 6C 6D 21 AB 35 37 AF 50 BE FA 91 1F 8C 07 1E 40 0A 1E 01 12 1F 8D F4 37 C8 0A A0 1E 0A 04 51 E3 6E 16 F1 5F CA A2 F2 30 D2 C5 56 2F 5F 48 32 90 BC B1 CF 19 45 05 7C 4D 46 0D 9C 34 2D 51 76 84 7B 57 35 EC 66 2E D7 A0 22 01 8F DE D6 4D DE E0 3A 8E DB 88 04 25 76 03 BF E0 4C 1B DA 62 66 B2 6C 40 19 D0 7C F4 11 3E 09 A7 10 16 D2 07 33 53 65 FF 7B AA 53 5A 38 57 29 D6 FB 55 34 9E 5D 28 12 E1 D3 5A D5 44 FD 44 FA A9 E7 93 62 B7 5C 87 10 07 02 AD 07 A6 7B A3 42 5B 4B 1B 1F AB 73 88 68 E9 23 FD 7F 9A 70 3E 61 8A 75 F4 34 5B 07 AC A7 F7 DB EF C7 E0 D2 F3 56 B9 36 99 58 3C 61 74 C1 3D DD F7 98 99 7A 15 63 A2 D7 04 ED 89 D9 C4 02 7D 36 7E 58 8E 70 F8 65 EB 3E 8A 83 18 21