import binascii import zlib from hexdump import hexdump import crcmod infile = open("sound_packs/Uno_Drum_lib_Factory.dfu", "rb") #infile = open("repack.dfu", "rb") data = infile.read() checksum = int.from_bytes(data[-4:],byteorder='little') print("Stated checksum", hex(checksum)) print("inverted", hex(checksum ^ 0xffffffff)) for start in range(5000): crc32 = crcmod.Crc(0x104c11db7, initCrc=0, xorOut=0xFFFFFFFF) crc32.update(data[start:-4]) if (crc32.crcValue == checksum): print("Match @", start, crc32.hexdigest()) if (crc32.crcValue == checksum ^ 0xffffffff): print("Inverted Match @", start, crc32.hexdigest()) adler = zlib.adler32(data[start:-4]) if (adler == checksum): print("Match @", start, hex(adler)) if (adler == checksum ^ 0xffffffff): print("Inverted Match @", start, hex(adler))