Nitroplus社游戏引擎读取的封包文件格式记录
从sonicomi之后,nitroplus更换了新的引擎,该引擎读取后缀为npk的封包文件。经分析,该文件的格式如下:
nitroplus游戏npk文件格式:
+=====+===+=====+==========+===========+================+
magic ivec fcount indexlength index data
+=====+===+=====+==========+===========+================+
magic:固定值,均为NPK2。8字节。
ivec:ivec向量,用于文件的解密。16字节。
fcount:封包所包含的文件数。4字节。
indexlength:索引区大小。4字节。
index:索引区,经过aes256加密。大小由indexlength的值决定。
data:经过aes256加密的数据。
+=====+===+=====+==========+===========+================+
magic ivec fcount indexlength index data
+=====+===+=====+==========+===========+================+
magic:固定值,均为NPK2。8字节。
ivec:ivec向量,用于文件的解密。16字节。
fcount:封包所包含的文件数。4字节。
indexlength:索引区大小。4字节。
index:索引区,经过aes256加密。大小由indexlength的值决定。
data:经过aes256加密的数据。
文件索引格式:索引区包含了fcount个文件索引,其格式如下
+========+=====+=====+======+=======+//======+====+====+=====//
namelen fpath upsize check scount offset asize csize sgsize .......
+========+=====+=====+======+=======+//======+====+====+=====//
+========+=====+=====+======+=======+//======+====+====+=====//
namelen fpath upsize check scount offset asize csize sgsize .......
+========+=====+=====+======+=======+//======+====+====+=====//
namelen:文件路径字符串的长度。3字节
fpath:文件路径字符串。长度由namelen决定。
upsize:该文件未经压缩的大小。4字节。
check:校验值。32字节。
scount:该文件包含区段的个数。4字节。
offset:区段在封包中的偏移。8字节。
asize:区段在封包中的大小。4字节。
csize:区段未经对齐的大小。4字节。
sgsize:区段未经压缩的大小。4字节。
注:aes密钥可跟踪运行获得,位置在Mware.dll的sub_100A0D80中。
fpath:文件路径字符串。长度由namelen决定。
upsize:该文件未经压缩的大小。4字节。
check:校验值。32字节。
scount:该文件包含区段的个数。4字节。
offset:区段在封包中的偏移。8字节。
asize:区段在封包中的大小。4字节。
csize:区段未经对齐的大小。4字节。
sgsize:区段未经压缩的大小。4字节。
注:aes密钥可跟踪运行获得,位置在Mware.dll的sub_100A0D80中。
压缩方法为deflate,没有zlib头和gzip头。

浙公网安备 33010602011771号