Skip to content

Commit 4abfd6b

Browse files
jfougmagnumripper
authored andcommitted
TS 1.12
1 parent 60ed5cd commit 4abfd6b

22 files changed

+22685
-28
lines changed

DES_inc_all_qwk_tst.in

+1,503
Large diffs are not rendered by default.

DES_inc_all_tst.in

+1,503
Large diffs are not rendered by default.

DES_inc_alnum_qwk_tst.in

+1,503
Large diffs are not rendered by default.

DES_inc_alnum_tst.in

+1,503
Large diffs are not rendered by default.

JtrTestSuite.Manifest

+26-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#-------------------------------------------------------------------
2-
# John, testing suite, v1.10. Jim Fougeron.
2+
# John, testing suite, v1.12. Jim Fougeron.
33
#
44
# No copyright is claimed, and the software is hereby
55
# placed in the public domain. In case this attempt to disclaim
66
# copyright and place the software in the public domain is deemed
7-
# null and void, then the software is Copyright � 2011 Jim Fougeron
7+
# null and void, then the software is Copyright � 2011-2012 Jim Fougeron
88
# and it is hereby released to the general public under the following
99
# terms:
1010
#
@@ -76,5 +76,29 @@
7676
# Added dynamic 30,31,32,33,34. Added NT-raw, NT-raw-utf8. These files were added
7777
# to NT, NTv2 and dynamic_33.
7878
# Different message if there are zero tests.
79+
#
80+
# v1.12 Added some new hashes, and build types (ssh, inc, cuda, opencl).
81+
# There was much change to the dat file. Many lines added.
82+
# Added 3 incrementatal test types, dyna_0, NT and DES. There are numerous
83+
# test items added for each of these types. There are quick ones, and slower
84+
# tests. NOTE, these 'may' cause a lockup like situation, since there is no
85+
# dictionary, that will 'finish'. We may want to look into ways to fix this.
86+
# In bleeding edge john, there is the --max-run-time=X switch.
87+
# New 'types' added, are (cuda) (opencl) (gpu) which is either cuda or opencl,
88+
# and (inc). Now, if a dictionary name starts with INCREMENT_ then no dictionary
89+
# will be used, and an incremental john run will be done, using the last part of
90+
# the dictionary field (minus the INCREMENT_) for this line in the jtrts.dat file.
91+
# A large ssh input file was created by putting 1500 files into an input file.
92+
# These ssh input were built by Dhiru.
93+
# New command line args to jtrts.pl added:
94+
# -passthru <s> Will allow this string to be passed to john as a command line
95+
# argument. Multiple -passthru <s> can be used.
96+
# -stoponerror Will cause jtrts to stop on any error, and leaves the .pot file
97+
# Fixed issues where / char or ' ' (space) char could be used to separate the
98+
# fmt types in john's screen output. Now, either form will work.
99+
# Added gost format
100+
# Added SAPG format (still has problems). I will work this out with Magnum.
101+
# PO now required a forced test (gost 'grabbed' it ;) )
102+
# Raw SHA1 required a forced test.
79103
#--------------------------------------------------------------------
80104

NT_inc_all_qwk_tst.in

+501
Large diffs are not rendered by default.

NT_inc_all_tst.in

+1,501
Large diffs are not rendered by default.

NT_inc_alnum_qwk_tst.in

+501
Large diffs are not rendered by default.

NT_inc_alnum_tst.in

+1,501
Large diffs are not rendered by default.

dynamic_0_inc_all_qwk_tst.in

+501
Large diffs are not rendered by default.

dynamic_0_inc_all_tst.in

+1,501
Large diffs are not rendered by default.

dynamic_0_inc_alnum_qwk_tst.in

+501
Large diffs are not rendered by default.

dynamic_0_inc_alnum_tst.in

+1,501
Large diffs are not rendered by default.

gost_raw_tst.in

+1,501
Large diffs are not rendered by default.

gost_tst.in

+1,501
Large diffs are not rendered by default.

jtrts.dat

