Reverse Engineering Checksum Algorithm

I analyzed some EEPROM SPI memory and tried to figure out which verification algorithm was used;

For example, I have data: 14567D9h and a checksum of 187 hours. Assuming this is a regular 16-bit checksum, I have 86h - no matches, but after adding 101h it magically changes to 391h

Another example: 8ADh and a B5h checksum with this is normal - results with a 16-bit checksum with the exact number: B5h (perfect match)

I tested it with 28 samples that I was able to intercept. For some values, I have to add 101h to the checksum, and for some it is only necessary to summarize.

Parity is not suitable - if you want, I can share some more data - all of them are collected in one excel file and calculated. After several days of brainstorming with my friend, we came up with nothing: /

Maybe there is some additional part in the Algorithm that I have not yet discovered? CRC and tons of other algorithms have been tested - only a 16-bit checksum gave any encouraging results Thank you for your help!

copy of my spreadsheet: https://drive.google.com/file/d/0B2FO0-Y1n-ySMUZ2VTVkME9tdm8/view?usp=sharing

+4
source share
1 answer

From what I know, CRC is used for files to help determine file corruption. The CRC size is fixed, and the file size is missing, and the file size is much larger.

In other words, CRC is not reversible simply because it is a many-to-one relationship.

+1
source

All Articles