Maskprocessor is a high-performance word generator with a per-position configurable charset packed into a single stand-alone binary.
For a detailed description of how masks work, see the Mask attack page.
maskprocessor is released as open source software under the MIT license.
Current Version is 0.73.
The program is available for Linux and Windows in both 32 bit and 64 bit versions.
maskprocessor does not have a dedicated homepage, but here is a download link to the latest version:
Currently, it is the world's fastest word generator. Here are some stats:
To eliminate I/O variability for these benchmarks, all output was sent to /dev/null.
$ ./mp64.bin -V v0.73 $ ./mp64.bin --help High-Performance word generator with a per-position configureable charset Usage: ./mp64.bin [options]... mask * Startup: -V, --version Print version -h, --help Print help * Increment: -i, --increment=NUM:NUM Enable increment mode. 1st NUM=start, 2nd NUM=stop Example: -i 4:8 searches lengths 4-8 (inclusive) * Misc: --combinations Calculate number of combinations --hex-charset Assume charset is given in hex -q, --seq-max=NUM Maximum number of multiple sequential characters -r, --occurrence-max=NUM Maximum number of occurrence of a character * Resources: -s, --start-at=WORD Start at specific position -l, --stop-at=WORD Stop at specific position * Files: -o, --output-file=FILE Output-file * Custom charsets: -1, --custom-charset1=CS User-defineable charsets -2, --custom-charset2=CS Example: -3, --custom-charset3=CS --custom-charset1=?dabcdef -4, --custom-charset4=CS sets charset ?1 to 0123456789abcdef * Built-in charsets: ?l = abcdefghijklmnopqrstuvwxyz ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?s = !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ ?a = ?l?u?d?s ?b = 0x00 - 0xff
When running the command:
$ mp64.bin pass?d
… the following output is generated:
pass0 pass1 pass2 pass3 pass4 pass5 pass6 pass7 pass8 pass9
See “generate.sh” for more examples.
There is no known alternative that can handle masks like this, but the following programs can at least generate wordlists and are partially configurable: