UNPKG

hashcat-rules-js

Version:

An implementation of the hashcat rules engine in javascript

99 lines (75 loc) 4.65 kB
# hashcat-rules-js An implementation of the hashcat rules engine in JavaScript. More information about rule-based attacks and the rules themselves can be found on the [Hashcat wiki](https://hashcat.net/wiki/doku.php?id=rule_based_attack). ## Installation ```sh npm install hashcat-rules-js ``` ### Compiles and minifies for production ```sh npm run build ``` ## Usage ```javascript const hashcatRule = require('hashcat-rules-js'); const password="hashcat"; const rule="$1"; const result= hashcatRule.applyRule(password,rule) ``` ### Parameters The **applyRule** function takes the following options: - **password** (required): The password to which the rules will be applied. - **rule** (required): Rules compatible with the Hashcat rules engine. ### Return Value The **applyRule** function returns a string with the applied rules. - if rule is an empty string, **false** will be returned - if rule starts with **#** (hash), **false** will be returned ### Example ```javascript const hashcatRule = require('hashcat-rules-js'); const result= hashcatRule.applyRule("hashcat","$1") console.log(result);//hashcat1 ``` ### Rules and output |Name|Function|Description|Example Rule|Input Word|Output Word| | --- | --- | --- | --- | --- | --- | |Nothing|:|Do nothing (passthrough)|:|p@ssW0rd|p@ssW0rd| |Lowercase| l|Lowercase all letters| l|p@ssW0rd |p@ssw0rd | |Uppercase|u|Uppercase all letters |u|p@ssW0rd |P@SSW0RD| |Capitalize| c|Capitalize the first letter and lower the rest |c|p@ssW0rd | P@ssw0rd| |Invert Capitalize |C|Lowercase first found character, uppercase the rest |C|p@ssW0rd |p@SSW0RD| |Toggle Case | t|Toggle the case of all characters in word. |t|p@ssW0rd |P@SSw0RD | |Toggle @ |TN|Toggle the case of characters at position N |T3|p@ssW0rd |p@sSW0rd | |Reverse| r|Reverse the entire word |r|p@ssW0rd |dr0Wss@p | |Duplicate|d|Duplicate entire word |d|p@ssW0rd |p@ssW0rdp@ssW0rd | |Duplicate N |pN|Append duplicated word N times |p2|p@ssW0rd |p@ssW0rdp@ssW0rdp@ssW0rd | |Reflect|f|Duplicate word reversed |f|p@ssW0rd |p@ssW0rddr0Wss@p | |Rotate Left |{|Rotate the word left. | {|p@ssW0rd |@ssW0rdp | |Rotate Right |}|Rotate the word right |}|p@ssW0rd |dp@ssW0r | |Append Character |$X |Append character X to end |$1 |p@ssW0rd |p@ssW0rd1 | |Prepend Character |^X |Prepend character X to front |^1 |p@ssW0rd |1p@ssW0rd | |Truncate left |[|Delete first character |[|p@ssW0rd |@ssW0rd | |Trucate right |]|Delete last character | ]|p@ssW0rd |p@assW0r | |Delete @ N |DN|Delete character at position N |D3|p@ssW0rd |p@sW0rd | |Extract range |xNM|Extract M characters, starting at position N |x04|p@ssW0rd |p@ss | |Omit range |ONM|Delete M characters, starting at position N |O12|p@ssW0rd |psW0rd | |Insert @ N |iNX|Insert character X at position N |i4! |p@ssW0rd |p@ss!W0rd | |Overwrite @ N |oNX|Overwrite character at position N with X |o3$ |p@ssW0rd |p@s$W0rd | |Truncate @ N |'N |Truncate word at position N |'6 |p@ssW0rd |p@ssW0 | |Replace |sXY|Replace all instances of X with Y |ss$ |p@ssW0rd |p@$$W0rd | |Purge |@X |Purge all instances of X |@s |p@ssW0rd |p@W0rd | |Duplicate first N|zN |Duplicate first character N times |z2|p@ssW0rd |ppp@ssW0rd | |Duplicate last N|ZN|Duplicate last character N times |Z2|p@ssW0rd |p@ssW0rddd | |Duplicate all|q|Duplicate every character |q|p@ssW0rd |pp@@ssssWW00rrdd | |Swap front|k| Swap first two characters|k|p@ssW0rd |@pssW0rd | |Swap back|K| Swap last two characters |K|p@ssW0rd |p@ssW0dr | |Swap @ N|*NM| Swap character at position N with character at position M|*34|p@ssW0rd |p@sWs0rd | |Bitwise shift left|LN|Bitwise shift left character @ N |L2|p@ssW0rd |psW0rd | |Bitwise shift right|RN|Bitwise shift right character @ N | R2|p@ssW0rd |p@9sW0rd | |ASCII increment|+N| Increment character @ N by 1 ascii value|+2|p@ssW0rd |p@tsW0rd | |ASCII decrement|-N|Decrement character @ N by 1 ascii value |-1|p@ssW0rd |p?ssW0rd | |Replace N + 1|.N| Replace character @ N with value at @ N plus 1 |.1|p@ssW0rd |psssW0rd | |Replace N - 1|,N| Replace character @ N with value at @ N minus 1 |,1|p@ssW0rd |ppssW0rd | |Duplicate block front|yN| Duplicate first N characters |y2|p@ssW0rd | p@p@ssW0rd | |Duplicate block back|YN| Duplicate last N characters |Y2|p@ssW0rd | p@ssW0rdrd | |Title|E|Lower case the whole line, then upper case the first letter and every letter after a space |E|p@ssW0rd |P@ssw0rd W0rld | |Title w/separator|e|Lower case the whole line, then upper case the first letter and every letter after a custom separator character |e-|p@ssW0rd |P@ssw0rd-W0rld |