Analyzing properties of a ZIP file
I have a ZIP file, and I want to determine how it was compressed (the specific algorithm, properties used to apply that algorithm, etc.). How can I do this?
Solution 1:
zipinfo
(from InfoZIP) will tell you a lot about a file.
Sample output from zipinfo -v
(using the "verbose" option -v
):
Archive: /tmp/test.zip
There is no zipfile comment.
End-of-central-directory record:
-------------------------------
Zip archive file size: 22341 (0000000000005745h)
Actual end-cent-dir record offset: 22319 (000000000000572Fh)
Expected end-cent-dir record offset: 22319 (000000000000572Fh)
(based on the length of the central directory and its expected offset)
This zipfile constitutes the sole disk of a single-part archive; its
central directory contains 1 entry.
The central directory is 88 (0000000000000058h) bytes long,
and its (expected) offset in bytes from the beginning of the zipfile
is 22231 (00000000000056D7h).
Central directory entry #1:
---------------------------
tmp/bookmarks.html
offset of local header from start of archive: 0
(0000000000000000h) bytes
file system or operating system of origin: Unix
version of encoding software: 3.0
minimum file system compatibility required: MS-DOS, OS/2 or NT FAT
minimum software version required to extract: 2.0
compression method: deflated
compression sub-type (deflation): normal
file security status: not encrypted
extended local header: no
file last modified on (DOS date/time): 2010 Feb 20 16:22:48
file last modified on (UT extra field modtime): 2010 Feb 20 16:22:47 local
file last modified on (UT extra field modtime): 2010 Feb 20 15:22:47 UTC
32-bit CRC value (hex): 3e84c75c
compressed size: 22155 bytes
uncompressed size: 76774 bytes
length of filename: 18 characters
length of extra field: 24 bytes
length of file comment: 0 characters
disk number on which file begins: disk 1
apparent file type: text
Unix file attributes (100600 octal): -rw-------
MS-DOS file attributes (00 hex): none
The central-directory extra field contains:
- A subfield with ID 0x5455 (universal time) and 5 data bytes.
The local extra field has UTC/GMT modification/access times.
- A subfield with ID 0x7875 (Unix UID/GID (any size)) and 11 data bytes:
01 04 e8 03 00 00 04 e8 03 00 00.
There is no file comment.
If that is not enough, please explain which information you need.
Note that zipinfo
functionality is actually part of the unzip
program (the two binaries are usually identical, or links to each other). You can invoke unzip -Z
to get zipinfo
's functionality. So if your installation should not have a zipinfo
binary, you can use unzip -Z
instead.
Solution 2:
The zipinfo
command can actually be run on Windows by using the unzip -Z
command, as stated in the info-zip archive's documentation.
Make a "zipinfo.bat" batch file with this command inside:
unzip.exe -Zsvh %1
and you have zipinfo
running on Windows.