Results 1 to 1 of 1

Thread: BLZ format - A first attempt

  1. #1

    BLZ format - A first attempt

    BLZ files are proprietary archive format of the warez group BLZ-PDA. They can be installed on Series 60 Nokia phones with the publically available 7KB Blzinstall application. In a similar way to the historical wide distribution of PKunzip, the Blzinstall application has reached far and wide. Given that one can attain a BLZ file installer easily as well as its small size, the BLZ file archive format is a relatively attractive format for program distribution. The only disadvantages are the proprietary nature of the format(lack of implementation detail) and the association with the distribution of illegal software.

    Due to curiousity I've done some spelunking into the BLZ file format via disassembly of the Blzinstall app. Below are my notes:

    First off looking at the DLLs Blzinstall imports, EZLIB.DLL stands out. This is the EPOC/Symbian implementation of the standard Zlib library. The four functions imported are uncompress,inflateInit,inflate,inflateEnd.

    After looking at the file checks in the app I've come up with some of the fileds in the header:

    offset size(bytes) field
    0 4 "NGPK" 4 character ascii string
    4 4 0x0100 Version 1.00?
    8 4 Compressed size of archive - (header+directory)
    12 4 Uncompressed size of all files(install space)
    16 4 compressed size of directory
    20 4 Uncompressed size of directory
    24 4 unknown

    The header appears to always be 28 bytes long. The directory mentioned above holds the directory , filenames and uncompressed file sizes of all files in the package.

    Adding the value in offset 8 to the value in offset 16 gives the offset of the compressed directory, which is at the end of the file. If you run the Zlib uncompress function on the compressed header (perhaps with Perl and Compress:Zlib) gives the uncompressed header.

    The format of the directory :

    It starts with the install directory for the files. Each directory and subdirectory name is an ascii string with the length as its first byte(pascal strings). Each directory name string is followed bythe value hex FFFFFFFF. For example :
    S y s t e m a p p s
    06h, 53h, 79h, 73h, 74h, 65h, 6dh, ffh, ffh, ffh, ffh, 04h, 61h, 70h, 70h, 73h

    Following the directory strings is the filenames as pascal strings followed by the uncompressed size instead of FFFFFFFF.

    I am not very familiar with the format of Zlib deflate streams so I'm not sure how to decode the big compressed archive (offset 1c to the value at offset 8). The inflate function does not require filenames or file sizes and just decompresses a provided buffer. If you have any further information please share it here in the forum.

    Until Blz-Pda release the file format, this should be a start in making the format more open.
    Last edited by Tanvers; 27-06-2004 at 02:48 AM. Reason: disable smilies

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. 3660 format ...
    By Paulo Guedes in forum Nokia Symbian General forum
    Replies: 3
    Last Post: 21-07-2004, 03:04 PM
  2. 6600 system error
    By teva in forum Nokia Symbian General forum
    Replies: 3
    Last Post: 01-03-2004, 02:29 PM
  3. How to format Nokia 6600
    By nagaria in forum Nokia Symbian General forum
    Replies: 6
    Last Post: 05-02-2004, 03:02 PM
  4. Nokia binary ringtone format
    By seaky in forum Nokia NFREE DCT3 Developers
    Replies: 1
    Last Post: 12-04-2003, 07:56 AM
  5. special effect ring tone in re format
    By ccwong in forum DCT 3 Flashing / Upgrading / Modding
    Replies: 0
    Last Post: 11-06-2002, 01:30 PM


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts