CRACKZIP(1) General Commands Manual
NAME
crackzip — Recovery tool for cracking password protected ZIP (*.zip) files.
SYNOPSIS
crackzip | -b -i <zipFile> [ -o <outputDir> ] [ { -e <expression[…]> | [ --min-length <minLength> ] [ --max-length <maxLength> ] [ { --char-set <charSet> | -a <alphabet> } ] [ -r <resumeFrom> ] } ] [ -y <yesRegex> ] [ -n <noRegex> ] [ -t <threads> ] [ -p <priority> ] [ -u <updateTimeMillis> ] [ --no-cache ] [ -v ] [ --debug ] |
crackzip | --init -i <zipFile> [ -v ] [ --debug ] |
crackzip | --clean -i <zipFile> [ -v ] [ --debug ] |
crackzip | --info -i <zipFile> [ -v ] [ --debug ] |
crackzip | -h | --sysinfo [ -v ] |
DESCRIPTION
Please keep in mind that the permutation functionality introduced below is intended for personal data recovery and educational use only! Please respect the privacy of your fellow people!
This manual page documents the crackzip command: The crackzip command tries
to recover --brute-force
a password of an (AES or ZIPCRYPTO) encrypted ZIP (*.zip)
--input-file
(optionally) resuming from a given (optional) password --resume-from
using a given character set --char-set
or custom alphabet --alphabet
for
passwords of a minimum --min-length
and maximum --max-length
length, using
multiple threads --threads
of a specific thread priority --priority
, persisting
the current recovery state from which to resume in case of interruption in an according
project <file_to_crack>.zip.ini
file.
Instead using the arguments --resume-from
, --char-set
, --alphabet
, --min-length
and--max-length
(multiple)--expression
expressions (of colon :
separated
sections) in combination define more complex passwords each as of [minLength-maxLength]:{char(s),char(s),...,char(s)}:"startValue"
with the [minLength-maxLength]
section defining the password portion’s minimum
minLength
and maximum maxLength
lengths, the {char(s),char(s),...,char(s)}
section
defining the password portion’s alphabet as of a comma separated list of characters
such as a
, b
or y
or unicode codepoints such as U+03B1
, U+03B2
or U+03B3
or character set definitions as of ASCII_SPECIAL
or character range
definitions as of [A-F]
for all upper case letters from A
till F
or [7-9]
for the digits 7
, 8
and 9
and the (optional) startValue
section defining
the password portion’s start value or, if provided as only section, as a constant
representing this password’s portion.
E.g. the expressions “--expression [0-1]:{s,S}
”, “--expression "ecret"
” and
“--expression [1-3]:{[0-9]}:'7'
” together define probing of all passwords ranging
from “secret7
” till “Secret999
”.
Depending on the executable’s flavor the command might also be named crackzip-x.y.z.jar, crackzip-bundle-x86_64-x.y.z.elf, crackzip-bundle-x86_64-x.y.z.exe, crackzip-installer-x86_64-x.y.z.msi, crackzip-launcher-x.y.z.sh, crackzip-launcher-x86_64-x.y.z.elf, crackzip-launcher-x86_64-x.y.z.exe, crackzip-native-x86_64-x.y.z.elf where x.y.z stands for the version of the crackzip command. The according executable’s name will be referenced to in this manual as crackzip.
OPTIONS
-a --alphabet <alphabet>: | The alphabet to when probing passwords |
-b --brute-force: | Start brute force password recovery. |
--char-set <charSet>: | The character set to use when probing passwords: { ASCII, ALPHABETIC, UPPER_CASE, LOWER_CASE, ALPHANUMERIC, NUMERIC, ENCODED_AS_NUMBER, BINARY, OCTAL, DECIMAL, HEXADECIMAL, BASE64, BASE64URL, ARABIC_BASE64, QUOTES, WHITE_SPACES, END_OF_LINE, LINE_BREAK_MARKERS, OPENING_BRACES, CLOSING_BRACES, SPACE_MARKERS, REGEX_SPECIAL_CHARS } |
--clean: | Clean any temporary (lock) files. |
--debug: | Enables the debug mode with additional (developer readable) informational output. |
-e --expression <expression[…]>: | The expression(s) in combination defining the password each as of “[minLength-maxLength]:{char(s),char(s),...,char(s)}:'startValue' ”. e.g. “[3-12]:{A-Z,0-9,ASCII_SPECIAL,U+03B1,U+03B2,U+03B3,a,b,c}:'a10!Y' ” (probed password’s min length is 3, max length is 12, valid characters include all upper case letters from A to Z , all digits from 0 to 9 , the ASCII_SPECIAL char(s), the letters alpha , beta , gamma as of the given UTF codepoints as well as the the letters a , b , c and the section’s start value a10!Y ). Predefined char sets as of: { ASCII, ASCII_SPECIAL, ALPHABETIC, UPPER_CASE, LOWER_CASE, ALPHANUMERIC, NUMERIC, ENCODED_AS_NUMBER, BINARY, OCTAL, DECIMAL, HEXADECIMAL, BASE64, BASE64URL, ARABIC_BASE64, QUOTES, WHITE_SPACES, ESCAPE_SEQUENCES, END_OF_LINE, LINE_BREAK_MARKERS, OPENING_BRACES, CLOSING_BRACES, SPACE_MARKERS, REGEX_SPECIAL_CHARS } |
-h --help: | Shows this help. |
--info: | Show detailed information about the ZIP (*.zip) input file. |
-i --input-file <zipFile>: | The ZIP (*.zip) input file which examine. |
--init: | Initialize a new project. |
--max-length <maxLength>: | Max password length to probe, a value of -1 denotes an infinite max length (defaults to <-1>). |
--min-length <minLength>: | Min password length to probe (defaults to <1>). |
--no-cache: | Experimental, do not(!) load ZIP (*.zip) input file into memory (no speedup) before processing. |
-n --no-regex <noRegex>: | A regular expression which must match a password to be skipped(!) for probing, e.g. “\b.*?(.)\1.*?\b ” to skip those password with at least two same characters directly next to each other. |
-o --output-dir <outputDir>: | The output directory where to write the results to. |
-p --priority <priority>: | Thread priority (min = <1>, max = <10>) to use (defaults to <5>). |
-r --resume-from <resumeFrom>: | Resume the operation from the given password. |
--sysinfo: | Shows some system information for debugging purposes. |
-t --threads <threads>: | Number of threads to use (defaults to <12> on this machine). |
-u --update-time <updateTimeMillis>: | Update time in ms of update current execution status into project file and, upon verbose mode, on the screen (defaults to <2500>). |
-v --verbose: | Enables the verbose mode with additional (human readable) informational output. |
-y --yes-regex <yesRegex>: | A regular expression which must match a password to be included(!) for probing, e.g. “\b.*?(.)\1.*?\b ” to include only those password with at least two same characters directly next to each other. |
EXAMPLES
Crack archive password using a char set:
- crackzip -b -i <zipFile> --char-set <charSet> -v
Crack archive password using a custom alphabet:
- crackzip -b -i <zipFile> -a <alphabet> -v
Crack archive starting at password using a char set:
- crackzip -b -i <zipFile> --char-set <charSet> -r <resumeFrom> -v
Crack archive starting at password using a custom alphabet:
- crackzip -b -i <zipFile> -a <alphabet> -r <resumeFrom> -v
Crack archive with passwords [min..max] using a char set:
- crackzip -b -i <zipFile> --char-set <charSet> --min-length <minLength> --max-length <maxLength> -v
Crack archive with passwords [min..max] using a custom alphabet:
- crackzip -b -i <zipFile> -a <alphabet> --min-length <minLength> --max-length <maxLength> -v
Crack archive with three expressions for complex passwords to probe:
- crackzip -b -i <zipFile> -e <expression> -e <expression> -e <expression>
Crack archive with number of threads and thread priorities:
- crackzip -b -i <zipFile> -t <threads> -p <priority> -v
Crack archive and extract cracked content to output folder:
- crackzip -b -i <zipFile> -o <outputDir> -v
Update frequency (ms) of current execution status into project file:
- crackzip -b -i <zipFile> -u <updateTimeMillis> -v
Clean archive’s project configuration:
- crackzip --clean -i <zipFile> -v
Show ZIP file information:
- crackzip --info -i <zipFile> -v
To show the help text:
- crackzip -h
To print the system info:
- crackzip --sysinfo
FILES
The <file_to_crack>.zip.ini
project file supports the following properties:
- charSet= The char set to use for the password when cracking e.g.
ASCII
- alphabet= The chars to try out for the password when cracking (replaced with an
resumeFrom
expression upon first run) e.g.abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789
- minLength= The minimum password length to probe (replaced with an
resumeFrom
expression upon first run), e.g.8
- maxLength= The maximum password length to probe (replaced with an
resumeFrom
expression upon first run), e.g.12
- updateTimeMillis= The time in milliseconds to save the last probed password from which to resume, e.g.
2500
- threads= The number of threads to use for cracking, e.g.
6
- priority= The thread priority ([1..10]) to use for the threads when cracking, e.g.
8
- outputDir= The output directory to extracted the files of the cracked archive to, e.g.
C:\temp
- resumeFrom= An array with the expressions as of
--expression
from which to resume, e.g.resumeFrom/0=[0-4]:{0,1,2,3,4,5,6,7,8,9}:"1045"
for the first expression,resumeFrom/1=[8-12]:{a-z,A-Z,0-9}:"qeuDui1kT"
for the second expression (and so on) - verbose= Be more verbose, e.g.
true
The <file_to_crack>.zip.ini
project is initialized in the same folder as
the <file_to_crack>.zip
is located in.
BUGS
See BitBucket issues at <https://bitbucket.org/funcodez/funcodes-crackzip/issues>
AUTHOR
Siegfried Steiner steiner@refcodes.org