Rockbox mail archive
Subject: RE: checksum field (fwd)
From: Björn Stenberg (bjorn_at_haxx.se)
---------- Forwarded message ----------
From: Andy Choi <AndyC_at_CoManage.net>
Subject: RE: checksum field
Date: Sun, 9 Dec 2001 04:19:49 -0500
> apparantly, this is is just the 16-bit sum of all the bytes
> in the unscrambed code, except with the most significant 4
> bits set to 0x4. not sure what the mask is for, but it seems
> to work. (i tested this by simply modifying string constants
> and seeing that the rescrambled code still passed the
> checksum and then correctly displayed the modified strings).
it turns out that wasn't quite right; it only worked for f/w version 5.01h.
it looks like the checksum is simply the 16-bit sum with an offset, but i
can't figure out how the offset is computed. for version 5.03a, the
checksum seems to be the 16-bit sum minus 0x2b00; for version 5.02a, the
offset is 0x7200; and for 5.01h, the offset is 0x9000. the length of the
file doesn't affect these offsets; you can add arbitrary junk data to the
end of the file, and you can modify the string constants arbitrarily, and
these checksum offsets still work. but i can't figure out how these offsets
are being computed from the code..
Page was last modified "Jan 10 2012" The Rockbox Crew