"Super Star Book Viewer" book catalog file format

zhaozj2021-02-08  216

=========================================

"Super Star Book Viewer" book catalog file format

=========================================

Version 1.1

SHUN COX (shuncox@263.net)

note:

This article can be replicated, converted, and released, but must maintain the consistency and complete file content.

If you have any questions, please go to bookExpress.iscool.net or email shuncox@263.net

First, .dat file

___________________________________________________________________________________________

Overall structure

---------

| Head |

---------

| Record 1 |

---------

| Record 2 |

---------

| ... |

---------

| Record N |

---------

The head structure of the .dat file

Struct dathead {

DWORD MARK; / / Sign, 'SSDT'

Word ver; / / may be version number, generally 2

Word Type; // Type, 2 in Site and Address,

// bktree is 0 (2) in V3.51),

// bklist is 3

DWORD NUMOFREC; / / How much record

DWORD LENPERREC; / / Per record length

DWORD LENOFHEAD; // head length

DWORD Encoffset; // The beginning of the encryption section, only in BKLIST

// (This variable is invalid in V3.51)

}

Second, the record structure of different .dat files

___________________________________________________________________________________________

Site.dat

------------

Record completely encrypted

Struct siteinfo {

CHAR path [32]; // local path

Char name [64]; // Library Name

Word rev1; // unknown

Char Date [22]; // Update Date

CHAR URL [132]; // Update the URL of the library

DWORD REV2; // Unknown

}

Address.dat

-----------

Record completely encrypted

Struct addrinfo {

DWORD REV; // Unknown

Char addr []; // download host address

}

Bktree.dat

------------

V3.51 before the record is not encrypted, V3.51 completely encrypts Struct TreeInfo over the entire record {

Char name [100]; // Category Name

Word rev; // unknown

Word Level; // Classification The number of layers

DWORD Start; / / The starting record number in the corresponding BKLIST

DWORD NUM; // Book Number

}

BKList.dat

------------

BKLIST record is relatively complex

Offset 0 (V3.51 is not encrypted before, V3.51 is completely encrypted over the entire record):

Struct bookinfo {

Char Name [100]; // Title

DWORD PAGES; / / Page

Word addrno; // host number (starting from 1, host address

Address)

}

Offset Dathead :: Encoffset is encrypted (V3.51 starting from 0x6a):

* For SSReader V3.4

Struct encinfo {

Word enclen; // encrypted length

// Encryption start

Word Copyright; // Copyright, if (Copyright >> 8 == 0), you can download

CHAR path [100]; // path and file name

Char author []; // Author, if (Dathead :: lenperrec! = 0x110)

}

* For SSReader V3.5 - V3.51

Struct encinfo {

Word enclen; // encryption length (this variable is invalid in V3.51)

// Encryption start

Word Copyright; // Copyright, if (Copyright >> 8 == 0), you can download

Char Rev [58]; // unknown

DWORD SN; / / SARB number

Char path []; // path and file name

}

Third, decryption algorithm

___________________________________________________________________________________________

Decryption is performed in the order of 0x10 bytes, and the byte of the last insufficient unit is ignored.

Void Decrypt (DWORD * S)

{

DWORD V = 0xE3779B90;

DWORD D = 0x9e3779b9;

Static DWORD K [] = {0x3f65496d, 0x61737745, 0x2e2c2e5e,

0x38375f2f};

INT I;

For (i = 0; i <0x10; i ) {

s [3] - = ((s [0] << 4) K [2]) ^ (s [0] V) ^

((S [0] >> 5) k [1]);

s [2] - = ((S [3] << 4) K [0]) ^ (s [3] V) ^

((S [3] >> 5) k [3]);

s [1] - = ((S [2] << 4) K [2]) ^ (s [2] V) ^

((S [2] >> 5) k [3]);

s [0] - = ((S [1] << 4) K [0]) ^ (s [1] V) ^

((S [1] >> 5) k [1]); V - = D;

}

}

___________________________________________________________________________________________

"Super Star Book Viewer" is a registered trademark of Beijing Century Super Star Information Technology Development Company

<<<< End

转载请注明原文地址:https://www.9cbs.com/read-2526.html

New Post(0)