Forum: UltraISO
Topic: Help: the ISZ file format
started by: hello_hi_hi

Posted by hello_hi_hi on Dec. 30 2010,13:17
After read ISZ File Format Specification (http://www.ezbsystems.com/isz/iszspec.txt), I open an ISZ file, the first 0a0H bytes is as following:

00000000h: 49 73 5A 21 40 01 84 84 18 4D 00 08 78 39 00 00 ;
00000010h: 02 00 00 00 00 00 00 00 00 E6 00 00 00 00 00 02 ;
00000020h: 00 03 00 40 00 00 00 00 00 00 00 F4 02 00 00 00 ;
00000030h: B1 CD 6C 3A 95 55 C8 01 00 00 00 00 80 14 6B 1B ;
00000040h: A1 3C 25 DE B6 CE A5 DE F4 8C A5 9C B6 8C E7 DE ;
00000050h: B6 CE A5 DE F4 8C A5 9C B6 8C E7 DE B6 CE A5 DE ;
00000060h: F4 8C A5 9C B6 8C E7 DE B6 CE A5 DE F4 8C A5 9C ;
00000070h: B6 8C E7 DE B6 CE A5 DE F4 8C A5 9C B6 8C E7 DE ;
00000080h: B6 CE A5 DE F4 8C A5 9C B6 8C E7 DE B6 CE A5 DE ;
00000090h: F4 8C A5 9C B6 8C E7 DE B6 CE A5 DE F4 8C A5 9C ;

I am fell Confused:
1. THe ISZ header size is 40H bytes, and the ISZ file header structure defined in Format Specification
is 30H bytes, why there have extra bytes (from 30H to 3fH) not defined in Format Specification ?

2. From the data we get the information: the CDT
starts at 40H, and the CDT item length is 3, according to ISZ chunk structure definition,

typedef struct isz_chunk_st {
 chunk_flag;
 blk_len;
} isz_chunk;

and

The 'chunk_flag' should be one of the following values:

#define ADI_ZERO        0x00    // all zeros chunk
#define ADI_DATA        0x40    // non-compressed data
#define ADI_ZLIB        0x80    // ZLIB compressed
#define ADI_BZ2         0xC0    // BZIP2 compressed

I cannot found the valid chunk flag in given data.

3. How to convert password to encryption key ?

4. Where can found iv for cbc encryption ?

5.  According to "6. Usful Tips" -- "Search in CDT, get chunk length and offset", how to get offset ?