X‘moe Project » 日志
[BGI+BGI2]封包格式
2014-11-1 13:07 /
老版本的封包和新版的封包格式直接目测出来。
不过无论是BGI1还是BGI2的封包,文件名的长度都要很大的限制。
嘛、这个我不吐槽。每家公司都有各自的想法。
这个是Pck Header,一个signature和一个count,这个不需要追,直接目测出来。
ver1.0和ver2.0都是这个格式
先来看ver1.0的文件记录表项:
需要说明的是,
而ver1.0和ver2.0的offset都是相对offset,要减去PckHeader的长度和count和Archieve的长度。
解析到此完毕
后面开始研究图形的解析。目测会比较麻烦
不过无论是BGI1还是BGI2的封包,文件名的长度都要很大的限制。
嘛、这个我不吐槽。每家公司都有各自的想法。
这个是Pck Header,一个signature和一个count,这个不需要追,直接目测出来。
ver1.0和ver2.0都是这个格式
typedef struct
{
char magic[12]; // "PackFile "
unsigned long count;
}ArchieveHeader;
先来看ver1.0的文件记录表项:
//0x10 * 2
typedef struct
{
char name[16];//文件名的长度如此可怜
unsigned long offset;
unsigned long length;
unsigned long reserved1;
unsigned long reserved2;
}ArchieveEntry;
需要说明的是,
而ver1.0和ver2.0的offset都是相对offset,要减去PckHeader的长度和count和Archieve的长度。
typedef struct
{
char name[6*0x10];//这个长度够用了
unsigned long offset;//这个offset是一个相对值
unsigned long length;
unsigned long reserved1;//位置,也许在未来的发展中会记录说那个加密的数据
unsigned long reserved2;
unsigned long reserved3;
unsigned long reserved4;
unsigned long reserved5;
unsigned long reserved6;
}ArchieveEntryNew;
解析到此完毕
后面开始研究图形的解析。目测会比较麻烦