QMCDecode 开源音频解密工具:QQ音乐 12 种加密格式一键转出,macOS 上手指南

QMCDecode 开源音频解密工具:QQ音乐 12 种加密格式一键转出,macOS 上手指南 QMCDecode 开源音频解密工具QQ音乐 12 种加密格式一键转出macOS 上手指南【免费下载链接】QMCDecodeQQ音乐QMC格式转换为普通格式(qmcflac转flacqmc0,qmc3转mp3, mflac,mflac0等转flac)仅支持macOS可自动识别到QQ音乐下载目录默认转换结果存储到~/Music/QMCConvertOutput,可自定义需要转换的文件和输出路径项目地址: https://gitcode.com/gh_mirrors/qm/QMCDecode你是否遇到过这种情况QQ 音乐里辛苦下载的歌换个播放器就放不出来一堆 .qmcflac、.qmc0 文件怎么都打不开。QMCDecode 是 macOS 上的开源音频解密工具能把 QQ 音乐的加密格式一键转成标准的 FLAC、MP3、OGG装上就能跑。它到底能做什么QMCDecode 的转换映射写在 QMCDecode/Constants.swift 的扩展名表里按输出格式分组看更清楚加密扩展名转换输出qmcflac、qmflac、mflac、mflac0、bkcflacflacqmc0、qmc3、bkcmp3mp3qmc2、qmcogg、mgg、mgg1oggtkmm4a此外代码里还认识 5 个十六进制命名的扩展名比如 666c6163 就是 flac 的十六进制编码输出格式直接由名字本身决定。实现上整个工具是一条定位密钥 → 派生密钥 → 选加密器解密的流水线QMDecoder 负责在文件尾部找到密钥QMCKeyDecoder 把原始密钥派生成真实密钥随后在三种轻量加密器固定表异或、旋转异或、RC4里挑一个把音频数据还原最后按扩展名换名写出。界面会自动扫描 QQ 音乐的下载目录支持批量勾选。图打开应用后自动加载 QQ 音乐下载目录勾选文件、设置输出路径后点 Start 即可批量转换解密原理一分钟讲明白先给结论解密流水线四步——按扩展名识别格式 → 在文件尾部定位密钥 → 用 TEA 派生真实密钥 → 异或/RC4 解密并写出。密钥定位很省事QMDecoder 只读文件最后 4 个字节如果是 QTag移动端下载的文件密钥就在文件尾之前否则这 4 个字节是密钥长度PC 版下载长度异常时直接回退到内置的固定密钥。真实密钥还藏了一层核心在 QMCDecode/QMCKeyDecoder.swift 的密钥派生let simpleKey simpleMakeKey(seed: 106, length: 8) var teaKey UInt8 for index in 0..8 { teaKey[index 1] simpleKey[index] teaKey[(index 1) 1] base64DecodedKey[index] } let inBuffer UInt8 let subBuffer try decryptTencentTea(inBuffer: inBuffer, key: teaKey)白话讲文件里的密钥先做 Base64 解码再和一个固定种子算出来的 8 字节密钥逐字节交织——像把两副扑克牌交替插入——拼成 16 字节的 TEA 密钥拿去解密剩余部分拿到的才是真正用来解音频的密钥。密钥长度还会决定后面用三种加密器里的哪一种。TEA 解密本身见 QMCDecode/TeaCipher.swift 的核心循环var sum: UInt32 delta * (self.rounds / 2) for _ in 0..self.rounds/2 { v1 v1 - (((v04) key2) ^ (v0 sum) ^ ((v05) key3)) v0 v0 - (((v14) key0) ^ (v1 sum) ^ ((v15) key1)) sum sum - delta }每轮就干移位、异或、加法三件事全部在 32 位回绕的框里进行密钥派生阶段用 32 轮也就是这个循环跑 16 遍把加密倒推回去。……此处省略字节序处理和填充校验逻辑……解密结果再叠一层 CBC 式 IV 异或、剥掉盐值和填充真实密钥就到手了。从零到出音上手只需三步第一步获取代码执行git clone https://gitcode.com/gh_mirrors/qm/QMCDecode然后进入 QMCDecode 目录。第二步编译运行用 Xcode 打开QMCDecode.xcodeproj点运行按钮仅支持 macOS。第三步选文件点开始窗口打开后会自动扫描 QQ 音乐下载目录、列表里预填好文件没找到就用打开输入文件夹手动选文件或目录勾选要转换的点 Start。转换结果默认落在~/Music/QMCConvertOutput。图列表勾选加密文件必要时修改输出路径Start 后批量转换并显示进度进阶玩法批量目录选择输入框支持多选文件和目录程序会自动过滤只保留认识扩展名的文件自定义输出路径默认~/Music/QMCConvertOutput可以换成任意可写目录格式自动映射输出扩展名按上面表格由输入扩展名决定无需手动指定tag 修复转换后歌曲信息不对可以用 kid3 批量修改 tagREADME 同款建议性能表现与调优思路这类工具真正的耗时在密钥定位和解密两步而 QMCDecode 的实现都做得很轻密钥定位只读文件尾部几个字节不用全盘扫描两种异或加密器逐字节单遍解密RC4 也按 5KB 分段批处理不做整文件缓存输出是一次性原子写入不留中间文件。所以转一首歌基本就是在等磁盘 I/O批量转几百首也能稳定跑完。想扩展新格式时只需要动扩展名表和对应的加密器实现那是唯一要下手的两处。常见问题 项目参与踩坑速查现象格式不被识别unsupportFileExtension。原因扩展名不在支持表里或文件下载不完整。先跑file 你的文件.qmcflac看真实类型不完整就从客户端重新下载。现象密钥报错密钥过短 / 找不到密钥。原因文件尾部损坏或客户端版本更新换了算法。最稳的解法删掉这个文件重新下载。现象输出目录写不进去。原因没有写权限。跑一下chmod 755 ~/Music/QMCConvertOutput或者在界面里换一个有权限的路径。想给项目贡献代码Fork 仓库后克隆到本地拉一个功能分支在QMCDecode/Constants.swift里添加新扩展名与输出映射必要时实现对应加密器本地跑xcodebuild test -scheme QMCDecode -destination platformmacOS验证提交 PR附上所支持格式的样例来源源码里建议先读这几个模块QMCDecode/QMDecoder.swift密钥定位与主流程、QMCDecode/QMCKeyDecoder.swift密钥派生、QMCDecode/TeaCipher.swiftTEA 算法、QMCDecode/QMCipher.swift三种加密器、QMCDecode/ViewController.swift界面层。【免费下载链接】QMCDecodeQQ音乐QMC格式转换为普通格式(qmcflac转flacqmc0,qmc3转mp3, mflac,mflac0等转flac)仅支持macOS可自动识别到QQ音乐下载目录默认转换结果存储到~/Music/QMCConvertOutput,可自定义需要转换的文件和输出路径项目地址: https://gitcode.com/gh_mirrors/qm/QMCDecode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考