Home Forums ActiveX components Xceed Zip for ActiveX & x64 Does Xceed use industry standard compression algorithms ?

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • User (Old forums)
    Member
    Post count: 23064
    #42275 |

    Objective:
    Uncompress the data on the linux server. The data was compressed on a windows server using the default compression algorithm of  “xceed zip verion 4.2”

    Things noticed:
    The compressed data always begins with the hex code: 00 33 30 30 32 37

    Things tried:
    1. Running the xcced DLL using wine on linux.
    2. Posting in the newsgroup at: http://groups.google.com/group/comp.compression/browse_thread/thread/c840937f624ae8dd

    Sample compressed data:
    1. Binary representation
    http://www.debt…care.com/rnd/zip/compressedpacket.1.txt
    http://www.debt…care.com/rnd/zip/compressedpacket.2.txt
    http://www.debt…care.com/rnd/zip/compressedpacket.3.txt
    http://www.debt…care.com/rnd/zip/compressedpacket.4.txt
    http://www.debt…care.com/rnd/zip/compressedpacket.5.txt
    2. Hex Representation
    http://www.debt…care.com/rnd/zip/wireread.txt

    I would really appreciate some feedback on how to solve this problem. If you need any more information from me please feel free to ask.

    Thanks a ton for your time,

    — 

    Sysadmin
    Internet first get out of debt community
    http://www.debt…care.com
    Phone: 800 601 1579 x 8003

    Imported from legacy forums. Posted by Sysadmin (had 9097 views)

    Xceed Support
    Member
    Post count: 5658

    You have to determine whether the data is a zip file or raw compressed data. Your context suggests that this is raw compressed data.
     
    We cannot give you a definite answer because we don’t know exactly how the data was compressed at its source.
     
    However, we would suggest that the data you have is compressed using the Deflate compression method and formatted using the ZLib format, which is a small header at the start of the data. This is what the streaming compression part of our Zip compression product uses by default.
     
    You could use the ZLib library to decompress this data. Try feeding the data to ZLib by telling it it is compressed with deflate. If the library has an option to look for the ZLib header, use it. If it doesn’t work, try it again but without looking for the ZLib format and header.
     
    If that doesn’t work, try the other compression methods supported by Zlib.

    Imported from legacy forums. Posted by CharlesB (had 1480 views)

    User (Old forums)
    Member
    Post count: 23064

    Thanks a ton for your reply. 

    [quote user=”CharlesB”]You have to determine whether the data is a zip file or raw compressed data. Your context suggests that this is raw compressed data. [/quote]

    This is raw compressed data sent using UDP packets. 

    [quote user=”CharlesB”]  We cannot give you a definite answer because we don’t know exactly how the data was compressed at its source. [/quote]

    The source sending the compressed data provides a documentation which says:

    “All messages sent to us should be compressed using Xceed Zip Version 4.2
    All messages recevied should be uncompressed using Xceed Zip Version 4.2
    Xceed Zip Compression functionality if provided by Xceedzip.dll (COM Component 4.2) in class XceedCompressionClass which resides under XceedZipLib (Namespace). Methods used are Compress and Uncompress for compressing and decompressing data respectively.”
     
    [quote user=”CharlesB”]However, we would suggest that the data you have is compressed using the Deflate compression method and formatted using the ZLib format, which is a small header at the start of the data. This is what the streaming compression part of our Zip compression product uses by default.[/quote]

    I have read the RFC 1950 http://www.faqs.org/rfcs/rfc1950.html which defines the header used in Zlib. But I was not able to understand what the header “00 33 30 30 32 37″ means ? Is this a header specific to Xceed library ?

     
    [quote user=”CharlesB”]You could use the ZLib library to decompress this data. Try feeding the data to ZLib by telling it it is compressed with deflate.[/quote]

    I used the program http://www.zlib.net/zpipe.c listed on http://www.zlib.net/zlib_how.html and these are the two commands I gave:

    # g++ zpipe.c -lz
    # ./a.out -d < compressedpacket.1.txt > uncompressedpacket.1.txt
    zpipe: invalid or incomplete deflate data

    Zlib is telling me  invalid or incomplete deflate data.
     
    [quote user=”CharlesB”]If the library has an option to look for the ZLib header, use it. If it doesn’t work, try it again but without looking for the ZLib format and header.[/quote]

    I can not find any such option in the  zlib manual http://www.zlib.net/manual.html
     
    [quote user=”CharlesB”] If that doesn’t work, try the other compression methods supported by Zlib. [/quote]

    The manual http://www.zlib.net/manual.html talks about different window sizes. I am wondering what is the default window size used by Xceed and if that might have effect on inflating the data.

    I am wondering what how should I go about inflating this data. Any help would be very much appreciated.

    Thanks for your time,

    —-

    Sysadmin
    Internet first get out of debt community
    http://www.debt…care.com
    Phone: 800 601 1579 x 8003

    Imported from legacy forums. Posted by Sysadmin (had 1909 views)

    User (Old forums)
    Member
    Post count: 23064

    00 means the data is not encrypted and use the Deflated compression format.

    First byte : 0 = not encrypted, 1 = encrypted

    Second Byte: 0 = Deflated, 1 = Stored, 3 = Deflated64

    Here is more information on UDP packets, and why the first part is always the same :

     http://www.tcpipguide.com/free/t_UDPMessageFormat.htm

    Thus is the data is always the same, the result of compression is also always the same.

     To directly decompress the data, you could use the ZLib algorithm and skip the first 2 bytes.

     

    Imported from legacy forums. Posted by André (had 2266 views)

    User (Old forums)
    Member
    Post count: 23064

    this is an example packet (printed as signed char), can we deduce the decompression algorithm from this?

    0,51,48,48,48,55,18,49,-53,-11,78,-107,100,64,0,15,6,30,56,59,56,50,-104,1,63,96,5,98,38,6,61,61,6,0,48,4,-52,-52,

     

    Regards,

    Akhilesh 

    Imported from legacy forums. Posted by Akhilesh (had 2064 views)

    User (Old forums)
    Member
    Post count: 23064

    I am bumping up an old thread but I am facing the exact same situation and it is not clear if the issue was resolved. I will just repeat what the problem is:

    I am getting a raw compressed message that is 179 bytes long after compression. The compression has purportedly been achieved using the Compress() function of the Xceed zip version 4.2, using the functionality provided in Xceedzip.dll (COM component 4.2) in class XceedCompressionClass. The instruction is to use the Uncompress() method to unzip this data. However, since we are trying to process this message in linux, I need to do it using other libraries. It appears from the relevant posts that the compression is actually achieved using the standard Deflate algorithm. Could this be correct? Does Xceed use LZ77+Huffman Coding in the standard Compress() function?

     As suggested in your post, we have tried the different methods available in zlib, including lzo1x, 1y, 1z and the standard inflate method starting from all potential byte offsets in the compressed stream. I doubt that the process used for compression puts the data into any specific format (zlib, gzip etc). Is there a plain vanilla Compress() call in Xceed? How does one decompress such data without using Xceed?

    Imported from legacy forums. Posted by Chirag (had 1736 views)

    User (Old forums)
    Member
    Post count: 23064

    I had developed C/C++ library on Linux Operating system, which can compress and decompress data as similar as XceedZip 4.2 default compression and decompression methods. If you need help on same, you can contact me on my email ashish.l.ghodasara{at}gmail{dot}com.

     

    Imported from legacy forums. Posted by Ashish (had 977 views)

    User (Old forums)
    Member
    Post count: 23064

    [quote user=”Ashish”]

    I had developed C/C++ library on Linux Operating system, which can compress and decompress data as similar as XceedZip 4.2 default compression and decompression methods. If you need help on same, you can contact me on my email ashish.l.ghodasara{at}gmail{dot}com.

     

    [/quote]

    Hello Mr Ashish,

     Can you please guide me how your library can help me out and charges if applicable?

    Regards 

    Imported from legacy forums. Posted by shailendra (had 3257 views)

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.