//------------------------------------------------ //--- 010 Editor v2.0 Binary Template // // File: RDB.bt // Authors: AnTler // Version: 1.1 // Purpose: Defines a template for parsing QQ's RDB files. // Category: Misc // File Mask: // ID Bytes: // History: // 1.1 2016-02-02 SweetScape: Updated header for repository submission. // 1.0 AnTler: Initial release. //------------------------------------------------ // Define structures used in RDB files // Defines a file header typedef struct { CHAR reserved[16]; DWORD fhFileTotalCount; INT64 fhFileNameOffBits ; INT64 fhFileDataOffBits ; } RDBFILEHEADER ; // Defines a file record typedef struct { local INT fileNameLength = 0; local USHORT value = 0; do { value = ReadUShort( FTell() + fileNameLength) ; fileNameLength += sizeof(value); } while(value != 0x0000); CHAR frCurFileName[fileNameLength]; INT64 frCurFileDataOffBits ; INT64 frCurFileDataSize; } RDBFILERECORD ; string ReadRDBFILERECORD( RDBFILERECORD &r ) { string s; SPrintf( s, "%s", r.frCurFileName); return s; } //-------------------------------------------- // Define the file LittleEndian(); RDBFILEHEADER rdbFileHeader; FSeek(rdbFileHeader.fhFileNameOffBits); local int i; for( i = 0; i < rdbFileHeader.fhFileTotalCount; i++ ) RDBFILERECORD rdbFileRecord;