跳到主要内容

密钥验证

虽然文件密钥是随机生成的,但 PC 端的播放器会对该密钥的合法性进行验证。

该解密库也实现了这个检查,并会在签名不合法的时候抛出错误。

签名验证

KGM 解密器在初始化后,会对 key_challenge 进行解密操作(使用参数 offset = 0)。

解密结束后的内容应等于预设内容。

KGM 格式

文件头的 magic 固定值(Magic Number)

 
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 解密后的固定值(Magic Number)

 
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 固定值(Magic Number)

 
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 解密后的固定值(Magic Number)

 
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 

相关代码: