Open AlekseyCherepanov opened 4 years ago
I've actually had the idea to add some option like --mask-stretch-left
for when you want that. Or perhaps better --mask-stretch=n
where n is the position in the supplied mask.
Example: --mask=?l?l?d?u?u?u --mask-stretch=3
would run ?l?l?d?u?u?u
, then ?l?l?d?d?u?u?u
, ?l?l?d?d?d?u?u?u
and so on.
I like the idea with position. I missed such option a few times and had to rewrite attack in different manner (either feeding masks in a loop, or with 2 sessions in chain: ?l?l?d?u?u?u
would be ?l?l?d
with stretching and stdout, then ?w?u?u?u
).
Even more general way might be implemented to allow specification of position and a range of repeats. It would allow stretching in hybrid masks. Also it might be interesting to allow stretching at multiple positions with different settings: ?w?d?l
, pos 2 repeat 2-3 times, pos 3 repeat 1-2 times would give: ?w?d?d?l
, ?w?d?d?d?l
, ?w?d?d?l?l
, ?w?d?d?d?l?l
.
OTOH it could be implemented as support for mask files and a tool to produce such sets (either using separate options, or even inline with syntax similar to rexgen).
That's like #3165 but with custom placeholder (e.g.
?1
) or explicit ranges.When
--mask='?l123' --min-length=4 --max-length=5
produces?l123
and?l?l123
. Replace?l
with?1
and add--1='?l'
, it produces?1123
and '?11233'. Same with explicit ranges.I bump into that quite often when I stretch masks with constant suffix and try to reduce charset in ranges based on cracks.
Examples:
john is quite fresh (has opencl; openmp is disabled):