#!/usr/bin/python2 __author__ = 'axa' import zlib ZLIB_MARKERS = ['\x78\x9c'] filename = 'nickel-glo' infile = open(filename, 'r') data = infile.read() end = len(data) pos = 0 found = False while pos < end: window = data[pos:pos+2] for marker in ZLIB_MARKERS: if window == marker: start = pos rest_of_data = data[start:] decomp_obj = zlib.decompressobj() uncompressed_msg = decomp_obj.decompress(rest_of_data) print "===== Message start %0x\n%s" % (pos, uncompressed_msg) pos += 1