0

A sample message-CRC pair looks like this:

00000005 00000000 12121212 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 2F8376FE

where the last 4 bytes are the CRC

I suspect the last 4 or 5 groups of zeroes are filler, so they are probably not taken into account when calculating the CRC. Same goes for the 00000005 header, which doesn't ever change.

Aside from that, I have no idea how this CRC might be calculated, it might aswell be a custom CRC32 or a custom algorithm whatsoever. I have tried bruteforcing by feeding CRC reveng some samples to no avail.

Its a Wii U port by Square Enix published in 2013, if that gives anyone any clue. Below more samples are provided, where a value is incrementally changed.

                             ==> <==

00000005 00000000 12121212 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 80C228D1

00000005 00000000 12121212 00000002 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 8D061358

00000005 00000000 12121212 00000003 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 DE44C52B

00000005 00000000 12121212 00000004 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 747E3E4A

00000005 00000000 12121212 00000005 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 C5BCF01D

I can give more samples need be

1 Answer 1

1

It's definitely not a CRC32 of any kind. CRC calculation is linear under XOR. This means if you flip a certain bit in the input, the effect on the CRC (old value XOR new value) will always be the same. This is not the case in the samples you provided. Looking at changing the counter from 0 to 1 (flipping tge lowest bit) 2F8376FE xor 80C228D1 is AF415E2F. If a CRC of some kind was used, we would expect the same effect when the counter increments from 2 to 3 (again flipping the lowest bit of the counter). Looking at the checksum values, we find 8D061358 and DE44C52B. The XOR between these two values is 5342D673, which is completely different.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.