Comprehensive rule listing?
#1
Is there a comprehensive listing of hashcat's rule, like john has at http://www.openwall.com/john/doc/RULES.shtml?

"Rule-Fu: The art of word mangling" by d3ad0ne at http://ob-security.info/?p=31 is the only thing I've seen like that, but what is needed is a comparison of john's rules to hashcat's.

I'm aware that there is no preprocessor, but are there character classes and commands that can be used to not waste time by trying to uppercase words beginning with punctuation and symbols?

Also, hints as to whether "^" for prepending or "i" for inserting multiple characters is faster?
#2
there is no direct comparisation but i tried to make it 100% compatible. there are some hashcat only commands and some jtr only command but these that both have should do exactly the same
#3
i would say ^ is faster, but why dont try it for yourself? Smile
#4
So, of the john "character class commands" hashcat only has the single character rules, sXY, @X, !X, /X, (X, )X, and no character class commands?

E.g., trying john's !?X in hashcat got a syntax error, while john's (?a didn't work.

#5
maybe this helps:

Code:
#define RULE_OP_MANGLE_NOOP1          ':'
#define RULE_OP_MANGLE_NOOP2          ' '
#define RULE_OP_MANGLE_LREST          'l'
#define RULE_OP_MANGLE_UREST          'u'
#define RULE_OP_MANGLE_LREST_UFIRST   'c'
#define RULE_OP_MANGLE_UREST_LFIRST   'C'
#define RULE_OP_MANGLE_TREST          't'
#define RULE_OP_MANGLE_TOGGLE_AT      'T'
#define RULE_OP_MANGLE_REVERSE        'r'
#define RULE_OP_MANGLE_DUPEWORD       'd'
#define RULE_OP_MANGLE_DUPEWORD_TIMES 'p'
#define RULE_OP_MANGLE_REFLECT        'f'
#define RULE_OP_MANGLE_SHIFT_LEFT     '{'
#define RULE_OP_MANGLE_SHIFT_RIGHT    '}'
#define RULE_OP_MANGLE_APPEND         '$'
#define RULE_OP_MANGLE_PREPEND        '^'
#define RULE_OP_MANGLE_DELETE_FIRST   '['
#define RULE_OP_MANGLE_DELETE_LAST    ']'
#define RULE_OP_MANGLE_DELETE_AT      'D'
#define RULE_OP_MANGLE_EXTRACT        'x'
#define RULE_OP_MANGLE_INSERT         'i'
#define RULE_OP_MANGLE_OVERSTRIKE     'o'
#define RULE_OP_MANGLE_TRUNCATE_AT    '\''
#define RULE_OP_MANGLE_REPLACE        's'
#define RULE_OP_MANGLE_PURGECHAR      '@'
#define RULE_OP_MANGLE_TOGGLECASE_REC 'a'
#define RULE_OP_MANGLE_DUPECHAR_FIRST 'z'
#define RULE_OP_MANGLE_DUPECHAR_LAST  'Z'
#define RULE_OP_MANGLE_DUPECHAR_ALL   'q'

#define RULE_OP_REJECT_LESS           '<'
#define RULE_OP_REJECT_GREATER        '>'
#define RULE_OP_REJECT_CONTAIN        '!'
#define RULE_OP_REJECT_NOT_CONTAIN    '/'
#define RULE_OP_REJECT_EQUAL_FIRST    '('
#define RULE_OP_REJECT_EQUAL_LAST     ')'
#define RULE_OP_REJECT_EQUAL_AT       '='
#define RULE_OP_REJECT_CONTAINS       '%'

/* hashcat only */
#define RULE_OP_MANGLE_SWITCH_FIRST   'k'
#define RULE_OP_MANGLE_SWITCH_LAST    'K'
#define RULE_OP_MANGLE_SWITCH_AT      '*'
#define RULE_OP_MANGLE_CHR_SHIFTL     'L'
#define RULE_OP_MANGLE_CHR_SHIFTR     'R'
#define RULE_OP_MANGLE_CHR_INCR       '+'
#define RULE_OP_MANGLE_CHR_DECR       '-'
#define RULE_OP_MANGLE_REPLACE_NP1    '.'
#define RULE_OP_MANGLE_REPLACE_NM1    ','
#6
lol source code :p
#7
Code:
#define RULE_OP_MANGLE_DUPEWORD_TIMES 'p'
This is different than john.
Thanks.