avatar

网易云音乐PC客户端资源文件解密笔记

本文参考 https://www.freebuf.com/articles/web/164636.html

https://www.52pojie.cn/thread-916934-1-1.html

软件版本:cloud music v2.3.0.196231

实验工具:OD、IDA、WINHEX

安装目录中的package下文件是客户端的资源文件,(其实就是一个特殊的ZIP加密的压缩包)

201904291556547825784359.png

其中orpheus.ntpk是主要的资源文件、skin文件就是皮肤文件(可能应该说是配色文件吧~~)

使用OD工具在CreateFileW函数上设置断点,F9让程序跑起来 (到达native.ntpk的时候暂时不分析,继续F9)

来到加载(打开)皮肤资源文件这里,开始跟踪, 用F8开始跟踪

201904291556548477720257.png

201904291556548639498055.png

然后跟着freebuf的文章慢慢跟踪

密码就不放了~~

取得密码后,解压orpheus.ntpk(改名ZIP即可)

然后根据 吾爱破解大佬 的文章用IDA修改程序逻辑就好了

附上一份看似没有卵用的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import binascii
import optparse

'''
打包加密ZIP还需要修改文件头太麻烦了~~~

写个脚本自己添加文件头好了直接搞好了~
'''
val = '4E54504B00000000152CAC0000010000B3817BAD73EABE04B252816B628CF168329' \
'23E84A6799A2712F709A6FB5AAF277BE3A18D5121875493010588727AE79239C204' \
'8243069D1587FCCC54205F13DD3391BFC6ED6F87989D9A64B3E66CA7C6A87EC1FF6' \
'2EE4DDD1F8506B8A16A9FBFBBB117180D6F160AD356B6E5A016935211924C82B90E' \
'6380FC769142329F2ED66198EA79E75A9FE840B1DC4E032A4ED006D4844F8A8CDCB' \
'DFC8F363A34671E309DFAA9CAD75D37D443269D18D5F9E5FA928957EB067D0E8B51' \
'BD727C0E17D17F24B2C644230EBB5E0FF998F016BF94E9196D802EB2D5CBB1FBD3A' \
'AA9DF76516D53DFD4E8CF6A0861DCBD34D939CBEDAB42894771385536160C10E019' \
'4886DAA0'
val = binascii.a2b_hex(val)

if __name__ == '__main__':
par = optparse.OptionParser(usage='usage:%prog -i <ZIP File> -o <NTPK File>')
par.add_option('-i', '--input', dest='input', help='input zip file name...')
par.add_option('-o', '--output', default='orpheus.ntpk', dest='output', help='output ntpk file name...')
options, args = par.parse_args()
if options.input:
f = open(options.output, 'wb')
data = open(options.input, 'rb').read()
ret = val + data
f.write(ret)
f.close()
print('ok!')
exit()
print('show help')