MUX
Jump to navigation
Jump to search
.mux files are encrypted .ogg files and are typically used for custom track music. They use a simple, custom stream cipher based on a 16-byte key (a very long key is generated from the 16-byte key, and then every byte of the input file is xor'd with the corresponding byte in the long key).
File layout
byte magic[9] = "NadeoFile" byte version = 1 int32 keySalt byte data[]
Decryption
First, the 16-byte decryption key is determined as follows:
key = md5(pack(keySalt) + "Hello,hack3r!") // Hello, d3veloper:)
where pack() returns the bytes of its argument in little endian order, and the string is encoded as ASCII. Then, the data is decrypted as follows:
void Decrypt(byte[] data) { for (int i = 0; i < data.Length; i++) { data[i] ^= GetKeyStreamByte(i); } } byte GetKeyStreamByte(int pos) { return rol(key[pos % 16], (pos / 17) % 8); } byte rol(byte input, int amount) { return (byte)((input << amount) | (input >> (8 - amount))); }