建议增加对efe格式的QQ音乐移动端缓存文件的支持 #192
Labels
No Label
bug
dependencies
discuss
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
timeout
wontfix
No Milestone
No project
No Assignees
1 Participants
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: um/web-archived#192
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景和说明
QQ音乐移动端(版本9.13.0.4)的缓存文件(位于/sdcard/qqmusic/cache下),加密格式的缓存文件扩展名是.efe,和下载的文件大小不一致,最新版的Unlock Music无法解锁
源文件(已购单曲,没有qmc版本)
样本分卷1
样本分卷2
emmm,文件过期了
摸索了一晚上,发现凡是.flac.efe后缀的文件的大部分没有加密,因为改.flac后缀以后和原音频比会没有开头,所有个人猜测.flac.efe对.flac文件头做了修改,因为我不太懂音频编码,所有不知道对不对;但.efe文件还不知道是什么东西,因为改了很多文件后缀都匹配不上,不过从.flac.efe的情况看,.efe也可能是部分没加密
另外, @ix64 QQ音乐移动端还大量出现了.mggc1和.mflacc0类型的缓存文件,目前也解密不了,也建议研究一下(应该和mflac,mgg有区别,例如如图是mflacc0改成mflac0后的解密结果)
最新发现:
1 .efe文件(不包括.flac.efe)前0x1A5位都一样,从0x1A6位开始有区别
2 .flac.efe和.efe文件头都由一段字符和一段数字组成(所以两者编码规则可能相似),其中.flac.efe在这段字符结尾附近会有“FLAC”“ARTIST=”等明文出现,.efe在这段字符开始处附近会有“INFO”字样出现,至于数字段,两者都是由按“8个0-8个数-8个0-8个数-32个0”排列的片段组成
根据你们提供的和我自己获取的样本来看,
.efe
.mggc1
.mflacc0
都是 不带密钥 版本的.mgg
.mflac
(密钥存放在App数据库之中,没有嵌入到文件尾部)
.mflac
.mgg
解锁成功的官方解法没法使用,毕竟key都没有但.efe文件靠前部分有一些以'00000000'开头的块,这和目前来看部分明文的.flac.efe高度相似,而与无此结构的mgg系列应该有一定差异
另外:也许能反汇编找到app数据库?
这个应该不是
.efe
加密的特点;应该只是
.flac
格式的Metadata Block后面一般有一个较长的 Padding Block,且 key box 比较特殊导致的这个没啥意义,每首歌都不一样,并不是一个固定的 key
但是初步尝试了一下
.efe
的加密方案似乎与.mflac
有一些细节上的差异.mqcc
单纯改名'*.efe'的秘钥可能是固定的
观察发现,前32字节经过加密,但有一部分密文相同;第33字节开始出现明文
bis
等我总感觉这就是内容调了下位置
HTTP抓包能拿到key吗?
如果可以拿到,也许能弄清加密方式
但是.efe对应的应该是ogg或mp3一类的有损格式,如果是flac的话应该对应的是.flac.efe
嗯,我说
.efe
意思是泛指这一类加密@xhacker-zzz
好像不行,印象中加密 key 是放在另一个 https 请求中的
请问有没有解码mgg0的