Giana’s Return ZDA
From XentaxWiki
Contents
ZDA
- Game : Giana’s Return
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
// Giana's Return // ZDA file format // little endian // Note: Files are compressed with ZLIB and encrypted with XOR. //header 4 bytes (char) - magic // "ZDA\x00" 4 bytes (uint32) - number of files 4 bytes (uint32) - data start offset num_of_files * { 40 bytes (char) - filename + padding 4 bytes (uint32) - uncompressed size 4 bytes (uint32) - compressed size 4 bytes (uint32) - relative file offset } num_of_files * { x bytes - file data }
MultiEx BMS Script
Not written yet.
Notes and Comments
- Files inside those archives are compressed with ZLIB and encrypted with custom XOR encryption.
Decryption method
Implementation for decryption method written in Python:
def decrypt_data(in_data): xor_res = b'\xBB' data_size = len(in_data) out_data = bytearray() for curr_offset in range(data_size): data_byte = struct.pack("B", in_data[curr_offset]) xor_res = xore(xor_res, data_byte) out_data.extend(xor_res) return out_data
Compatible Programs