+54-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
# Version 1.11. Several MSSQL05 hashes were being called with forced mssql
44
# Added dynamic 30,31,32,33,34, and several 'NT-raw' formats
55
# for dynamic_33 AND NT/NTv2
6+
# Version 1.12. Added many 'inc' types. Added ssh, added opencl and cuda
7+
# Added GOST
8+
# force required for PO, since GOST 'stole' a non force of PO
69
############################################################################
710
#
811
# core formats: des/bsdi/md5/bf/afs/lm/trip/dummy, no tests (yet) for afs, trip, dummy. Need more for LM.
@@ -79,7 +82,7 @@
7982
#
8083
(base),(X),(jumbo),10000,mediawiki,pw,mediawiki_tst.in,mediawiki,N,X,(1500),(1500)
8184
(base),(X),(jumbo),10000,pixMD5,pw,pixMD5_tst.in,pix-md5,N,X,(1500),(1500)
82-
(base),(X),(jumbo),10000,PO,pw,po_tst.in,po,N,X,(1500),(1500)
85+
(base),(X),(jumbo),10000,PO,pw,po_tst.in,po,Y,X,(1500),(1500)
8386
(base),(X),(jumbo),10000,PHPS,pw,phps_tst.in,phps,N,X,(1500),(1500)
8487
(base),(X),(jumbo),10000,raw-md5,pw,rawmd5_tst.in,raw-md5,Y,X,(1500),(1500)
8588
(base),(X),(jumbo),10000,raw-md5thick,pw,rawmd5_tst.in,raw-md5thick,Y,X,(1500),(1500)
@@ -88,7 +91,7 @@
8891
(base),(X),(jumbo),10000,raw-md5u,pw,rawmd5u_tst.in,raw-md5u,Y,X,(1500),(1500)
8992
(base),(X),(jumbo),10000,raw-md5u-raw,pw,rawmd5u_raw_tst.in,raw-md5u,Y,X,(1500),(1500)
9093
(utf8)(utf-8)(enc),(X),(jumbo)&(encode_valid),10000,raw-md5u-utf8,pw-utf8,rawmd5u_tst_utf8.in,raw-md5u,Y,-enc:utf-8,(1500),(1500)
91-
(base),(X),(jumbo),10000,raw-sha1,pw,rawsha1_tst.in,raw-sha1,N,X,(1500),(1500)
94+
(base),(X),(jumbo),10000,raw-sha1,pw,rawsha1_tst.in,raw-sha1,Y,X,(1500),(1500)
9295
(sha1-gens)(base),(X),(jumbo),10000,sha1-gen,pw,sha1s_tst.in,sha1-gen,Y,X,(1500),(1500)
9396
(sha1-genp)(base),(X),(jumbo),10000,raw-sha1,pw,sha1p_tst.in,sha1-gen,Y,X,(1500),(1500)
9497
#
@@ -280,4 +283,52 @@
280283
(cp1252)(enc),(X),(jumbo)&(encode_valid),10000,mssql-cp1252,pw-gen-enc,mssql_tst_cp1252.in,mssql,Y,-enc=cp1252,(1500),(1500)
281284
(cp1252)(enc),(X),(jumbo)&(encode_valid),10000,MSSql05-cp1252,pw-gen-enc,MSSql05_tst_cp1252.in,mssql05,Y,-enc=cp1252,(1500),(1500)
282285
(cp1252)(enc),(X),(jumbo)&(encode_valid),10000,oracle-cp1252,pw-gen-enc,oracle_tst_cp1252.in,oracle,Y,-enc=cp1252,(1500),(1500)
283-
###############################################
286+
#
287+
############################################### NEW items as of v1.12
288+
#
289+
(opencl)(gpu),(X),(jumbo)&(opencl),200,cryptmd5-opencl,pw,md5_1_tst.in,cryptmd5-opencl,Y,X,(1500),(1500)
290+
(opencl)(gpu),(X),(jumbo)&(opencl),150,phpass-opencl,pw,phpass_tst.in,phpass-opencl,Y,X,(1470),(1470)
291+
(opencl)(gpu),(X),(jumbo)&(opencl),10000,raw-md5-opencl,pw,dynamic_0_raw_tst.in,raw-md5-opencl,Y,X,(1500),(1500)
292+
(opencl)(gpu),(X),(jumbo)&(opencl),10000,raw-sha1-opencl,pw,rawsha1_tst.in,raw-sha1-opencl,Y,X,(1500),(1500)
293+
(opencl)(gpu),(X),(jumbo)&(opencl),10000,nt-opencl,pw,NT_tst.in,nt-opencl,Y,X,(1478),(1478)
294+
(opencl)(gpu),(X),(jumbo)&(opencl),10000,ssha-opencl,pw,nsldaps_tst.in,ssha-opencl,Y,X,(1500),(1500)
295+
(opencl)(gpu),(X),(jumbo)&(opencl),10000,mysql-sha1-opencl,pw,mysqlSHA1_tst.in,mysql-sha1-opencl,Y,X,(1500),(1500)
296+
(opencl)(gpu),(X),(jumbo)&(opencl),50,mscash2-opencl,pw,MSCash2_tst.in,mscash2-opencl,Y,X,(1500),(1500)
297+
(cuda)(gpu),(X),(jumbo)&(cuda),200,cryptmd5-cuda,pw,md5_1_tst.in,cryptmd5-cuda,Y,X,(1500),(1500)
298+
(cuda)(gpu),(X),(jumbo)&(cuda),150,phpass-cuda,pw,phpass_tst.in,phpass-cuda,Y,X,(1470),(1470)
299+
(cuda)(gpu),(X),(jumbo)&(cuda),10000,mscash-cuda,pw,mscash_tst.in,mscash-cuda,Y,X,(1430),(1430)
300+
(cuda)(gpu),(X),(jumbo)&(cuda),50,mscash2-cuda,pw,MSCash2_tst.in,mscash2-cuda,Y,X,(1479),(1479)
301+
# This is a very slow, and VERY large input file hash.
302+
(ssh),(full),(jumbo),1600,ssh,pass,ssh_1500_tst.in,ssh,N,X,(1500),(1500)
303+
#
304+
# these use -inc:all and -inc:alnum and NOT a password dict.
305+
#
306+
# These are 'quick' to run, so will be run under 'normal' testing. WARNING, since these do NOT use
307+
# a dictionary, then they CAN 'lock up' the test suite run, IF the increment files are changed. We may want
308+
# to change these from a base run, at a later time. Also, we may want to use --max-run-time=X to cause
309+
# a lockup to not happen. However, this switch is ONLY in the bleeding edge john jumbo right now.
310+
#
311+
(inc)(base),(X),(jumbo),10000,dyn_0-inc_all_qwk,INCREMENT_all,dynamic_0_inc_all_qwk_tst.in,dynamic_0,N,X,(500),(500)
312+
(inc)(base),(X),(jumbo),10000,dyn_0-inc_alnum_qwk,INCREMENT_alnum,dynamic_0_inc_alnum_qwk_tst.in,dynamic_0,N,X,(500),(500)
313+
(inc)(base),(X),(jumbo),10000,NT-inc_all_qwk,INCREMENT_all,NT_inc_all_qwk_tst.in,nt,N,X,(500),(500)
314+
(inc)(base),(X),(jumbo),10000,NT-inc_alnum_qwk,INCREMENT_alnum,NT_inc_alnum_qwk_tst.in,nt,N,X,(500),(500)
315+
(inc)(base),(X),(core),10000,DES-inc_all_qwk,INCREMENT_all,DES_inc_all_qwk_tst.in,des,N,X,(1500),(1500)
316+
(inc)(base),(X),(core),10000,DES-inc_alnum_qwk,INCREMENT_alnum,DES_inc_alnum_qwk_tst.in,des,N,X,(1500),(1500)
317+
#
318+
# these are SLOW. Will only be run if inc is the 'type' listed.
319+
(inc),(inc),(jumbo),10000,dyn_0-inc_all,INCREMENT_all,dynamic_0_inc_all_tst.in,dynamic_0,N,X,(1500),(1500)
320+
(inc),(inc),(jumbo),10000,dyn_0-inc_alnum,INCREMENT_alnum,dynamic_0_inc_alnum_tst.in,dynamic_0,N,X,(1500),(1500)
321+
(inc),(inc),(jumbo),10000,NT-inc_all,INCREMENT_all,NT_inc_all_tst.in,nt,N,X,(1500),(1500)
322+
(inc),(inc),(jumbo),10000,NT-inc_alnum,INCREMENT_alnum,NT_inc_alnum_tst.in,nt,N,X,(1500),(1500)
323+
(inc),(inc),(core),10000,DES-inc_all,INCREMENT_all,DES_inc_all_tst.in,des,N,X,(1500),(1500)
324+
(inc),(inc),(core),10000,DES-inc_alnum,INCREMENT_alnum,DES_inc_alnum_tst.in,des,N,X,(1500),(1500)
325+
(inc),(inc),(core),10000,DES-inc_all,INCREMENT_all,DES_inc_all_tst.in,des,N,X,(1500),(1500)
326+
(inc),(inc),(core),10000,DES-inc_alnum,INCREMENT_alnum,DES_inc_alnum_tst.in,des,N,X,(1500),(1500)
327+
#
328+
#types,required_types,sys_caps,dict_cnt,scr_output,dict,input,-form=string,Y/N_FmtStr_req,addtionalParams,correct_Cracks_num(s),.pot_crack_num(s)
329+
# sapG (== sapF) is supposed to run in ascii or UTF-8, never 8-bit CP
330+
(sapf)(utf8)(utf-8)(enc),(X),(jumbo)&(encode_valid),10000,sapG-utf8,pw-utf8,sapf_tst.in,sapg,N,-enc=utf8,(1500),(1500)
331+
# sapB is supposed to run ascii or 8-bit CP only, never UTF-8.
332+
#
333+
(base),(X),(jumbo),10000,gost,pw,gost_tst.in,gost,N,X,(1500),(1500)
334+
(base),(X),(jumbo),10000,gost,pw,gost_raw_tst.in,gost,Y,X,(1500),(1500)

