This is a small program written in C++ that will output 8-length upper alpha combinations 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 2 is not equal to character 1
• character 2 is not +1 to character 1
• character 2 is not +2 to character 1
• character 2 is not +3 to character 1
• character 2 is not +4 to character 1
• character 2 is not +5 to character 1
• character 2 is not -1 to character 1
• character 2 is not -3 to character 1
• character 2 is not -4 to character 1
• character 3 is not equal to character 1
• character 3 is not +2 to character 1
• character 3 is not equal to character 2
• character 3 is not +2 to character 2
• character 3 is not +3 to character 2
• character 3 is not +4 to character 2
• character 3 is not +5 to character 2
• character 3 is not -1 to character 1
• character 3 is not -2 to character 2
• character 3 is not -4 to character 2
• character 3 is not -5 to character 2
• character 5 is not equal to character 1
• character 5 is not equal to character 4
• character 8 is not equal to character 6
• characters 1 and 3 and 4 are not identical
• characters 1 and 3, and 2 and 4 are not identical
• characters 2, 3 and 8 cannot be identical
• characters 3 and 5, and 4 and 6 are not identical
Without any rules applied there are 208,827,064,576 (26^8) possible combinations in the keyspace.
Applying these rules brings it down to 79,593,411,812 combinations (or about 38% of the keyspace).
To compile on Windows (requires the Windows 7 SDK):
cl /EHsc ua.cpp
To compile on Linux:
g++ ua.cpp -oua
##Example usage:
ua | oclHashcat64 -m 2500 CAP.hccap
pipes its output into oclHashcat (AMD)
ua | cudaHashcat64 -m 2500 CAP.hccap
pipes its output into cudaHashcat (NVIDIA)
ua | aircrack-ng -w - CAP.cap -e SSID
pipes its output into aircrack-ng
./ua | 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
-noio
Will not include the letters I or O (they are included by default)
-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 79593411812)
-stop X
Stop on combination X (where X is a number between 1 and 79593411812)