Skip to content
Tool and library for cracking zip files.
Branch: master
Clone or download
Latest commit c6068de May 24, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bench bench: update results Dec 24, 2018
data libzc: add scripts to test plaintext and bruteforce Jan 7, 2018
debian libzc: add compressed file size to info listing May 24, 2019
lib run astyle May 24, 2019
m4 libzc: add ac_pthread m4 macro May 6, 2017
tests libzc: add compressed file size to info listing May 24, 2019
yazc libzc: add compressed file size to info listing May 24, 2019
.gitignore libzc: gitignore Jan 20, 2018
.travis.yml travis-ci: list logs after failure Dec 17, 2018
AUTHORS Add required GNU project files May 10, 2015
COPYING Add required GNU project files May 10, 2015
ChangeLog Add required GNU project files May 10, 2015
INSTALL Add required GNU project files May 10, 2015
Makefile.am libzc: update copyright Jan 5, 2018
NEWS Add required GNU project files May 10, 2015
README Add required GNU project files May 10, 2015
README.md libzc: update readme Jan 20, 2018
autogen.sh libzc: update copyright Jan 5, 2018
builddeb
configure.ac libzc: bump version to 0.4.1 Jun 24, 2018
gen_decryptbyte.py libzc: update copyright Jan 5, 2018
runafl.sh runafl: add selection menu Dec 20, 2018
runastyle.sh run astyle May 24, 2019
runcppcheck.sh libzc: update copyright Jan 5, 2018
runvalgrind.sh libzc: update copyright Jan 5, 2018

README.md

Coverity Scan Build Status Build Status

What is it?

The libzc library is a simple zip cracking library. It also comes with a command line tool called 'yazc' (Yet Another Zip Cracker).

How to install it?

Just clone, configure, compile and install.

git clone https://github.com/mferland/libzc.git
cd libzc
./autogen.sh
./configure CFLAGS='-Ofast -march=native -mtune=native'
make
sudo make install

How to use it?

There are currently 3 attack modes available:

Bruteforce

This mode tries all possible passwords from the given character set. It supports multi-threading.

Example: Try all passwords in [a-z0-9] up to 8 characters with 4 threads:

yazc bruteforce -a -n -l8 -t4 archive.zip

Dictionary

This mode tries all passwords from the given dictionary file. If no password file is given as argument it reads from stdin.

Examples: Try all password from words.dict:

cat words.dict | yazc dictionary archive.zip

Use John The Ripper to generate more passwords:

john --wordlist=words.dict --rules --stdout | yazc dictionary archive.zip

Plaintext

This mode uses a known vulnerability in the pkzip stream cipher to find the internal representation of the encryption key. Once the internal representation of the key has been found, we try to find the actual (or an equivalent) password.

Example: Try to find archive.zip password by using plain.bin using 8 threads:

yazc plaintext -t8 plain.bin:100:650 archive.zip:112:662:64

TODO

  • Support for GPU bruteforce cracking.
  • Add basic mangling rules to dictionary attack.
  • Review library api, should be much simpler.
  • Optionally decrypt the archive (plaintext).
  • Provide a way to benchmark libzc.
You can’t perform that action at this time.