CRACKZIP manpage

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> ] } ] [ -t <threads> ] [ -p <priority> ] [ -u <updateTimeMillis> ] [ --no-cache ] [ -v ] [ --debug ]
crackzip --init -i <zipFile> [ -v ] [ --debug ]
crackzip --clean -i <zipFile> [ -v ] [ --debug ]
crackzip -i -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 the password of a minimum --min-length and maximum --max-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 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.
-i --info: Show detailed information about the ZIP (*.zip) input file.
--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.
-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.
-i --input-file <zipFile>: The ZIP (*.zip) input file which examine.

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 -i -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 --expressionfrom 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: https://bitbucket.org/funcodez/funcodes-crackzip

AUTHOR

Siegfried Steiner steiner@refcodes.org

SEE ALSO