Obviously yhey have no clue on how the checksum actually works. They say 'add 2 to a character, remove 2 to another to keep the checksum valid'... They never recalculate the checksum.
Then, the only way to find out easily, and for sure, how the checksum is calculated would be to look at the assembly...
Also, 'usually' checksums like to xor and bitshift data, so it should be 'almost impossible' to find out the checksum algorithm from scratch.
However, if you have time to kill and no access to the checksum assembly, you can still find the checksums when 0 bits are set (0000000), then when only one bit of the data is set (1000000, 2000000, 4000000, 8000000, g000000, ..., 0100000, 0200000, ..., 0000001, 0000002), then for 2 bits (1100000, 1200000...) (then 3 bits?...) until you find a 'pattern' (might not work if the cheksum is 'complicated' : if it not() data, if it adds other fixed data to it, it might be pretty hard to reverse it that way... ; but this road rash checksum seems kinda simple, as adding 2/removing 2 from certain data bytes seems to not change it).
Last edited by kenobi on Wed Mar 28, 2007 10:35 pm, edited 1 time in total.
|