###
# This program was written by and is copyright Alec Muffett 1991,
# 1992, 1993, 1994, 1995, and 1996, and is provided as part of the
# Crack v5.0 Password Cracking package.
#
# The copyright holder disclaims all responsibility or liability with
# respect to its usage or its effect upon hardware or computer
# systems, and maintains copyright as set out in the "LICENCE"
# document which accompanies distributions of Crack v5.0 and upwards.
###
# This file specifies the order of rules files applied to dictionaries, in
# the format:
#
#       <dictionary tag> ':' <rulefilename>
#       [<dictionary tag>] ':' '|' <commandline>
###

###
# First, the 'total feedback' run.
###

:|(awk -F: '{print $NF}' run/F-merged | sort | uniq) 2>/dev/null

###
# apply successive conf/rules.foo files to dictionaries
###

gecos:conf/rules.fast
gecos:conf/rules.basic
gecos:conf/rules.perm1
gecos:conf/rules.perm2
gecos:conf/rules.prefix
gecos:conf/rules.suffix
gecos:conf/rules.perm1u
gecos:conf/rules.perm2u

gcperm:conf/rules.fast
gcperm:conf/rules.basic
gcperm:conf/rules.perm1
gcperm:conf/rules.perm2

gecos:conf/rules.perm3
gecos:conf/rules.perm4
gecos:conf/rules.perm5
gecos:conf/rules.perm6
gecos:conf/rules.perm7

gcperm:conf/rules.prefix
gcperm:conf/rules.suffix
gcperm:conf/rules.perm1u
gcperm:conf/rules.perm2u

gecos:conf/rules.prefixu
gecos:conf/rules.suffixu
gecos:conf/rules.weird
gecos:conf/rules.perm3u
gecos:conf/rules.perm4u
gecos:conf/rules.perm5u
gecos:conf/rules.perm6u
gecos:conf/rules.perm7u

gcperm:conf/rules.perm3
gcperm:conf/rules.perm4

1:conf/rules.fast
1:conf/rules.basic
1:conf/rules.perm1
1:conf/rules.perm2
1:conf/rules.prefix
1:conf/rules.suffix

# here's an interesting one:
# use 'sed' to select and hack "two" into "2" from dict '1'
1:| sed -ne 's/two/2/gp'

# nicer version of the above, if you have perl
#1:|perl -ne 'print if s/(two|too?)/2/go'

1:conf/rules.perm1u
1:conf/rules.perm2u
1:conf/rules.perm3
1:conf/rules.perm4
1:conf/rules.perm5
1:conf/rules.perm6
1:conf/rules.perm7

2:conf/rules.fast
2:conf/rules.basic
2:conf/rules.perm1
2:conf/rules.perm2
2:conf/rules.prefix
2:conf/rules.suffix

1:conf/rules.prefixu
1:conf/rules.suffixu
1:conf/rules.weird
1:conf/rules.perm3u
1:conf/rules.perm4u
1:conf/rules.perm5u
1:conf/rules.perm6u
1:conf/rules.perm7u

2:conf/rules.perm1u
2:conf/rules.perm2u
2:conf/rules.perm3
2:conf/rules.perm4
2:conf/rules.perm5
2:conf/rules.perm6
2:conf/rules.perm7

3:conf/rules.fast
3:conf/rules.basic
3:conf/rules.perm1
3:conf/rules.perm2
3:conf/rules.prefix
3:conf/rules.suffix

2:conf/rules.prefixu
2:conf/rules.suffixu
2:conf/rules.weird
2:conf/rules.perm3u
2:conf/rules.perm4u
2:conf/rules.perm5u
2:conf/rules.perm6u
2:conf/rules.perm7u

3:conf/rules.perm1u
3:conf/rules.perm2u
3:conf/rules.perm3
3:conf/rules.perm4
3:conf/rules.perm5
3:conf/rules.perm6
3:conf/rules.perm7

3:conf/rules.prefixu
3:conf/rules.suffixu
3:conf/rules.weird
3:conf/rules.perm3u
3:conf/rules.perm4u
3:conf/rules.perm5u
3:conf/rules.perm6u
3:conf/rules.perm7u

# highly derivative stuff == lower down
gcperm:conf/rules.perm5
gcperm:conf/rules.perm6
gcperm:conf/rules.perm7

gcperm:conf/rules.prefixu
gcperm:conf/rules.suffixu
gcperm:conf/rules.weird
gcperm:conf/rules.perm3u
gcperm:conf/rules.perm4u
gcperm:conf/rules.perm5u
gcperm:conf/rules.perm6u
gcperm:conf/rules.perm7u

# Generate an exhaustive dictionary 'a' -> 'zzzzzzzz' -  SLOW !
#:| perl -e '$s="a"; print $s++,"\n" while (length($s) < 9);'
