YAZC(1)

πŸ’– YAZC(1) β€” yet another zip cracker πŸ’–

okay bestie, so this is the YAZC(1) page from your General Commands Manual, and we're about to get you fully caught up. no cap.


✨ NAME ✨

yazc β€” yet another zip cracker πŸ¦‹


✨ SYNOPSIS ✨

yazc [-h] [-V]
yazc COMMAND OPTIONS... FILE

✨ DESCRIPTION ✨

so yazc cracks password protected zip files. that's the whole vibe. πŸ’…

there are three attack methods on the menu:

  1. bruteforce
  2. dictionary
  3. plaintext
⚠️ Note, bestie: only files encrypted using the legacy Pkware encryption method are supported. if it's not that, this whole thing is giving nothing. πŸ’€

πŸ”₯ BRUTEFORCE πŸ”₯

the bruteforce command tries every possible character combination. literally every one. a general rule of thumb is to use this command when you suspect the password to be 8 characters or less β€” beyond that it gets real slow real fast, iykyk.

  • -c, --charset=CHARSET β€” set the character set to CHARSET. you pick the alphabet, queen. πŸ‘‘
  • -i, --initial=STRING β€” set the initial password to STRING. starting point energy.
  • -l, --length=NUM β€” set the maximum password length to LENGTH characters.
  • -a, --alpha β€” use characters [a-z]. lowercase girlies rise 🌸
  • -A, --alpha-caps β€” use characters [A-Z]. CAPS LOCK MOMENT.
  • -n, --numeric β€” use characters [0-9]. digits, periodt.
  • -s, --special β€” use special characters "!:$%&/()=?{[]}+-*~#@|;". the chaotic ones πŸ’…
  • -t, --threads=NUM β€” distribute load to NUM threads. for maximum performance, this should be set to the number of logical processors available β€” like, actually match your machine, don't leave performance on the table bestie.
  • -h, --help β€” display help and exit. 🫢

πŸ“– DICTIONARY πŸ“–

the dictionary command reads passwords from a text file (or stdin if no file argument is provided). it is assumed that each password is separated by a newline. one per line, no drama.

  • -d, --dictionary=FILE β€” read passwords from FILE. πŸ“
  • -h, --help β€” display help and exit.

🧚 PLAINTEXT 🧚

the plaintext command uses a known vulnerability in the pkzip stream cipher to find the internal representation of the encryption key. iconic behavior honestly.

to use this attack type, you need at least 13 known plaintext bytes from any file in the archive. generally, this means that you need to obtain at least 13 bytes of the compressed stream before it was encrypted. yes, before. that's the whole point bestie 😭

the plaintext command can be used either with the raw byte offsets (-o option) or by using the zip file entry name. your call, main character.

  • -o, --offset β€” use raw byte offsets instead of entry names.
  • -t, --threads=NUM β€” distribute load to NUM threads.
  • -h, --help β€” display help and exit.

πŸ‘‘ INFO πŸ‘‘

the info command lists the filenames, offsets and the encryption header for each file in the archive. this is useful to determine what configuration to pass to the plaintext command. it's basically the vibe check you run before the real thing. ✨


🌈 EXAMPLES 🌈

use a bruteforce attack on file archive.zip using only lower case letters and distribute the load to 8 threads:

yazc bruteforce -a -t8 archive.zip

use a dictionary attack on file archive.zip and use passwords from rockyou.txt:

cat rockyou.txt | yazc dictionary archive.zip

use a plaintext attack on archive.zip. take plaintext bytes 100 to 650 and map them to ciphertext bytes 112 to 662. use these bytes to reduce the number of keys and perform the attack. once the intermediate key is found, decrypt the rest of the cipher (begins at offset 64) to get the internal representation (the encryption key derived from the password). if possible the actual (or equivalent) password will also be recovered and printed. πŸŽ€

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

πŸ’œ AUTHOR πŸ’œ

Marc Ferland <marc.ferland at gmail dot com>

part of this software was inspired by fcrackzip by Marc Lehmann and pkcrack by Peter Conrad. the original plaintext algorithm was developed by Eli Biham and Paul C. Kocher. legends only. 🫢


and that's the whole page bestie!! this was YAZC(1) from the General Commands Manual β€” go forth and crack responsibly πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from