jtrts.pl

+51-19
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
use Getopt::Long;
44
use jtrts_inc;
55

6-
my $VERSION = "1.11";
7-
6+
my $VERSION = "1.12";
7+
my $RELEASE_DATE = "May 24, 2012";
88
# how to do alpha character left, so next 'alpha', or beta release will be easy.
99
#use utf8;
1010
#my $VERSION = "1.10-\x{3B1}2"; # alpha-2
@@ -25,12 +25,12 @@
2525
my @nontypes=();
2626
my @caps=();
2727
my @encs=();
28+
my @passthru=();
2829
my @johnUsageScreen=();
2930
my @validFormats=();
3031
my @tstdata;
31-
my $showtypes=0, my $basepath=""; my $prelims=1;
32+
my $showtypes=0, my $basepath=""; my $prelims=1, my $stop_on_error=0;
3233
my $last_line_len=0;
33-
my $john_type="core"; # may be replaced with jumbo. This will end up BEING a typex
3434
my $error_cnt = 0, my $error_cnt_pot = 0; my $done_cnt = 0;
3535
my @startingTime;
3636

@@ -90,6 +90,8 @@ sub parseArgs {
9090
'showtypes' => \$showtypes,
9191
'basepath=s' => \$basepath,
9292
'prelims!' => \$prelims,
93+
'passthru=s' => \@passthru,
94+
'stoponerror!' => \$stop_on_error,
9395
);
9496
if ($help) { usage(); }
9597
if ($basepath ne "") {
@@ -131,6 +133,7 @@ sub johnTest0_one {
131133
if (length($_[0]) >= 2) { $_[0] = "-enc:$_[0]"; }
132134
ScreenOutSemi("testing: john -test=0 $_[0]\n");
133135
my $sCmd = "$JOHN_EXE -test=0 $_[0]";
136+
foreach my $s (@passthru) { $sCmd = $sCmd . " " . $s . " "; }
134137
my $sCmdOut = `$sCmd`;
135138
my @CmdLines = split (/\n/, $sCmdOut);
136139
foreach my $line(split (/\n/, $sCmdOut)) {
@@ -204,7 +207,7 @@ sub setup {
204207
close(FILE);
205208

206209
ScreenOutAlways("-------------------------------------------------------------------------------\n");
207-
ScreenOutAlways("- JtR-TestSuite (jtrts). Version $VERSION, Dec 18, 2011. By, Jim Fougeron\n");
210+
ScreenOutAlways("- JtR-TestSuite (jtrts). Version $VERSION, $RELEASE_DATE. By, Jim Fougeron & others\n");
208211
ScreenOutAlways("- Testing: $johnUsageScreen[0]"); # note the line ends in a \n, so do not add one.
209212
ScreenOutAlways("--------------------------------------------------------------------------------\n");
210213
ScreenOut("\n");
@@ -311,6 +314,8 @@ sub loadAllValidFormatTypeStrings {
311314
$line = substr($line, 2, length($line)-2);
312315
chomp($line);
313316
$line =~ s/\r$//; # strip CR for non-Windows
317+
$line = $line . '/';
318+
$line =~ s/ /\//g;
314319
$fmt_str = $fmt_str . $line;
315320
}
316321
} else {
@@ -320,9 +325,14 @@ sub loadAllValidFormatTypeStrings {
320325
}
321326
chomp($line);
322327
$line =~ s/\r$//; # strip CR for non-Windows
328+
$line = $line . '/';
329+
$line =~ s/ /\//g;
323330
$fmt_str = $fmt_str . $line;
324331
}
325332
}
333+
# strip off the 'final' / char
334+
$fmt_str = substr($fmt_str, 0, -1);
335+
326336
# Ok, now if we have 'dynamic's, LOAD them
327337
if (grepUsage("--subformat=LIST")) {
328338
system ("$JOHN_EXE --subformat=LIST >JohnDynaUsage.Scr 2>&1");
@@ -337,8 +347,12 @@ sub loadAllValidFormatTypeStrings {
337347
}
338348
}
339349
}
340-
350+
#$fmt_str = $fmt_str . "/inc";
341351
@validFormats = split(/\//, $fmt_str);
352+
if (index($fmt_str, "-cuda") != -1) { push(@caps, "cuda"); }
353+
if (index($fmt_str, "-opencl") != -1) { push(@caps, "opencl"); }
354+
# push (inc), since ALL john versions allow the inc.
355+
push(@caps, "inc");
342356
if ($verbosity > 3) {
343357
my $cnt = @validFormats;
344358
ScreenOutVV("There are $cnt formats this john build can handle are:\n");
@@ -454,8 +468,10 @@ sub filterPatterns {
454468

455469
# OK, make sure the dictionary file 'exists'
456470
unless (-e "${ar[5]}.dic") {
457-
ScreenOutVV("Line [$line] filtered out, because dictionary ${ar[5]}.dic not found\n");
458-
next LINE;
471+
if (substr($ar[5],0,10) ne "INCREMENT_") {
472+
ScreenOutVV("Line [$line] filtered out, because dictionary ${ar[5]}.dic not found\n");
473+
next LINE;
474+
}
459475
}
460476

461477
# we are going to process this item. Add it to our filtered array.
@@ -481,6 +497,7 @@ sub filterPatterns {
481497
sub process {
482498
my $pot = "./tst.pot";
483499
my $cmd_head = "$JOHN_EXE -ses=./tst";
500+
foreach my $s (@passthru) { $cmd_head = $cmd_head . " " . $s . " "; }
484501
if (stringInArray("nolog_valid", @caps)) { $cmd_head = "$cmd_head -nolog"; }
485502
#if (stringInArray("config_valid", @caps)) { $cmd_head = "$cmd_head -config=./john.conf"; }
486503
if (stringInArray("local_pot_valid", @caps)) { $cmd_head = "$cmd_head -pot=./tst.pot"; }
@@ -496,25 +513,29 @@ sub process {
496513

497514
LINE: foreach my $line(@tstdata) {
498515
my @ar = split(',', $line);
499-
$dict_name = "$ar[5].dic";
516+
if (substr($ar[5],0,10) eq "INCREMENT_") {
517+
$dict_name = "-inc:" . substr($ar[5],10);
518+
} else {
519+
$dict_name = "-w:$ar[5].dic";
520+
}
500521
my $cmd = "$cmd_head $ar[6]";
501522
unless (-e $ar[6]) { next LINE; }
502523
$done_cnt = $done_cnt + 1;
503524
if ($ar[3] != 10000) {
504-
open (FILE, "<".$dict_name);
525+
open (FILE, "<".substr($dict_name,3));
505526
my @lines = <FILE>;
506527
close(FILE);
507-
$dict_name = "$ar[5]-$ar[3].dic";
508-
$dict_name_ex = $dict_name;
509-
open (FILE, ">".$dict_name);
528+
$dict_name = "-w:$ar[5]-$ar[3].dic";
529+
$dict_name_ex = substr($dict_name,3);
530+
open (FILE, ">".substr($dict_name,3));
510531
my $i;
511532
for ($i = 0; $i < $ar[3]; $i += 1) {
512533
my $line = shift(@lines);
513-
print FILE $line;
534+
if (defined $line) { print FILE $line; }
514535
}
515536
close(FILE);
516537
}
517-
$cmd = "$cmd -w=$dict_name";
538+
$cmd = "$cmd $dict_name";
518539

519540
if ($ar[8] eq 'Y') { $cmd = "$cmd \'-form=$ar[7]\'"; }
520541
if ($ar[9] ne 'X') { $cmd = "$cmd $ar[9]"; }
@@ -550,6 +571,11 @@ sub process {
550571
ScreenOutAlways("$line\n");
551572
}
552573
}
574+
if ($stop_on_error) {
575+
ScreenOut("Exiting on error. The pot file $pot contains the found data\n");
576+
ScreenOut("The command used to run this test was:\n\n$cmd\n");
577+
exit(1);
578+
}
553579
} else {
554580
my $str = sprintf("form=%-28.28s guesses: %4.4s $crack_xx[3] $crack_xx[4] [PASSED]\n", $ar[4], $orig_crack_cnt);
555581
ScreenOutSemi($str);
@@ -561,20 +587,19 @@ sub process {
561587
# now do the .pot check.
562588
unlink ("pw3");
563589
if ($ar[8] eq "\'-fie=\\x1F\'") {
564-
my $cmd2 = sprintf("cut -f 2-8 -d \"%c\" < $pot | $UNIQUE pw3 > /dev/null", 31);
590+
my $cmd2 = sprintf("cut -f 2- -d\"%c\" < $pot | $UNIQUE pw3 > /dev/null", 31);
565591
system($cmd2);
566592
} else {
567-
my $cmd2 = sprintf("cut -f 2-8 -d \":\" < $pot | $UNIQUE pw3 > /dev/null");
593+
my $cmd2 = sprintf("cut -f 2- -d: < $pot | $UNIQUE pw3 > /dev/null");
568594
system($cmd2);
569595
}
570-
$cmd =~ s/$dict_name/pw3/;
596+
$cmd =~ s/$dict_name/-w:pw3/;
571597

572598
ScreenOutVV("Execute john (.pot check): $cmd\n");
573599
unlink ($pot);
574600
$cmd_data = `$cmd`;
575601
ScreenOutVV("\n\nCmd_data = \n$cmd_data\n\n");
576602

577-
unlink("pw3");
578603
@crack_xx = ();
579604
@crack_cnt = split (/\n/, $cmd_data);
580605
foreach $line (@crack_cnt) {
@@ -589,10 +614,17 @@ sub process {
589614
my $str = sprintf(".pot CHK:%-24.24s guesses: %4.4s $crack_xx[3] $crack_xx[4] : Expected count(s) $ar[11] [!!!FAILED!!!]\n", $ar[4], $crack_xx[1]);
590615
ScreenOutAlways($str);
591616
$error_cnt_pot += 1;
617+
if ($stop_on_error) {
618+
ScreenOut("Exiting on error (reporcessing original .pot file).\n The pot file $pot contains the found data\n");
619+
ScreenOut("The command used to run this test was:\n\n$cmd\n");
620+
exit(1);
621+
}
592622
} else {
593623
my $str = sprintf(".pot CHK:%-24.24s guesses: %4.4s $crack_xx[3] $crack_xx[4] [PASSED]\n", $ar[4], $crack_xx[1]);
594624
ScreenOutSemi($str);
595625
}
626+
unlink("$pot");
627+
unlink("pw3");
596628
}
597629
ScreenOutSemi("\n");
598630
if (!stringInArray("local_pot_valid", @caps)) {

jtrts_inc.pm

+8-4
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ usage: $0 [-h|-?] [-option[s]]
3232
Options can be abbreviated!
3333
3434
Options are:
35+
-basepath <s> set the basepath where john exe is located. By default
36+
this is set to $_[0]
3537
-quiet+ Makes JtRTest Suite more 'quiet' or more verbose. -q
3638
-verbose+ is a good level to run. -q -q is very quiet, does not
3739
output until run has ended, unless there are errors.
@@ -50,12 +52,14 @@ usage: $0 [-h|-?] [-option[s]]
5052
not process any formats containing this type.
5153
-showtypes Show the possible values that can be used for -typeN
5254
or -nontypeN options, and required types.
53-
-basepath <s> set the basepath where john exe is located. By default
54-
this is set to $_[0]
5555
-prelims Perform (and optionally show), the prelim testing (encoding).
5656
in 'full' mode, all encodings are tested. normally, only
5757
-test=0 and tests of any 'requested' encodings is performed.
58-
-noprelims Do not perform this prelim work. -prelim is default.
58+
-noprelims Do not perform this prelim work. -prelim is default.
59+
-passthru <s> Pass this argument straight into john. Can use more than 1.
60+
-stoponerror Causes JtRts to stop if any error is seen. The .pot file
61+
and other temp files will be left, AND the command line
62+
that was run is listed. (default is -nostoponerror).
5963
-help|? shows this help screen.
6064
UsageHelp
6165
}
@@ -165,4 +169,4 @@ sub timeToSecs {
165169
$secs += $_[7]*3600*24;
166170
return $secs;
167171
}
168-
1;
172+
1;

0 commit comments

Comments
 (0)