import struct
def solve(): raw_bytes = bytearray([0x72, 0x66]) raw_bytes.extend([0x6E, 0x66, 0x6E, 0x66, 0x93, 0xDF]) raw_bytes.extend([0x4C, 0x3C]) raw_bytes.extend(b'ffffffffqfffnfFf\x00') raw_bytes.extend([0x0A]) raw_bytes.extend(struct.pack('<I', 0x12480107)) dq_list = [ 0x0F861666B3233121E, 0x1E01E75CE601E75F, 0x67666D1E1301E75E, 0x6666626666666662, 0x68176B6A16ED6666, 0x4AA9EC4E56C8CD17, 0x0C84A2B29EE5049E8, 0x496E612D366663CA, 0x716666667F24D984, 0x7264672D36666666, 0x93666E666F667265, 0x7F24D984493C4CDF, 0x6E66666671666666, 0x6666666666664666, 0x666666E7D0666666, 0x1E124801070A0066, 0x5FF861666B323312, 0x5E1E01E75CE601E7, 0x6267666D1E1301E7, 0x6666666266666666, 0x66666660632D3666, 0x6666306667666766 ] for val in dq_list: raw_bytes.extend(struct.pack('<Q', val))
raw_bytes.extend([0x66, 0x09]) raw_bytes.extend([0x66, 0x66, 0x66, 0x66]) raw_bytes.extend([0x66])
decrypted = bytearray() for b in raw_bytes: decrypted.append(b ^ 0x66) fixed_zip = b'\x50\x4B\x03\x04' + decrypted with open('D:\\flag.zip', 'wb') as f: f.write(fixed_zip) print("[+] Successfully decoded. Saved as 'flag.zip'.")
if __name__ == '__main__': solve()
|