Advanced ZIP Password Recovery 0.90 (c) Elcom Ltd., 1997
--------------------------------------------------------
Note: this is the pre-release version of the program.


Contents
--------

  Description
  Requirements
  Usage
  Known bugs and limitations
  Future enhancements
  Performance
  Registration


Description
-----------

This program (Advanced ZIP Password Recovery, or simply AZPR)
could be used to recover your lost password for ZIP archive. At
the moment, there is no known method to extract the password
from the compressed file; so, the onliest available method is
simple "brute force" attack.

Well, there are a lot of programs like this around there, but
all of them have their own "pros" and "cons". Here is a brief
list of AZPR advanages:

- The program is smart enough and will not give you "wrong"
  matches, as many other do. If it says that the password is
  here, then it really is.
- You can estimate the time the program will run using the
  "benchmark" feature.
- You can interrupt the program at any time and resume its
  execution later from the same point.
- The program is customizable: you can set the password length
  (or length range) and the character set to be used to generate
  the password.
- No special virtual memory requirements.
- The native version for DEC Alpha (running Windows NT) is
  available.


Requirements
------------

- Windows 95 (any version), or Windows NT 4.0 running on Intel
  or DEC Alpha CPU
- about 300 kilobytes of hard disk space
- patience...


Usage
-----

The program is a console application and so have to
be execute from the command prompt. The syntax is:

>AZPR [options] zip-filename

Where the options are:
  /bench  - don't crack, do benchmark only
  /min:x  - x is a minimum password length (default is 1)
  /max:x  - x is a maximum password length (default is 5, maximum is 15)
  /c:dsce - password charset, any combination of:
            'd' for digits (default)
            's' for small letters
            'c' for capital letters
            'e' for special symbols

You can use any combinations of the options above. For example,
if you want to crack file "test.zip" and know that the password
contains digits and small letters only, and the lenght of the
password is up to 7 characters, use the following syntax:

>AZPR test.zip /max:7 /c:ds

The option "/min:1" was not used here because 1 is the minimum
length by default.

The special symbols are:

~@#$%^&*()_+-=[]{},.\\\"/?:;`'

If you will not specify the "charset" option ("/c"), the program
will assume that the password contains digits only.

The "/bench" switch may help you to estimate how long the
program will work. Just use it together with any other switches,
for example:

>AZPR test.zip /max:5 /c:dsc /bench

After about a minute (the actual time may vary depending on the
speed of your CPU), you'll see the message like this:

Cracking this file can take about 19 hour(s) and 25 minute(s)

Note that the time you'll see is approximated; this is the
maximum time the program will spend to guess the password, if
you set the correct options -- for the above example, the password
is 5 characters long (or less) and consists of digits and letters
(small or capital) only.

If you want to interrupt AZPR when it is running, feel free to
do so (by pressing (Ctrl-Break or Ctrl-C): the program will save
the options you've used and the last password which has been
verified in "AZPR.INI" file. The next time you'll start the
program (with or without parameters), it'll ask you:

Continue to crack C:\PROJ\ZIP\test.zip?

Just press Y to continue or N to crack another file.


Known bugs and limitations
--------------------------

- The program doesn't work with self-extracting and multi-volume
  archives.
- If the archive contains two or more encrypted files, the
  program will assume that all of them are encrypted with the
  same password.
- The program leaves (in current directory) the temporary file
  (zero-length) after exit.


Future enhancements
-------------------

As we already noted, this version is actually a "pre-release".
We know that it can be improved, and here are some facilities
we're going to implement:

- Working with self-extracting and multi-volume	archives.
- Ability to select totally custom (user-defined) character set.
- Dictionary-based password search.
- Generating passwords based on user-defined regular
  expressions.
- User interface.
- Further performance optimizations.


Performance
-----------

Well, the program speed actually may very from 20000 to 200000
passwords per second (on average Pentium-166 computer).	If you
archive (the ZIP file you're cracking) contains only one
encrypted file, you'll get the first figure. If two or more --
second. Where this difference come from?

To get the best performance, AZPR doesn't try to decrypt the
whole compressed file. Instead, it just decrypts the header
(using the next-in-sequence password generated based on the
options you set) and checks its CRC code. The problem is: the
CRC of the header may match even if the password is not correct;
usually it happens for 1 of 250 (random) passwords. Now we have
to check if this password is one we're looking for; and the
programs tries to decrypt the whole file (not only the header)
using it. This takes much longer time...

But if the acrhive contains 2 or more files, we can check the
second header first, instead of decrypting the file. And the
chance that the CRC of the second header will match for random
(incorrect) password is 1 divided by 250*250 = 62500; so we'll
call the "full" decrypt routine (which is slow) more rarely.


Registration
------------

The program is distributed as a shareware (look at "license.txt"
for details). Being unregistered, it has some limitations:

- The charset used to generate the possible passwords is limited
  to digits and small letters only.
- The minimum password length cannot be set (so, "/min" option
  is not available). The default value (1) is always used.
- The maximum password length is 7.

After you'll register (look at "register.txt" for details), we'll
send you your personal registration code. You have to apply it
to the program using the special "/register" switch in the
command line:

>AZPR /register

The program will ask you to enter the code; after you'll do
that, it will start to work as registered.
