Rulify

  • Uses rules to process lists
  • 64-bit Windows and Linux binaries
  • Uses similar rule notation to JtR/Hashcat/Passwords Pro

Supported rules

':' // does nothing
'l' // lower case all chars
'u' // upper case all chars
'c' // lower case all chars, upper case 1st
'C' // upper case all chars, lower case 1st
't' // switch the case of each char
'T' // switch the case of each char on pos N
'r' // reverse word
'd' // append word to itself
'p' // append word to itself N times
'f' // reflect word (append reversed word)
'{' // rotate the word left. ex: hello -> elloh
'}' // rotate the word right. ex: hello -> ohell
'$' // append char X
'^' // prepend char X
'[' // delete first char of word
']' // delete last char of word
'D' // delete char of word at pos N
'x' // delete X chars of word at pos N
'i' // insert char X at pos N
'o' // overwrite with char X at pos N
'\''// cut the word at pos N
's' // replace all chars X with char Y
'@' // purge all instances of char X
'z' // prepend first char of word to itself. ex: hello -> hhello
'Z' // append last char of word to itself. ex: hello -> helloo
'q' // duplicate all chars. ex: hello -> hheelllloo
'X' // insert substring delimited by N and M into current word at position I
'4' // insert the word saved by 'M' at the end of current word
'6' // insert the word saved by 'M' at the beginning of current word
'M' // memorize the current word
//End standard rules
//Additional rules not found in ppro/hm/hashcat/jtr
'S' // replace a single instance of X with Y from the left SXY
'R' // replace a single instance of X with Y from the right RXY
'F' // Find the Z instance of X and replace with Y FZXY
'J' // Find the Z instance of X and replace with YQ JZXYQ
'h' // Toggle the case of the X letter from the left (not implemented)
'H' // Toggle the case of the X letter from the right (not implemented)
//End additional rules
//Extra memory functions
'0' // Toggle memory mode (rules will be applied to memory, make sure it is untoggled)
'v' // move a block from pos X to Y into memory
'm' // copy a block from pos X to Y into memory (can use X mode instead)
'I' // Inserts memory into line at pos X (can use X mode instead)
'O' // Overwrites line with memory at pos X
//End extra memory functions
//Extra Rules from hashcat
'k' //Swap first two characters
'K' //Swap last two characters
'*' //Swaps character X with Y
'.' //Replaces character @ N with value @ N plus 1
',' //Replaces character @ N with value @ N minus 1
'+' //Increment character @ N by 1 ascii value
'-' //Decrement character @ N by 1 ascii value
'y' //Duplicates first N characters
'Y' //Duplicates last N characters
'E' //Lower case the whole line, then upper case the first letter and every letter after a space
//End Extra Rules
//Additional gating rules (use with |)
'|' //Use this with the below numbers
'2' //Only process rule if length is less than x '|27' (equal to len 7)
'5' //Only process rule if Number of Starting Chars X is Charset Y '|53l' (First 3 chars is lowercase) [luds]
'6' //Only process rule if Number of Ending Chars X is Charset Y '|64s' (Last 4 chars is symbols) [luds]
//End gating rules
//Hashcat Rejection rules (can be used with logic IF)
'<' //Reject plains of length greater than N
'>' //Reject plains of length less than N
'!' //Reject plains which contain char X
'/' //Reject plains which do not contain char X
'(' //Start with char (X
')' //Ends with char )X
'=' //Reject plains which do not have char X at position N
'Q' //Reject plains where the memory saved matches current word
//End hashcat rejection rules
Date Build Size MD5 Checksum Changes
16.06.15rulify.zip55.59 KiB34551c9bd5eaab824c2e750e6725b9f4Show