密钥验证
虽然文件密钥是随机生成的,但 PC 端的播放器会对该密钥的合法性进行验证。
该解密库也实现了这个检查,并会在签名不合法的时候抛出错误。
签名验证
KGM 解密器在初始化后,会对 key_challenge
进行解密操作(使用参数 offset = 0
)。
解密结束后的内容应等于预设内容。
KGM 格式
文件头的 magic
固定值:
10
00
A
00
01
02
03
04
05
06
07
08
09
0a
0b
0c
0d
0e
0f
00
7c
d5
32
eb
86
02
7f
4b
a8
af
a6
8e
0f
ff
99
14
|
.
2
.
.
.
K
.
.
.
.
.
.
.
.
文件头的 key_challenge
解密后的固定值:
10
00
A
00
01
02
03
04
05
06
07
08
09
0a
0b
0c
0d
0e
0f
00
38
85
ed
92
79
5f
f8
4c
b3
03
61
41
16
a0
1d
47
8
.
.
.
y
_
.
L
.
.
a
A
.
.
.
G
VPR 格式
文件头的 magic
固定值:
10
00
A
00
01
02
03
04
05
06
07
08
09
0a
0b
0c
0d
0e
0f
00
05
28
bc
96
e9
e4
5a
43
91
aa
bd
d0
7a
f5
36
31
.
(
.
.
.
.
Z
C
.
.
.
.
z
.
6
1
文件头的 key_challenge
解密后的固定值:
10
00
A
00
01
02
03
04
05
06
07
08
09
0a
0b
0c
0d
0e
0f
00
1d
5a
05
34
0c
41
8d
42
9c
83
92
6c
ae
16
fe
56
.
Z
.
4
.
A
.
B
.
.
.
l
.
.
.
V
相关代码: