Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BLU0-SMTP4195E6011188464F65FCC71FDE70@phx.gbl>
Date: Wed, 27 Jun 2012 14:55:34 +0200
From: Frank Dittrich <frank_dittrich@...mail.com>
To: john-dev@...ts.openwall.com
Subject: Re: Re: Aleksey's status report #10

Hi Aleksey,

On 06/26/2012 11:47 PM, Aleksey Cherepanov wrote:
> On Wed, Jun 27, 2012 at 01:40:23AM +0400, Aleksey Cherepanov wrote:
>> This status report has attached code not for users so it is on
>> john-dev.
> 
> Sorry! I forgot the code...
> 
> Frank, please look onto this.

I'll just copy some source code snippets into my reply and comment on
them, I think you'll recognize those...


May be in the source code comments you should replace "keys" with
"options" or "parameters".

In the first comment, you should also list (and adjust during future
development) the preconditions for using the script:
-git
-ssh
-...


my $store = '/home/a/desktop/wrapper/test-store1';

IMHO you should avoid absolute path names, and use path names relative
to the current directory whenever possible.

# TODO: does john accept only = and : as separater for keys?

john accepts : and = as separator between (possibly abbreviated) option
name and value.

--markov can have several colons, e.g.

--markov=200:0:0:12
--markov=section:0:0:0:10
--markov:section:200
and so on.
The first : (or =) separated the option name from the parameters passed
into the markov mode function.

We should prefer = (the separator used in the usage output) if possible.

Some options can be used with or without specifying values, separated
from the option name by '=' or ':'.

You can see this in john's usage output.
Some options are not mentioned in the usage output.
You can find them using

./john --list=hidden-options, provided that --list=WHAT is mentioned in
the usage output.

Some options depend on version and/or build target (e.g., additional
options for CUDA / OpenCL)


# TODO: respect type of key! Do not copy file named 'all'
        # from original dir if we just call --incremental=all .

Which options use file names (or part of file names) can be seen in the
bash completion script, run/john.bash_completion

--incremental (without =...), or the sections that are defined in what
will be the next jumbo can/should IMO be assumed to exist unmodified, so
that we should assume that all the necessary files are rolled out.

all      all15    all6     all7     all8     alnum    alpha    digits
digits8  lanman

Unless a separate config file is used: --config=my.conf

For other section names, you might even need to implement new
functionality to john, like listing the contents of a section (with
include statements for sections or file names being resolved).
Or at least functionality to get the value of a certain variable from a
config section, so that you can parse

File = $JOHN/my.chr

and know which file is needed for that attack.

To send the attack description to the server, you could also require
attacks to specify --config=..., so that you can grab the whole config
file (FIXME: What if that file uses includes) instead of reading/parsing
the contents of the section(s) required and sending that contents.

For naming attacks, files, and so on:
You could generate a checksum (sha1sum ...) on the contents, and use
(part of) that as the name for storage on the server.


I'll have to stop for now.

Frank


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.