Complex.bin 🎁 Reliable

>>> import zlib >>> out = zlib.decompress(data) >>> out.find(b"FLAG{") 42 >>> print(out[42:42+30]) b'FLAGc0mpl3x_b1n4ry_f0rm4t' Save as parse_complex.py :

# Assume header at idx magic, version, crc, d_off, d_len = struct.unpack("<IIIII", raw[idx:idx+20]) print(f"Magic: magic:#x, Version: version:#x") print(f"Data offset: d_off, Length: d_len")

$ file complex.bin data $ xxd complex.bin | head -1 00000000: 434f 4d50 0100 0000 1c00 0000 2000 0000 COMP........ ...

payload = raw[d_off:d_off+d_len] # Check zlib header if payload[0] == 0x78 and payload[1] in (0x01, 0x9C, 0xDA): print("Detected zlib compression, decompressing...") payload = zlib.decompress(payload)

>>> import zlib >>> out = zlib.decompress(data) >>> out.find(b"FLAG{") 42 >>> print(out[42:42+30]) b'FLAGc0mpl3x_b1n4ry_f0rm4t' Save as parse_complex.py :

# Assume header at idx magic, version, crc, d_off, d_len = struct.unpack("<IIIII", raw[idx:idx+20]) print(f"Magic: magic:#x, Version: version:#x") print(f"Data offset: d_off, Length: d_len")

$ file complex.bin data $ xxd complex.bin | head -1 00000000: 434f 4d50 0100 0000 1c00 0000 2000 0000 COMP........ ...

payload = raw[d_off:d_off+d_len] # Check zlib header if payload[0] == 0x78 and payload[1] in (0x01, 0x9C, 0xDA): print("Detected zlib compression, decompressing...") payload = zlib.decompress(payload)