lib_um_crypto_rust/um_crypto/mg3d/Readme.MD

30 lines
1.0 KiB
Markdown

# 咪咕 3D 音乐
整个文件加密,每个文件有独立的密钥。
```py
mg3d_file_key <- md5(b"AC89EC47A70B76F307CB39A0D74BCCB0" + file_key).hex(upper=true)
```
生成最终的 `mg3d_file_key` 后,每个字节依序减少密钥的字节内容。
## WAV 格式
几乎固定的文件头。
```text
000:0000 52 49 46 46 ?? ?? ?? ?? 57 41 56 45 66 6D 74 20 RIFF....WAVEfmt
000:0010 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ................
000:0020 06 00 18 00 6A 75 6E 6B 34 00 00 00 00 00 00 00 ....junk4.......
000:0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000:0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000:0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000:0060 64 61 74 61 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? data............
```
验证一下前四字节是否解密得到 `RIFF`、以及 0x60 处是否位 `data` 来确定。
## M4A 格式
前 0x1C 字节固定 (其实前 4 字节有可能会变,但他们用的编码器好像不会变)