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加密的数据。
文件索引格式:索引区包含了fcount个文件索引,其格式如下
+========+=====+=====+======+=======+//======+====+====+=====//
   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中。
       压缩方法为deflate,没有zlib头和gzip头。
posted @ 2020-03-04 01:17  泥头车司机  阅读(668)  评论(0)    收藏  举报