Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150912161023.GA16596@openwall.com>
Date: Sat, 12 Sep 2015 19:10:23 +0300
From: Aleksey Cherepanov <lyosha@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: mask + external as filter, generic combinable filters

On Sat, Sep 12, 2015 at 05:10:04PM +0200, magnum wrote:
> On 2015-09-12 15:40, Aleksey Cherepanov wrote:
> >I tried to combine a custom external filter and mask mode:
> >
> >$ ./JohnTheRipper/run/john --session=des-cp --format=descrypt --internal-encoding=cp1251 results/uncracked/* '--mask=?1?1?1' '-1=?aЯ' --external=Filter_ascii_without_ya
> >No generate() for external mode: Filter_ascii_without_ya
> >
> >I guess mask mode is treated as filter and external mode as generator
> >in such combination. What are plans about combinable filters? It looks
> >like john got a lot of candidate generators, so a generic solution
> >might be helpful, no?
> 
> Yes, currently when combining mask mode with external, external is the
> generator and mask mode is an amplifier (eg. word -> word1, word2, word3).
> 
> We should probably support the other way round too, eg. mask generator and
> external filter. But what would the option syntax be for selecting behavior?
> If nothing else, an external mode that lacks generate(), like in your case,
> should automagically select mask mode as the generator.

There are various options:

- separate options to invoke external as filter and as generator,
(BTW there may be third option: to use external as amplifier, allowing
it to generate several candidates from 1 input. Solar Designer once
told me that it should be hard to implement with additional global
variable exposed to external, but this variable affect speed for
pure filter case too... Having a separate "mode", it is possible to
avoid performance hit for regular uses.)

- use position of args:
-mask= -ext=  -- mask is generator, external is filter.
-ext= -mask=  -- external is generator, mask is filter.

I guess positional args are not welcome. So it might be done through
config file.

BTW I tried to use both mask and external as filters:
Can't use Hybrid Mask mode with External Filter

Ability to use more than 1 filter means that there may be performance
benefits from changes to order of filters.

For me, it looks like a generic pipeline with generator and chain of
filters. Of course, it is possible to construct any pipeline using
--pipe and --stdout, but it disallows --fork and may be slower than
"pipeline" right in guts of john.

Thanks!

-- 
Regards,
Aleksey Cherepanov

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.