Initial commit
[hashcat.git] / docs / rules.txt
1 #define RULE_OP_MANGLE_NOOP             ':' // does nothing
2 #define RULE_OP_MANGLE_LREST            'l' // lower case all chars
3 #define RULE_OP_MANGLE_UREST            'u' // upper case all chars
4 #define RULE_OP_MANGLE_LREST_UFIRST     'c' // lower case all chars, upper case 1st
5 #define RULE_OP_MANGLE_UREST_LFIRST     'C' // upper case all chars, lower case 1st
6 #define RULE_OP_MANGLE_TREST            't' // switch the case of each char
7 #define RULE_OP_MANGLE_TOGGLE_AT        'T' // switch the case of each char on pos N
8 #define RULE_OP_MANGLE_REVERSE          'r' // reverse word
9 #define RULE_OP_MANGLE_DUPEWORD         'd' // append word to itself
10 #define RULE_OP_MANGLE_DUPEWORD_TIMES   'p' // append word to itself N times
11 #define RULE_OP_MANGLE_REFLECT          'f' // reflect word (append reversed word)
12 #define RULE_OP_MANGLE_ROTATE_LEFT      '{' // rotate the word left.  ex: hello -> elloh
13 #define RULE_OP_MANGLE_ROTATE_RIGHT     '}' // rotate the word right. ex: hello -> ohell
14 #define RULE_OP_MANGLE_APPEND           '$' // append char X
15 #define RULE_OP_MANGLE_PREPEND          '^' // prepend char X
16 #define RULE_OP_MANGLE_DELETE_FIRST     '[' // delete first char of word
17 #define RULE_OP_MANGLE_DELETE_LAST      ']' // delete last char of word
18 #define RULE_OP_MANGLE_DELETE_AT        'D' // delete char of word at pos N
19 #define RULE_OP_MANGLE_EXTRACT          'x' // extract X chars of word at pos N
20 #define RULE_OP_MANGLE_OMIT             'O' // omit X chars of word at pos N
21 #define RULE_OP_MANGLE_INSERT           'i' // insert char X at pos N
22 #define RULE_OP_MANGLE_OVERSTRIKE       'o' // overwrite with char X at pos N
23 #define RULE_OP_MANGLE_TRUNCATE_AT      '\''// cut the word at pos N
24 #define RULE_OP_MANGLE_REPLACE          's' // replace all chars X with char Y
25 #define RULE_OP_MANGLE_PURGECHAR        '@' // purge all instances of char X
26 #define RULE_OP_MANGLE_DUPECHAR_FIRST   'z' // prepend first char of word to itself. ex: hello -> hhello
27 #define RULE_OP_MANGLE_DUPECHAR_LAST    'Z' // append last char of word to itself.   ex: hello -> helloo
28 #define RULE_OP_MANGLE_DUPECHAR_ALL     'q' // duplicate all chars. ex: hello -> hheelllloo
29 #define RULE_OP_MANGLE_EXTRACT_MEMORY   'X' // insert substring delimited by N and M into current word at position I
30 #define RULE_OP_MANGLE_APPEND_MEMORY    '4' // insert the word saved by 'M' at the end of current word
31 #define RULE_OP_MANGLE_PREPEND_MEMORY   '6' // insert the word saved by 'M' at the beginning of current word
32
33 #define RULE_OP_MEMORIZE_WORD           'M' // memorize current word
34
35 #define RULE_OP_REJECT_LESS             '<' // reject plains of length greater than N
36 #define RULE_OP_REJECT_GREATER          '>' // reject plains of length less than N
37 #define RULE_OP_REJECT_CONTAIN          '!' // reject plains that contain char X
38 #define RULE_OP_REJECT_NOT_CONTAIN      '/' // reject plains that do not contain char X
39 #define RULE_OP_REJECT_EQUAL_FIRST      '(' // reject plains that do not contain char X at first position
40 #define RULE_OP_REJECT_EQUAL_LAST       ')' // reject plains that do not contain char X at last position
41 #define RULE_OP_REJECT_EQUAL_AT         '=' // reject plains that do not contain char X at position N
42 #define RULE_OP_REJECT_CONTAINS         '%' // reject plains that contain char X less than N times
43 #define RULE_OP_REJECT_MEMORY           'Q' // reject plains that match the plain saved (see M), i.e. if unchanged
44
45 /* hashcat only */
46
47 #define RULE_OP_MANGLE_SWITCH_FIRST     'k' // switches the first 2 chars. ex: hello -> ehllo
48 #define RULE_OP_MANGLE_SWITCH_LAST      'K' // switches the last 2 chars.  ex: hello -> helol
49 #define RULE_OP_MANGLE_SWITCH_AT        '*' // switches the first 2 chars after pos N. ex: hello -> hlelo
50 #define RULE_OP_MANGLE_CHR_SHIFTL       'L' // bitwise shift left char at pos N.  ex: hello0 -> hello`
51 #define RULE_OP_MANGLE_CHR_SHIFTR       'R' // bitwise shift right char at pos N. ex: hello` -> hello0
52 #define RULE_OP_MANGLE_CHR_INCR         '+' // bytewise increase at pos N. ex: hello0 -> hello1
53 #define RULE_OP_MANGLE_CHR_DECR         '-' // bytewise decreate at pos N. ex: hello1 -> hello0
54 #define RULE_OP_MANGLE_REPLACE_NP1      '.' // replaces character @ n with value at @ n plus 1
55 #define RULE_OP_MANGLE_REPLACE_NM1      ',' // replaces character @ n with value at @ n minus 1
56 #define RULE_OP_MANGLE_DUPEBLOCK_FIRST  'y' // duplicates first n characters
57 #define RULE_OP_MANGLE_DUPEBLOCK_LAST   'Y' // duplicates last n characters
58 #define RULE_OP_MANGLE_TITLE            'E' // lowercase everything then upper case the first letter and every letter after a space