欢迎来到蓝梦软件下载中心!
免责声明:本站软件仅用于恢复和销毁存储介质数据,如果涉及个人隐私等问题,请使用者自行承担,使用软件默认同意本声明!
Q Q:1731278955
传真:0510-82737376
手机:13400027332
E-mail:1731278955@qq.com

技术文章
您所在的位置:首页 > 技术文章 >

ZIP压缩文件数据结构解析一



作者: 来源: 日期:2018/1/7 6:19:02 人气:31 

General Format of a .ZIP file

---------------------------------

  Files stored in arbitrary order.  Large .ZIP files can span multiple

  diskette media or be split into user-defined segment sizes.  

  Overall .ZIP file format:

    [local file header 1]

    [file data 1]

    [data descriptor 1]

    . 

    .

    .

    [local file header n]

    [file data n]

    [data descriptor n]

    [archive decryption header] (EFS)

    [archive extra data record] (EFS)

    [central directory]

    [zip64 end of central directory record]

    [zip64 end of central directory locator] 

    [end of central directory record]

  A.  Local file header:

        local file header signature     4 bytes  (0x04034b50)

        version needed to extract       2 bytes

        general purpose bit flag        2 bytes

        compression method              2 bytes

        last mod file time              2 bytes

        last mod file date              2 bytes

        crc-32                          4 bytes

        compressed size                 4 bytes

        uncompressed size               4 bytes

        file name length                2 bytes

        extra field length              2 bytes

        file name (variable size)

        extra field (variable size)

  B.  File data

      Immediately following the local header for a file

      is the compressed or stored data for the file. 

      The series of [local file header][file data][data

      descriptor] repeats for each file in the .ZIP archive. 

  C.  Data descriptor:

        crc-32                          4 bytes

        compressed size                 4 bytes

        uncompressed size               4 bytes

      This descriptor exists only if bit 3 of the general

      purpose bit flag is set (see below).  It is byte aligned

      and immediately follows the last byte of compressed data.

      This descriptor is used only when it was not possible to

      seek in the output .ZIP file, e.g., when the output .ZIP file

      was standard output or a non seekable device.  For Zip64 format

      archives, the compressed and uncompressed sizes are 8 bytes each.

  D.  Archive decryption header:  (EFS)

      The Archive Decryption Header is introduced in version 6.2

      of the ZIP format specification.  This record exists in support

      of the Central Directory Encryption Feature implemented as part of 

      the Strong Encryption Specification as described in this document.

      When the Central Directory Structure is encrypted, this decryption

      header will precede the encrypted data segment.  The encrypted

      data segment will consist of the Archive extra data record (if

      present) and the encrypted Central Directory Structure data.

      The format of this data record is identical to the Decryption

      header record preceding compressed file data.  If the central 

      directory structure is encrypted, the location of the start of

      this data record is determined using the Start of Central Directory

      field in the Zip64 End of Central Directory record.  Refer to the 

      section on the Strong Encryption Specification for information

      on the fields used in the Archive Decryption Header record.