Open magnumripper opened 5 years ago
For me "W" is fine.
Question: The S rule is news to me and looks like that this also depends on the keyboard layout. For me (on a German keyboard layout) the 4 translates to $ as well. But for instance the 2 would not translate to @ but to " character. So how exactly do you do the mapping and more important, where do you get the configuration data from? This is kind of interesting because it is something that we need to do in order to crack bootable TrueCrypt volumes and I still haven't found a good solution to it.
I think I introduced S
very early in JtR development - 1996 or so, and certainly no later than 1998. I wasn't thinking of other keyboard layouts back then.
W
is fine with me. I like that it's near S
on a QWERTY keyboard, showing relevance of these two commands. It's unfortunate that s
is taken (and had been taken in Crack before I introduced S
).
For different keyboard layouts, I think it makes sense to have both a global setting (in john.conf
or/and command-line) and a way to specify/override it in the rule (perhaps in JtR's rule flags). Due to the preprocessor, we'd be able to easily request that a rule be re-tested with multiple keyboard layouts - listing those rule flags in square brackets - to be used in default/generic rulesets intended to be applied to hashes of passwords of mixed origin (e.g., international users of an online service).
Good input. So we add a rule flag for keyboard layout. Let's say we pick -N
(for nationality). This is somewhat generic: In the future it might be used for other nationality things as well (the few grammar rules come to mind).
So here's my RFC right now (typing as I think):
0
- the hard-coded US (unless overridden by config).And we can use preprocessor for things like:
-c -N[0-4] S Q
Basic functionality added in b67af09. I'll look at implementing nationality and rule flags later so keeping issue open for that.
8bfc599: Unlike TN
, the WN
command can't be used with -c
rule rejection so could produce a humongous number of duplicates for a case insensitive format (eg. foo
, Foo
, fOo
and foO
would be seen as non-dupes by Q
command while they are dupes in the format). This had me figure out a canonical way to fix that and similar problems without using a rule flag. It's effective on most commands that use conv_* arrays.
45% boost seen using ShiftToggle rule with LM format. Note that the boost is seen in wall clock time, not necessarily in reported speed.
t
toggles case (a
<->A
) for whole word andTN
toggles positionN
only.S
toggles shift (eg.a
<->A
and4
<->$
) for whole word. It's a superset oft
. Unfortunately there is no variant similar toTN
for a single position.I experimented with this (nearly identical to the
TN
code) that implements toggle shift of character at position N asWN
, and it has proven useful.I picked
W
because it was the first unused one (in qwerty order). @solardiz @jsteube isWN
OK or would you prefer some other letter?