|
Message-ID: <BLU0-SMTP25680D58B0C42C5BFB3568BFD160@phx.gbl>
Date: Thu, 10 May 2012 19:16:43 +0200
From: Frank Dittrich <frank_dittrich@...mail.com>
To: john-dev@...ts.openwall.com
Subject: Re: bash auto-completion for john
On 05/09/2012 07:18 PM, Solar Designer wrote:
> I see that john.bash_completion is in magnum-jumbo now (great!), but it
> is lacking a copyright and license statement.
The attached file now contains the following:
# bash completion for john and unique commands (John the Ripper)
#
# This software is Copyright © 2012 Frank Dittrich
# and hereby released to the general public under the following terms:
# Redistribution and use in source and binary forms, with or without
# modification, are permitted.
#
# Minor improvements suggested by Aleksey Cherepanov have been
# incorporated.
I hope this is OK. If not, please suggest what needs to be changed.
I also added some comments how to make bash completion for john and
unique work (the new make target already takes care of this):
# This file needs to be copied to /etc/bash_completion.d/john
# alternatively, a link /etc/bash_completion.d/john will work as well.
#
# To make the new completion rules work, you need to logout and login,
# or source /etc/bash_completion instead.
I also added some information how to use the same completion logic for
other binaries (if you created different binaries with various
compilation options or for different make targets):
# To use the same completion rules not just for john, but for
# differently named binaries (say john-omp, john-sse2i, john-avx,
# john-cuda, john-gpu, ...),
# just use this command to get the current expansion rule settings:
# complete -p |grep " john"
#
# If the output is
# complete -F _john john
# you can use this command to activate the same completion rules
# for john-omp:
# complete -F _john john-omp
#
# To use these completion rules permanently, you might add
# complete -F _john john-omp
# to your ~/.bashrc file.
Other changes:
1.
For --make-charset=, completion will now list directories and .chr
files, not longer all files and directories.
(I still think I should further restrict this to just directories, to
make accidentally overwriting all.chr less likely.)
2.
New expansion logic for --salts=, --users=, --groups=, --shells=
$ ./john --salts=
COUNT -COUNT
$ ./john --users=
-LOGIN,... LOGIN,... -UID,... UID,...
$ ./john --groups=
-GID,... GID,...
$ ./john --shells=
-SHELL,... SHELL,...
(Pressing the [tab] key will just list these options, the command line
will not change, because I disabled expansion for --salts=-*|--salts=C*
and so on.)
3.
New expansion logic for --test, if the john version supports an optional
parameter.
(Pressing the [tab] key will just list these options, the command line
will not change, because I disabled expansion for --test=*)
$ ./john --test
--test --test=SECONDS
(I think showing --test=SECONDS instead of --test=TIME better explains
the meaning of the optional value.)
3.
Added LIST to the list of completions for --encoding=
$ ./john --encoding=
LIST cp1252 cp737 cp866 iso-8859-7
ansi cp1253 cp850 iso-8859-1 koi8-r
cp1251 cp437 cp858 iso-8859-15 utf-8
Bash automatically sorts the possible options. To let LIST appear at the
beginning, I needed to temporarily set LC_ALL=C during the expansion of
--encoding=. Otherwise LIST would appear between koi8-r and utf-8.
If there are already other parameters on the command line before
--encoding=, I'll not include LIST as a completion option:
$ ./john --format=bf --encoding=
ansi cp1253 cp850 iso-8859-1 koi8-r
cp1251 cp437 cp858 iso-8859-15 utf-8
cp1252 cp737 cp866 iso-8859-7
Even though ./john --format=bf --encoding=LIST would "work":
$ ./john --format=bf --encoding=LIST
Supported encodings within john are:
utf-8, iso-8859-1 (or ansi), iso-8859-7, iso-8859-15, koi8-r,
cp437, cp737, cp850, cp858, cp866, cp1251, cp1252, cp1253
BTW: I noticed that completion will not work (the _john function doesn't
get called) if I use
$ LC_ALL=C ./john
In this case, just the default completion logic (listing file and
directory names) works.
But this seems to be a general issue, e.g., it also applies for
$ LC_ALL=C git
Frank
View attachment "bash_completion.john" of type "text/plain" (13586 bytes)
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.