File Transfers


Command: 0x02 - File Request/Response
Data typeContentNameDescription
DWORDxx xx xx xxCHECKSUMChecksum of the packet
WORD.LEE 07COMMANDShould be 0xEE07 for request, 0xDA07 for response
WORD.L0E 00UNKNOWNUnknown, always 0x0E00 (14)
WORD.Lxx xxSEQSequence number
12 BYTES00 ..UNKNOWN12 empty bytes
WORD.L1A 00SUBCMDA subcommand: advanced message format
WORDxx xxUNKNOWNUnknown, 0x0000 - for accept, 0x0100 - for decline, also seen 0x0400
WORD.Lxx xxSTATUSCurrent status of the user:
00 00 - Online
00 01 - Invisible
01 00 - Away
02 00 - DND
04 00 - N/A
10 00 - Occupied
20 00 - Free For Chat
WORD.Lxx xxMSGLENMessage length. Should be at least one byte.
STRINGxx .. 00UNKNOWNNULL terminated message. If it's a file decline this message contains reason.
WORD.Lxx xxLENMessage length
 16 BYTESxx ..SIGNATURESignature of the message. Identical in every message type.
 WORD00 00UNKNOWNAlways empty
 DWORD.Lxx xx xx xxTEXTLENLength of a text command
 STRINGxx ..TEXTCMDText command, should be 'File'
 15 BYTES00 00 xx 00 00 01 00 00
00 00 00 00 00 00 00
UNKNOWNSeen xx = 0x00(Sending contacts, contact requests), 0x01(File and Chat requests/responses)
DWORD.Lxx xx xx xxDATALENLength of remaining data in the packet
 DWORD.Lxx xx xx xxLENLength of files description
 STRINGxx ..TEXTFiles description
 WORDxx xxPORTOn response: bind server to this Port, after sending this packet client will connect to it and continue file acks; On request: there's set the port for unknown reasons, but server doesn't bind to it(may be recommended port).
 WORD.Lxx xxSEQ2Sequence number, increased by 1 when file was sent successfull. Empty in responses.
 WORD.Lxx xxLENLength of filename
 STRINGxx ..FILENAMEFilename
 DWORD.Lxx xx xx xxFILELENLength of all files
 DWORD.Lxx xx xx xxPORTPort again