Page 1 of 1

Decode Shareaza's library1.dat file

PostPosted: 18 Sep 2013 12:18
by gabicea
I'm writting a program to do readable the library1.dat file but I had found some problems to do it. Could someone help me to understand the internal structure of that file.

Thanks a lot.

Re: Decode Shareaza's library1.dat file

PostPosted: 20 Sep 2013 19:11
by queueclimber
I'm sure, no one can help you, if you didn't specify the trouble you have.

Re: Decode Shareaza's library1.dat file

PostPosted: 21 Sep 2013 11:30
by gabicea
I don't know the internal structure of Library1.dat, so, I can't decode it... Maybe someone knows the meaning of each byte

Re: Decode Shareaza's library1.dat file

PostPosted: 21 Sep 2013 20:33
by old_death
AFAIK, it's an slite based database. Why don't you download the Shareaza source code and use it as a basis for decoding it?

Re: Decode Shareaza's library1.dat file

PostPosted: 23 Sep 2013 11:46
by gabicea

Re: Decode Shareaza's library1.dat file

PostPosted: 23 Sep 2013 14:56
by old_death
A good starting point might be the startup routine or the plugins creating file previews and extracting metadata. ;)

Re: Decode Shareaza's library1.dat file

PostPosted: 23 Sep 2013 15:47
by gabicea

Re: Decode Shareaza's library1.dat file

PostPosted: 23 Sep 2013 19:23
by gabicea
I have been looking the Shareaza's sourcecode, and I have found some trouble in Serialize function of Libary.cpp file. First of all, the Shareaza stores the FILETIME, then the LIBRARY_SER_VERSION, but when it calls to Serialize1 function I'm lost and I don't know whats the meaning of the next bytes...

Re: Decode Shareaza's library1.dat file

PostPosted: 23 Sep 2013 21:43
by queueclimber
Erm, yes.
It is coded on a very high level.

Re: Decode Shareaza's library1.dat file

PostPosted: 23 Sep 2013 23:04
by old_death
What function are you referring to exactly? (File and line number plz)

Re: Decode Shareaza's library1.dat file

PostPosted: 27 Sep 2013 23:24
by gabicea

Re: Decode Shareaza's library1.dat file

PostPosted: 30 Sep 2013 13:00
by old_death
It's easy: each serialize function writes the content of the class it is a member of to file. In order to extract the information from the library.dat file, just copy/paste all of the serialize functions to your program and make sure they are called in the right order and in reading mode.