![]() |
|
Peer to Peer The 3rd millenium technology! |
![]() |
|
Thread Tools | Search this Thread | Display Modes |
![]() |
#21 |
Registered User
Join Date: Jan 2002
Posts: 82
|
![]() Shouldnt be too hard to work out how it is calculated with a little reverse engineering
![]() I noticed your post says something about how many sources there are. How did you calculate this? I found it difficult to do so bcoz the user/filename strings seemed to be variable length? |
![]() |
![]() |
![]() |
#22 |
B2B Protagonist ... Life is ... Bubble to Bubble ... Beer to Beer ... love a VLAIBB (Very Lonesome Artificial Intelligence Brained Bubble) @ http://www.geocities.com/vlaibb vlaibb@yahoo.com
Join Date: Jan 2002
Posts: 206
|
![]() it simply works, when you assume, that the data block after the filename is
of a fixed length (it should be around 141 Bytes(maybe +-1). thus if you walk through it, adding length(filename)+141 for each user (count is the 1. dw as you guessed), you get to the main data block, which more or less resembles the data in the .dbb file indy |
![]() |
![]() |
![]() |
#23 |
Registered User
Join Date: Jan 2002
Posts: 82
|
![]() hmm looks like i've overlooked some stuff in my examination of the DAT file. the repairer actually counts the number of sources by counting the number of @ surrounded by alphanumeric chars (the character after it can only be an M for musiccity, a K for Kazaa, a G for Grokster or ? for unknown)
so, if the pointer was corrupt and wouldnt go back far enuff, so u had to start at the end of the list (well, the end of the file, is it possible to find the end of the list from the end of the file?) how would you work your way back? |
![]() |
![]() |
![]() |
#24 |
B2B Protagonist ... Life is ... Bubble to Bubble ... Beer to Beer ... love a VLAIBB (Very Lonesome Artificial Intelligence Brained Bubble) @ http://www.geocities.com/vlaibb vlaibb@yahoo.com
Join Date: Jan 2002
Posts: 206
|
![]() lets think of a kind of "matched" decoder
we have the rough structure for 1 found user: byte 1 or 0 //always beetween users, has to be replaced by dw 1 later string, byte 0 //filename + 0 bytearray [140] //maybe its 139 or 142 --- start of main block dw nparms //doubleword number of parameters loop nparms // repeated nparms dw ptype1 // doubleword parametertype dw plength // doubleword parameterlength bytearray [plength] //parameter end loop bytearray [12] //unknown parms 12+-1 string downloadpath + byte 0 //filename downloadpath +0 bytearray [29] //unknown parms string "KAZAAxxyyyy" //Kazaastring EOF //end of file just write a decoder or statemachine that resembles this structure, then let it loop with an increasing offset from the end of file, if it gets ready exactly with EOF - ![]() ![]() at least you can try indy ![]() |
![]() |
![]() |
![]() |
#25 |
Thanks for being with arse
Join Date: Jan 2002
Location: The other side of the world
Posts: 10,343
|
![]() thx 4 possting in whats .DAT indy now ive take the the time to read this rapidly evolving thread
good work to all involved will be getting pearl in the box in the next few weeks and trying to work this out good work kewbase on startfiles do u reckon can i link to your page from morphia ? |
![]() |
![]() |
![]() |
#26 |
Registered User
Join Date: Jan 2002
Posts: 82
|
![]() Been poking around some DAT files and found some more info ( can't believe I missed it first time around
![]() I've been taking a look at the filename/user object and I've dissected it this far: 1. Filename. This is a variable length string of the filename as it is stored on the source's computer 2. 30 byte array. This appears to be another kind of signature or some such. Originally I mistook it for uninitialised memory/hard disk space but I noticed it is identical for every user 3. 16 byte array. Still not sure what this is. I can say unlike the previous array it does differ from user to user 4. 95 byte user name array. The username, unlike the filename appears to be fixed at 95 bytes. And of course 95 + 16 + 30 = 141 a value which indy has already quoted to me. That's all for now, I'm checking out the end of the file values which we haven't been able to identify yet ![]() |
![]() |
![]() |
![]() |
#27 |
Rebel With A Cause
Join Date: Apr 2000
Location: VA-USA
Posts: 5,088
|
![]() ![]() PS: If ya need extra web space to provide a link for files that are too large for the attachment feature on this forum, or other things if they're not too big ...no problem ...let me know and I will upload them and tell you the link. Also, I just got to thinking. Couldn't one make a self extracting zip file that unzips to the download folder and automatically opens Morpheus when it is finished? Like so> ![]() However...I suppose the download folder and program location would have to be the default. Could it maybe "find" it? I'll leave that to you wizards! ![]() PS: I made the start files like Kewbase said, but my zip file turned out to be kinda large. ![]() |
![]() |
![]() |
![]() |
#28 |
Registered User
Join Date: Jan 2002
Posts: 82
|
![]() Finding the executable path and download directories is easy via the registry
![]() Next version of my program MorpheusX ( http://go.to/MorpheusX ) acts as a loader and does this. |
![]() |
![]() |
![]() |
#29 |
B2B Protagonist ... Life is ... Bubble to Bubble ... Beer to Beer ... love a VLAIBB (Very Lonesome Artificial Intelligence Brained Bubble) @ http://www.geocities.com/vlaibb vlaibb@yahoo.com
Join Date: Jan 2002
Posts: 206
|
![]() @AYB:
as far as i've analyzed the user field, it consists of the following string filename, byte 0, byte 0 //filename +0+0 dw maybe_some_flags //dont knows, differs from user 2 user bytearray[20] //signature same a parm 3 in main block dw filesize //filesize in bytes dw user-ip // dw user-port //usually 1214 dw supernode-ip dw supernode-port //usually 1214 string username, byte 0 //username bytearray [141-tillthere] //don't know, differs @Maze the part of .dat, which contains the folder, where the downloaded file is finally placed is protected through checksum, therefore, if you will change this folder, you have to change it in dat and recalculate the checksum. indy |
![]() |
![]() |
![]() |
#30 |
Registered User
Join Date: Jan 2002
Posts: 82
|
![]() ![]() once again indy this is great work also serves to highlight how incompetent ![]() username definately seems to me to be fixed at 95 bytes ( you say it differs? ![]() also, you say the dword following the double null terminating the string is different, on the DAT files I have they seem to be the same ![]() ![]() Last edited by AYB : 25-01-02 at 09:53 AM. |
![]() |
![]() |
![]() |
#31 |
Thanks for being with arse
Join Date: Jan 2002
Location: The other side of the world
Posts: 10,343
|
![]() is morpheusX going to have some startfile idea involved ?
i sure you will let us know when it is released but iam happy to try it out before that if you need another tester |
![]() |
![]() |
![]() |
#32 |
Registered User
Join Date: Jan 2002
Posts: 82
|
![]() It's possible MorpheusX will incorporate something involving start files
![]() Right now I barely managed to get v0.2 out by the end of january, which was my self imposed deadline ![]() ![]() |
![]() |
![]() |
![]() |
#33 |
Posts: n/a
|
![]() hi!
THANKX to all u for guessing all this info about the .dat files format... it has simplified my work... ![]() i've developed a program that shows .dat info and let a user to obtain the downloaded data on various ways... u all can try it at: http://www.angelfire.com/ego2/idleloop (and i've complete a little the structure of .dat files... ![]() GreEtiNgs! ![]() |
![]() |
![]() |
#35 |
B2B Protagonist ... Life is ... Bubble to Bubble ... Beer to Beer ... love a VLAIBB (Very Lonesome Artificial Intelligence Brained Bubble) @ http://www.geocities.com/vlaibb vlaibb@yahoo.com
Join Date: Jan 2002
Posts: 206
|
![]() ![]() ![]() ![]() indy
__________________
VLAIBB - The Ultimate Gateway to P2P Sites File: surprise.mp3 Length:5845871Bytes UUHash:=1LDYkHDl65OprVz37xN1VSo9b00= Copy the lines above and use 'Paste from Clipboard' function of sig2dat 3.11.a (supports quicklinks) to create a startfile for your FastTrack p2p client for safe download ![]() |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|