Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20080306145052.GA6083@openwall.com>
Date: Thu, 6 Mar 2008 17:50:52 +0300
From: Solar Designer <solar@...nwall.com>
To: john-users@...ts.openwall.com
Subject: Re: Password to guess with a lot of information

I suggested:

> > 2. Define and use "incremental" for the first 7 characters (does not
> > require a recompile, nor a custom .chr file).  Define and use an
> > external filter() that will modify "word" by adding two digits to it.
> > You'd have to do up to 100 invocations of JtR with different filter()
> > functions - separately for each two-digit combination.

On Thu, Mar 06, 2008 at 09:05:58AM +0100, L B wrote:
> I haven't tried your 1), but I tried 2) with a simple scenario of adding 00
> at the end of my 7 characters long word, with filter_alnum as an example :
> 
> [Incremental:mypass]
> File = $JOHN/alpha.chr
> MinLen = 7
> MaxLen = 7
> CharCount = 26

This looks fine.  Didn't you previously mention that your first 7
characters are alpha-numeric, though?

> [List.External:Filter_mypass]
> void generate()
> {
>         word[7] = '0';
>         word[8] = '0';
>         word[9] = 0;
> }

This is wrong.  generate() is only called when the external mode is used
on its own, not along with another mode.

> void filter()
> {
>         int i, c;
> 
>         i = 0;
>         while (c = word[i++])
>         if (c < 'a' || c > 'z') {
>                 word = 0; return;
>         }
> }

This is also wrong, in two ways.  When the external mode is used on its
own, filter() is called after generate() - which, in your case, would
cause your desired alpha-numeric passwords to be filtered out, because
the above filter() permits pure-alphabetic passwords only.  And when you
use an external mode along with "incremental" mode as I have suggested,
you do not need to really filter anything out - because the
"incremental" mode will only generate the desired strings for the first
7 character positions.

> But it doesn't work. If you have any pointers, they are welcome !

Indeed.  Here's an example:

[List.External:7plus00]
void filter()
{
	word[7] = '0';
	word[8] = '0';
	word[9] = 0;
}

In this special case, it can be optimized to:

[List.External:7plus00-opt]
void init()
{
	word[9] = 0;
}

void filter()
{
	word[8] = word[7] = '0';
}

Alexander

-- 
To unsubscribe, e-mail john-users-unsubscribe@...ts.openwall.com and reply
to the automated confirmation request that will be sent to you.

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.