Encrypted Object

An encrypted object is an internal file format used to encrypt and compress any raw file data

It is currently used in the following files:

  • Item Proto

  • Mob Proto

  • EterPack Index

  • EterPack Content (type 2 and 6)

The format consists in a header with 20 bytes followed by the data (either encrypted or compressed)

A Kaitai structure file for reading the format is available here

Data Compression

The data is compressed by with one of the following algorithms depending on which Magic code is specified

Known Compression Algorithms

Magic Code

Algorithm

MCOZ

LZO 1x

MCSP

Snappy

Data Encryption

The data is encrypted with the XTEA algorithm, so to decrypt it is required a specific key for decrypting, a list of known keys follows below

Knowing if the data is encrypted

If the bytes in Blue are >= 0 and the bytes in Red are different from the bytes in Black, then the data is encrypted, meaning the bytes in Black correspond to the Magic used to check if XTEA decryption was successful

Otherwise, the bytes in Black will be equal to the bytes in Red

Known XTEA keys

Used In

Key (16 bytes)

Item Proto

A1 A4 02 00 AA 15 54 04 E7 8B 5A 18 AB D6 AA 01

Mob Proto

46 74 49 00 0B 4A 00 00 B7 6E 08 00 9D 18 68 00

EterPack Index

B9 9E B0 02 6F 69 81 05 63 98 9B 28 79 18 1A 00

EterPack Content

22 B8 B4 04 64 B2 6E 1F AE EA 18 00 A6 F6 FB 1C