This is a small program written in C++ that will output 8-length lower alpha combinations (excluding i and o) while skipping over certain combinations it believes to be invalid.
Only combinations which meet these criteria will be printed:
• each character cannot appear more than 3 times
• no 3 characters in a row can be identical
• no 3 characters in a row can be sequential (abc)
• no 3 characters in a row can be reverse sequential (cba)
• character 5 is not equal to character 4
• characters 1 and 2 and 4 are not identical
• characters 1 and 3 and 4 are not identical
• characters 1 and 3, and 2 and 4 are not identical
Without any rules applied there are 110,075,314,176 (24^8) possible combinations in the keyspace.
Applying these rules brings it down to 47,210,528,543 combinations (or about 43% of the keyspace).
To compile on Windows (requires the Windows 7 SDK):
cl /EHsc la.cpp
To compile on Linux:
g++ la.cpp -ola
##Example usage:
la | oclHashcat64 -m 2500 CAP.hccap
pipes its output into oclHashcat (AMD)
la | cudaHashcat64 -m 2500 CAP.hccap
pipes its output into cudaHashcat (NVIDIA)
la | aircrack-ng -w - CAP.cap -e SSID
pipes its output into aircrack-ng
./la | pyrit -r CAP.cap -i- attack_passthrough
pipes its output into pyrit
You can optionally specify any of these parameters to further refine your output.
-random
Will randomize its output while still maintaining rules
-upper
Forces all output to be uppercase
-lower
Forces all output to be lowercase
-Xuniques
Only outputs combinations which have X unique characters in them (typically 6, 7 or 8)
-Xminuniques
Only outputs combinations which have a minimum of X unique characters in them.
-startswithX
Only outputs combinations which start with x (can be a-z).
-start X
Start on combination X (where X is a number between 0 and 38469126600)
-stop X
Stop on combination X (where X is a number between 1 and 38469126600)