Re: GM BCM programming how to calcualte checksums?
Posted: Wed Feb 03, 2021 5:21 am
Thank you that now works neo was the ticket!! You Rock! I don’t think the bcms have a stored cvn?ironduke wrote:I've been using Hex editor Neo but I know others have a checksum feature as well.. I never figured out the CVN the original poster was looking for so I don't think I have all the asnwers, but..04colyZQ8 wrote:I am unable to get f728 what hex editor should I use? I have Hxd. I don’t see any option for big Indian check sum 16. I highlighted everything but the two bytes. And choose every type of 16 bit checksum I could find and never came up with f728? Every time I tried a 16 style checksum only only got 2 bytes. But you say take the last two bytes? So do you mean to use a 32 bit check sum that outputs 4 bytes? Example ffff bbbb and then take the bbbb and add 1?ironduke wrote:Way late to the party but I just started looking at BCMs.. this might help out someone..
load the file into a hex editor, highlight everything but the first 2 bytes(08 D8) and then get your checksums for the selection..
Find the sum of the Big-Endian 16-bit values and get the last 2 bytes.. (f728)
checksum = ~f728 + 1 This would give you the 08D8 that's right at the start of the file..
Also I’m not sure how adding 1 to f728 becomes 08D8? How is this math done? Wouldn’t it be f729?
Thanks Jamie
If I hightlight every byte except for the first 2 (08D8) and perform checksums against the selected data the sum of the Big-endian 16 bit values is shows as 0xff728..
Now I use the last 4 or 0xF728 or 1111 0111 0010 1000 in binary..
the little ~ that I used before is the bitwise NOT symbol which is the equivelent of ones compliment.. you flip all the 1's and zeros.. ~0000111 is 11110000 ... got it??
2's compliment is basically flipping all the 1's to zeros and the zeros to 1's.. and then adding 1 to it.. I don't know why or how or anything else other than the result, lol..
so 1111 0111 0010 1000 using the ~ or NOT function becomes 0000 1000 1101 0111 or 0x08d7... Now we need to add 1 to get 0000 1000 1101 1000 or 0x8d8..
if you use your hex editor and select everything but the first 2 bytes and perform the checksum routines what are you getting for results?
Just GM uses it for their own calculations?
Hex editor hxd doesn’t have an option for big Indian sum 16