📄 extra.fld
字号:
The following are the known types of zipfile extra fields as of thiswriting. Extra fields are documented in PKWARE's appnote.txt and areintended to allow for backward- and forward-compatible extensions tothe zipfile format. Multiple extra-field types may be chained together,provided that the total length of all extra-field data is less than 64KB.(In fact, PKWARE requires that the total length of the entire file header,including timestamp, file attributes, filename, comment, extra field, etc.,be no more than 64KB.)Each extra-field type (or subblock) must contain a four-byte header con-sisting of a two-byte header ID and a two-byte length (little-endian) forthe remaining data in the subblock. If there are additional subblockswithin the extra field, the header for each one will appear immediatelyfollowing the data for the previous subblock (i.e., with no padding foralignment).All integer fields in the descriptions below are in little-endian (Intel)format unless otherwise specified. Note that "Short" means two bytes,"Long" means four bytes, and "Long-Long" means eight bytes, regardlessof their native sizes. Unless specifically noted, all integer fields shouldbe interpreted as unsigned (non-negative) numbers.Christian Spieler, 19980918 ------------------------- Header ID's of 0 thru 31 are reserved for use by PKWARE. The remaining ID's can be used by third party vendors for proprietary usage. The current Header ID mappings defined by PKWARE are: 0x0007 AV Info 0x0009 OS/2 extended attributes (also Info-ZIP) 0x000a PKWARE Win95/WinNT FileTimes [undocumented!] 0x000c PKWARE VAX/VMS (also Info-ZIP) 0x000d PKWARE Unix 0x000f Patch Descriptor The Header ID mappings defined by Info-ZIP and third parties are: 0x07c8 Info-ZIP Macintosh (old, J. Lee) 0x2605 ZipIt Macintosh (first version) 0x2705 ZipIt Macintosh v 1.3.5 and newer (w/o full filename) 0x334d Info-ZIP Macintosh (new, D. Haase's 'Mac3' field ) 0x4341 Acorn/SparkFS (David Pilling) 0x4453 Windows NT security descriptor (binary ACL) 0x4704 VM/CMS 0x470f MVS 0x4b46 FWKCS MD5 (third party, see below) 0x4c41 OS/2 access control list (text ACL) 0x4d49 Info-ZIP VMS (VAX or Alpha) 0x5356 AOS/VS (binary ACL) 0x5455 extended timestamp 0x5855 Info-ZIP Unix (original; also OS/2, NT, etc.) 0x6542 BeOS (BeBox, PowerMac, etc.) 0x756e ASi Unix 0x7855 Info-ZIP Unix (new) 0xfb4a SMS/QDOSThe following are detailed descriptions of the known extra-field block types: -OS/2 Extended Attributes Extra Field: ==================================== The following is the layout of the OS/2 extended attributes "extra" block. (Last Revision 19960922) Note: all fields stored in Intel low-byte/high-byte order. Local-header version: Value Size Description ----- ---- ----------- (OS/2) 0x0009 Short tag for this extra block type TSize Short total data size for this block BSize Long uncompressed EA data size CType Short compression type EACRC Long CRC value for uncompressed EA data (var.) variable compressed EA data Central-header version: Value Size Description ----- ---- ----------- (OS/2) 0x0009 Short tag for this extra block type TSize Short total data size for this block BSize Long size of uncompressed local EA data The value of CType is interpreted according to the "compression method" section above; i.e., 0 for stored, 8 for deflated, etc. The OS/2 extended attribute structure (FEA2LIST) is compressed and then stored in its entirety within this structure. There will only ever be one block of data in the variable-length field. -OS/2 Access Control List Extra Field: ==================================== The following is the layout of the OS/2 ACL extra block. (Last Revision 19960922) Local-header version: Value Size Description ----- ---- ----------- (ACL) 0x4c41 Short tag for this extra block type TSize Short total data size for this block BSize Long uncompressed ACL data size CType Short compression type EACRC Long CRC value for uncompressed ACL data (var.) variable compressed ACL data Central-header version: Value Size Description ----- ---- ----------- (ACL) 0x4c41 Short tag for this extra block type TSize Short total data size for this block BSize Long size of uncompressed local ACL data The value of CType is interpreted according to the "compression method" section above; i.e., 0 for stored, 8 for deflated, etc. The uncompressed ACL data consist of a text header of the form "ACL1:%hX,%hd\n", where the first field is the OS/2 ACCINFO acc_attr member and the second is acc_count, followed by acc_count strings of the form "%s,%hx\n", where the first field is acl_ugname (user group name) and the second acl_access. This block type will be extended for other operating systems as needed. -Windows NT Security Descriptor Extra Field: ========================================== The following is the layout of the NT Security Descriptor (another type of ACL) extra block. (Last Revision 19960922) Local-header version: Value Size Description ----- ---- ----------- (SD) 0x4453 Short tag for this extra block type TSize Short total data size for this block BSize Long uncompressed SD data size Version Byte version of uncompressed SD data format CType Short compression type EACRC Long CRC value for uncompressed SD data (var.) variable compressed SD data Central-header version: Value Size Description ----- ---- ----------- (SD) 0x4453 Short tag for this extra block type TSize Short total data size for this block BSize Long size of uncompressed local SD data The value of CType is interpreted according to the "compression method" section above; i.e., 0 for stored, 8 for deflated, etc. Version specifies how the compressed data are to be interpreted and allows for future expansion of this extra field type. Currently only version 0 is defined. For version 0, the compressed data are to be interpreted as a single valid Windows NT SECURITY_DESCRIPTOR data structure, in self-relative format. -PKWARE Win95/WinNT Extra Field: ============================== The following description covers PKWARE's undocumented Windows 95 & Windows NT extra field, introduced with the release of PKZIP for Windows 2.50. (Last Revision 19980425) This field has a fixed data size of 32 bytes and is only stored as local extra field. Value Size Description ----- ---- ----------- (WinNT) 0x000a Short Tag for this "extra" block type TSize Short Total Data Size for this block Unknwn1 Long ???? (all 0 ?) Unknwn2 Long ???? ModTime Long-Long 64-bit NTFS last-modified filetime AccTime Long-Long 64-bit NTFS last-access filetime CreTime Long-Long 64-bit NTFS creation filetime The NTFS filetimes are 64-bit unsigned integers, stored in Intel (least significant byte first) byte order. They determine the number of 1.0E-07 seconds (1/10th microseconds!) past WinNT "epoch", which is "01-Jan-1601 00:00:00 UTC". -PKWARE VAX/VMS Extra Field: ========================== The following is the layout of PKWARE's VAX/VMS attributes "extra" block. (Last Revision 12/17/91) Note: all fields stored in Intel low-byte/high-byte order. Value Size Description ----- ---- ----------- (VMS) 0x000c Short Tag for this "extra" block type TSize Short Total Data Size for this block CRC Long 32-bit CRC for remainder of the block Tag1 Short VMS attribute tag value #1 Size1 Short Size of attribute #1, in bytes (var.) Size1 Attribute #1 data . . . TagN Short VMS attribute tage value #N SizeN Short Size of attribute #N, in bytes (var.) SizeN Attribute #N data Rules: 1. There will be one or more of attributes present, which will each be preceded by the above TagX & SizeX values. These values are identical to the ATR$C_XXXX and ATR$S_XXXX constants which are defined in ATR.H under VMS C. Neither of these values will ever be zero. 2. No word alignment or padding is performed. 3. A well-behaved PKZIP/VMS program should never produce more than one sub-block with the same TagX value. Also, there will never be more than one "extra" block of type 0x000c in a particular directory record. -Info-ZIP VMS Extra Field: ======================== The following is the layout of Info-ZIP's VMS attributes extra block for VAX or Alpha AXP. The local-header and central-header versions are identical. (Last Revision 19960922) Value Size Description ----- ---- ----------- (VMS2) 0x4d49 Short tag for this extra block type TSize Short total data size for this block ID Long block ID Flags Short info bytes BSize Short uncompressed block size Reserved Long (reserved) (var.) variable compressed VMS file-attributes block The block ID is one of the following unterminated strings: "VFAB" struct FAB "VALL" struct XABALL "VFHC" struct XABFHC "VDAT" struct XABDAT "VRDT" struct XABRDT "VPRO" struct XABPRO "VKEY" struct XABKEY "VMSV" version (e.g., "V6.1"; truncated at hyphen) "VNAM" reserved The lower three bits of Flags indicate the compression method. The currently defined methods are: 0 stored (not compressed) 1 simple "RLE" 2 deflated The "RLE" method simply replaces zero-valued bytes with zero-valued bits and non-zero-valued bytes with a "1" bit followed by the byte value. The variable-length compressed data contains only the data corre- sponding to the indicated structure or string. Typically multiple VMS2 extra fields are present (each with a unique block type). -Info-ZIP Macintosh Extra Field: ============================== The following is the layout of the (old) Info-ZIP resource-fork extra block for Macintosh. The local-header and central-header versions are identical. (Last Revision 19960922) Value Size Description ----- ---- ----------- (Mac) 0x07c8 Short tag for this extra block type TSize Short total data size for this block "JLEE" beLong extra-field signature FInfo 16 bytes Macintosh FInfo structure CrDat beLong HParamBlockRec fileParam.ioFlCrDat MdDat beLong HParamBlockRec fileParam.ioFlMdDat Flags beLong info bits DirID beLong HParamBlockRec fileParam.ioDirID VolName 28 bytes volume name (optional) All fields but the first two are in native Macintosh format (big-endian Motorola order, not little-endian Intel). The least significant bit of Flags is 1 if the file is a data fork, 0 other- wise. In addition, if this extra field is present, the filename has an extra 'd' or 'r' appended to indicate data fork or resource fork. The 28-byte VolName field may be omitted. -ZipIt Macintosh Extra Field (long): ==================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -