RDB文件格式分析

RDB文件常见于腾讯的客户端软件,大多数与UI资源相关,包括了各种图片、XML等。

Layout

文件头包含了文件基本结构的信息,File Description Table描述了文件名、大小和偏移,最后就是实际文件的数据,没有加密或者压缩。

File Header

File Header由四个域组成,C语言描述如下:

各个字段的描述如下:

File Description Table

FDT描述了当前RDB中所有文件的信息,其中的每一项是一个变长的结构,里面的三个字段分别是FileName、OffsetToData以及SizeOfData。

File Data

紧挨着的文件数据。

实例分析

以下是一个文件头的Dump:

可知,FDT位于0x24,FileData位于0x24 + 0x01CC16 = 0x1CC3A。
查看FDT的前两个Items:

得到的两个文件信息如下:

查看GIF的信息,偏移为0x1CC3A + 0x1F185 = 0x3BDBF,对应的数据如下:

End

这种文件结构有点类似于游戏使用的pak文件,上一次在仙剑的某个版本中看到过类似的结构,只不过多了对文件数据的加密。

发表评论