Windows Password Recovery - rainbow table generator
Rainbow tables are special search tables used for reversing cryptographic One-Way Functions and cracking plaintext passwords derived from the hash functions. An example of such hashes would be a user password (LM or NTLM hashes) in the Windows OS.
Windows Password Recovery has the password lookup implementation using rainbow tables. The tables it requires can be downloaded off the Internet or created manually with the RT generation tool.
Before you start generating your own tables, it is important to properly configure the respective related options and find their best combination. First, select one of the two algorithms (LM or NTLM) you need and setup a proper character set passwords will be limited to. The wider the character range is, the more passwords will be recovered in the rainbow table attack, but the more time it will take to precompute the tables and, perhaps, of greater size they will be.
Rainbow tables are used to recover passwords up to a certain length you should setup in the Min length and Max length fields. An LM hash in Windows consists of two 7-character halves; therefore, the maximum password length to be used when generating LM tables must not exceed 7.
Chain Length affects the following parameters of the table: password recovery rate, table generation time, and time it takes to recover a single password by the attack.
Chain count affects password recovery rate, table generation time, and its size.
Currently, the RT generation tool does not support tables greater than 2 GB in size; however, when creating large tables, you can increase the number of them (Table count option).
The implementation peculiarity of the rainbow table lookup algorithm is in the fact that the success of the recovery depends on several parameters, which you need to pick the best ratio for, depending on the size of the tables, the time it takes to generate them and the max time it takes to find a password in the rainbow attack.
The table generation tool supports multithreading, so before launching the precomputation you may want to set an appropriate number of simultaneous threads to be run for creating the tables.