App-zipdetails
view release on metacpan or search on metacpan
[](https://github.com/pmqs/zipdetails/actions/workflows/macos.yml)
[](https://github.com/pmqs/zipdetails/actions/workflows/windows.yml)
[](https://github.com/pmqs/zipdetails/actions/workflows/linux-docker.yml)
# NAME
zipdetails - display the internal structure of zip files
# SYNOPSIS
zipdetails [options] zipfile.zip
# DESCRIPTION
This program creates a detailed report on the internal structure of zip
files. For each item of metadata within a zip file the program will output
- the offset into the zip file where the item is located.
- a textual representation for the item.
- an optional hex dump of the item.
The program assumes a prior understanding of the internal structure of Zip
files. You should have a copy of the zip file definition,
[APPNOTE.TXT](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT),
at hand to help understand the output from this program.
## Default Behaviour
By default the program expects to be given a well-formed zip file. It will
navigate the zip file by first parsing the zip `Central Directory` at the end
of the file. If the `Central Directory` is found, it will then walk
sequentially through the zip records starting at the beginning of the file.
See ["Advanced Analysis"](#advanced-analysis) for other processing options.
If the program finds any structural or portability issues with the zip file
it will print a message at the point it finds the issue and/or in a summary
at the end of the output report. Whilst the set of issues that can be
detected it exhaustive, don't assume that this program can find _all_ the
possible issues in a zip file - there are likely edge conditions that need
to be addressed.
If you have suggestions for use-cases where this could be enhanced please
consider creating an enhancement request (see ["SUPPORT"](#support)).
### Date & Time fields
Date/time fields found in zip files are displayed in local time. Use the
`--utc` option to display these fields in Coordinated Universal Time (UTC).
### Filenames & Comments
Filenames and comments are decoded/encoded using the default system
encoding of the host running `zipdetails`. When the system encoding cannot
be determined `cp437` will be used.
The exceptions are
- when the `Language Encoding Flag` is set in the zip file, the
filename/comment fields are assumed to be encoded in UTF-8.
- the definition for the metadata field implies UTF-8 charset encoding
See ["Filename Encoding Issues"](#filename-encoding-issues) and ["Filename & Comment Encoding
Options"](#filename-comment-encoding-options) for ways to control the encoding of filename/comment fields.
## OPTIONS
### General Options
- `-h`, `--help`
Display help
- `--redact`
Obscure filenames and payload data in the output. Handy for the use case
where the zip files contains sensitive data that cannot be shared.
- `--scan`
Pessimistically scan the zip file looking for possible zip records. Can be
error-prone. For very large zip files this option is slow. Consider using
the `--walk` option first. See ["Advanced Analysis Options"](#advanced-analysis-options)
- `--utc`
By default, date/time fields are displayed in local time. Use this option to
display them in in Coordinated Universal Time (UTC).
- `-v`
Enable Verbose mode. See ["Verbose Output"](#verbose-output).
- `--version`
Display version number of the program and exit.
- `--walk`
Optimistically walk the zip file looking for possible zip records.
See ["Advanced Analysis Options"](#advanced-analysis-options)
### Filename & Comment Encoding Options
See ["Filename Encoding Issues"](#filename-encoding-issues)
- `--encoding name`
Use encoding "name" when reading filenames/comments from the zip file.
When this option is not specified the default the system encoding is used.
- ` --no-encoding`
Disable all filename & comment encoding/decoding. Filenames/comments are
processed as byte streams.
This option is not enabled by default.
- `--output-encoding name`
( run in 2.760 seconds using v1.01-cache-2.11-cpan-8f98c5d2c55 )