From MacBinary II Conference 6/21/87: To determine if a header is a valid MacBinary header, check bytes 0 and 74 to be both zero. If they are both zero, either (a) the CRC should match, which means it is a MB II file, or (b) byte 82 is zero, which means it may be a MB I file. (Note that, at the current version level, byte 82 is kept zero to maintain compatibility with MacBinary I. If at some point the MacBinary versions change sufficiently that it is necessary to keep MacBinary I programs from downloading these files, we can change byte 82 to non-zero.)
OK, very nice, but... what when all the bytes are 0x00 ????
The CRC gives 0 too, so this method would return "valid MB II file" !
This is why MacGzip 1.0, when the "decode MacBinary" preference is enabled, fails to expand files whose original contens was all zeroes.
In version 1.1, I check the "name lenght" field; and if it is zero, it is not a valid MB file. (This will make the CRC check enough for the rest of the cases)(I guess...)