Возьмем сборку JRT и внимательно посмотрим на содержимое. В папке
run вы можете наблюдать много ехе файлов. Вы их уже могли видеть, если читали мою статью про того какой софт выбрать для брута хешей :) Так вот, сейчас еще раз посчитаем скорость работы их.
ЗЫ кстати в папке лежит два файлика
john.conf_default
john.conf.
Тот что не default мой личный, пока что отложите его в сторону, он нам пригодится после :)
Для подсчета скорости нам понадобятся скрипты.
Первый скрипт мы назовем
script_test_speed.pl:
Код:
#(c) Maxx
#!/usr/bin/perl
use strict;
my %result;
for my $john (sort <run\\john.*.exe>)
{
next unless $john =~ /john\.(.+)\.exe/;
my $arch = $1;
print STDERR "testing $arch...\n";
print "arch: $arch\n";
system("$john -test");
}
как видите из кода это Perl ;), и скрипт будет запускать из папки
run ехе'шники джона в режиме
-test. Скрипт должен запускаться из главной папки джона, не из папки
run:
Код:
26.06.2007 22:20 <DIR> doc
26.06.2007 22:55 <DIR> run
26.06.2007 22:52 1*062 script_parse_result.pl
26.06.2007 22:55 237 script_test_speed.pl
запускать будем как
Код:
perl script_test_speed.pl > result1.txt
После запустим второй скрипт
script_parse_result.pl:
Код:
#(c) Maxx
#!/usr/bin/perl
use strict;
my @result;
undef $/;
my $text = <>;
for my $archset (split /arch:\s*/is, $text)
{
next unless $archset =~ s/^(\S+)\s//s;
my $arch = $1;
for my $algset (split /Benchmarking:\s*/is, $archset)
{
next unless $algset =~ s/^(.+?)\s*[\(\[][^\n]+\n//s;
my $alg = $1;
for my $typeset (split /\n/, $algset)
{
if ($typeset =~ m/^([^\:]+):\s*(\d+(\w)?)/)
{
my ($type, $speed) = ($1, $2);
$speed =~ s/K/000/;
$speed =~ s/M/000000/;
push @result, [$alg, $type, $speed, $arch];
}
}
}
}
my ($prevalg, $prevtype);
for (sort
{
my $r;
return $r unless ($r = @{$a}[0] cmp @{$b}[0]) == 0;
return $r unless ($r = @{$a}[1] cmp @{$b}[1]) == 0;
return $r unless ($r = @{$b}[2] <=> @{$a}[2]) == 0;
@{$a}[3] cmp @{$b}[3];
}
@result)
{
my ($alg, $type, $speed, $arch) = @{$_};
if ($prevalg ne $alg || $prevtype ne $type)
{
$prevalg = $alg;
$prevtype = $type;
print "\n";
}
printf("%s (%s): %9d (%s)\n", $alg, $type, $speed, $arch);
}
запускать будем так
Код:
perl script_parse_result.pl < result1.txt > result2.txt
Получим в итоге результаты
Код:
BSDI DES (Many salts): 29120 (athlon-4)
BSDI DES (Many salts): 29120 (athlon-xp)
BSDI DES (Many salts): 29071 (athlon-tbird)
BSDI DES (Many salts): 29071 (k6-3)
BSDI DES (Many salts): 29071 (pentium-mmx)
BSDI DES (Many salts): 29068 (athlon)
BSDI DES (Many salts): 29068 (athlon-mp)
BSDI DES (Many salts): 29068 (i386)
BSDI DES (Many salts): 29068 (k6)
BSDI DES (Many salts): 29068 (pentium4)
BSDI DES (Many salts): 29020 (k6-2)
BSDI DES (Many salts): 29020 (pentium2)
BSDI DES (Many salts): 29020 (pentium3)
BSDI DES (Many salts): 29020 (pentiumpro)
BSDI DES (Many salts): 29016 (pentium)
BSDI DES (Many salts): 28971 (i486)
BSDI DES (Many salts): 28968 (i686)
BSDI DES (Many salts): 28920 (i586)
BSDI DES (Only one salt): 28822 (pentium2)
BSDI DES (Only one salt): 28768 (athlon-4)
BSDI DES (Only one salt): 28768 (athlon-mp)
BSDI DES (Only one salt): 28768 (athlon-xp)
BSDI DES (Only one salt): 28721 (athlon)
BSDI DES (Only one salt): 28721 (i686)
BSDI DES (Only one salt): 28721 (pentium)
BSDI DES (Only one salt): 28721 (pentium-mmx)
BSDI DES (Only one salt): 28721 (pentium4)
BSDI DES (Only one salt): 28673 (pentium3)
BSDI DES (Only one salt): 28673 (pentiumpro)
BSDI DES (Only one salt): 28670 (athlon-tbird)
BSDI DES (Only one salt): 28670 (i386)
BSDI DES (Only one salt): 28670 (k6)
BSDI DES (Only one salt): 28670 (k6-3)
BSDI DES (Only one salt): 28573 (k6-2)
BSDI DES (Only one salt): 28527 (i486)
BSDI DES (Only one salt): 28524 (i586)
FreeBSD MD5 (Raw): 5841 (i386)
FreeBSD MD5 (Raw): 5841 (k6)
FreeBSD MD5 (Raw): 5841 (k6-2)
FreeBSD MD5 (Raw): 5841 (k6-3)
FreeBSD MD5 (Raw): 5840 (i486)
FreeBSD MD5 (Raw): 5825 (pentium)
FreeBSD MD5 (Raw): 5808 (i586)
FreeBSD MD5 (Raw): 5793 (i686)
FreeBSD MD5 (Raw): 5793 (pentium-mmx)
FreeBSD MD5 (Raw): 5777 (athlon-mp)
FreeBSD MD5 (Raw): 5777 (athlon-tbird)
FreeBSD MD5 (Raw): 5776 (athlon-4)
FreeBSD MD5 (Raw): 5776 (pentium2)
FreeBSD MD5 (Raw): 5776 (pentium3)
FreeBSD MD5 (Raw): 5776 (pentiumpro)
FreeBSD MD5 (Raw): 5761 (athlon-xp)
FreeBSD MD5 (Raw): 5760 (athlon)
FreeBSD MD5 (Raw): 5760 (pentium4)
Kerberos AFS DES (Long): 745608 (athlon-4)
Kerberos AFS DES (Long): 743493 (athlon-mp)
Kerberos AFS DES (Long): 743493 (athlon-xp)
Kerberos AFS DES (Long): 731307 (pentium2)
Kerberos AFS DES (Long): 731307 (pentium3)
Kerberos AFS DES (Long): 729399 (athlon-tbird)
Kerberos AFS DES (Long): 729399 (i386)
Kerberos AFS DES (Long): 729399 (pentiumpro)
Kerberos AFS DES (Long): 727501 (athlon)
Kerberos AFS DES (Long): 727375 (i686)
Kerberos AFS DES (Long): 721618 (pentium4)
Kerberos AFS DES (Long): 719637 (pentium)
Kerberos AFS DES (Long): 717667 (pentium-mmx)
Kerberos AFS DES (Long): 713880 (i586)
Kerberos AFS DES (Long): 712062 (i486)
Kerberos AFS DES (Long): 712062 (k6)
Kerberos AFS DES (Long): 710133 (k6-3)
Kerberos AFS DES (Long): 708214 (k6-2)
Kerberos AFS DES (Short): 279586 (athlon-4)
Kerberos AFS DES (Short): 279586 (athlon-mp)
Kerberos AFS DES (Short): 279586 (athlon-xp)
Kerberos AFS DES (Short): 279586 (i386)
Kerberos AFS DES (Short): 279586 (i686)
Kerberos AFS DES (Short): 279028 (pentium2)
Kerberos AFS DES (Short): 278435 (athlon)
Kerberos AFS DES (Short): 278398 (athlon-tbird)
Kerberos AFS DES (Short): 278398 (k6)
Kerberos AFS DES (Short): 277844 (pentium4)
Kerberos AFS DES (Short): 277844 (pentiumpro)
Kerberos AFS DES (Short): 277293 (k6-2)
Kerberos AFS DES (Short): 277293 (pentium3)
Kerberos AFS DES (Short): 277257 (pentium)
Kerberos AFS DES (Short): 276708 (i486)
Kerberos AFS DES (Short): 276708 (k6-3)
Kerberos AFS DES (Short): 276708 (pentium-mmx)
Kerberos AFS DES (Short): 276125 (i586)
MySQL 3.23 (Raw): 17367000 (i386)
MySQL 3.23 (Raw): 17048000 (i486)
MySQL 3.23 (Raw): 17015000 (k6)
MySQL 3.23 (Raw): 16912000 (k6-2)
MySQL 3.23 (Raw): 16877000 (k6-3)
MySQL 3.23 (Raw): 15947000 (pentium4)
MySQL 3.23 (Raw): 15170000 (athlon)
MySQL 3.23 (Raw): 15170000 (athlon-tbird)
MySQL 3.23 (Raw): 14690000 (pentiumpro)
MySQL 3.23 (Raw): 14666000 (i686)
MySQL 3.23 (Raw): 14587000 (pentium3)
MySQL 3.23 (Raw): 14313000 (athlon-mp)
MySQL 3.23 (Raw): 14290000 (athlon-4)
MySQL 3.23 (Raw): 14242000 (athlon-xp)
MySQL 3.23 (Raw): 14242000 (pentium2)
MySQL 3.23 (Raw): 13707000 (pentium)
MySQL 3.23 (Raw): 13661000 (i586)
MySQL 3.23 (Raw): 13661000 (pentium-mmx)
NT LM DES (Raw): 8356000 (pentiumpro)
NT LM DES (Raw): 8339000 (i686)
NT LM DES (Raw): 8012000 (athlon-mp)
NT LM DES (Raw): 7998000 (athlon-tbird)
NT LM DES (Raw): 7983000 (athlon-xp)
NT LM DES (Raw): 7982000 (athlon)
NT LM DES (Raw): 7982000 (athlon-4)
NT LM DES (Raw): 7895000 (pentium3)
NT LM DES (Raw): 7866000 (pentium2)
NT LM DES (Raw): 7794000 (i386)
NT LM DES (Raw): 7780000 (pentium4)
NT LM DES (Raw): 7752000 (pentium)
NT LM DES (Raw): 7683000 (i586)
NT LM DES (Raw): 7683000 (pentium-mmx)
NT LM DES (Raw): 7547000 (k6-3)
NT LM DES (Raw): 7534000 (k6)
NT LM DES (Raw): 7494000 (i486)
NT LM DES (Raw): 7443000 (k6-2)
OpenBSD Blowfish (Raw): 356 (i686)
OpenBSD Blowfish (Raw): 356 (pentium2)
OpenBSD Blowfish (Raw): 355 (athlon)
OpenBSD Blowfish (Raw): 355 (k6)
OpenBSD Blowfish (Raw): 355 (pentiumpro)
OpenBSD Blowfish (Raw): 354 (athlon-4)
OpenBSD Blowfish (Raw): 354 (athlon-mp)
OpenBSD Blowfish (Raw): 354 (athlon-tbird)
OpenBSD Blowfish (Raw): 354 (athlon-xp)
OpenBSD Blowfish (Raw): 354 (i586)
OpenBSD Blowfish (Raw): 354 (pentium)
OpenBSD Blowfish (Raw): 354 (pentium-mmx)
OpenBSD Blowfish (Raw): 354 (pentium4)
OpenBSD Blowfish (Raw): 353 (pentium3)
OpenBSD Blowfish (Raw): 352 (i386)
OpenBSD Blowfish (Raw): 352 (i486)
OpenBSD Blowfish (Raw): 352 (k6-2)
OpenBSD Blowfish (Raw): 352 (k6-3)
Raw MD5 (Raw): 3339000 (i386)
Raw MD5 (Raw): 3329000 (pentium4)
Raw MD5 (Raw): 3302000 (i486)
Raw MD5 (Raw): 3297000 (k6)
Raw MD5 (Raw): 3276000 (athlon)
Raw MD5 (Raw): 3276000 (athlon-mp)
Raw MD5 (Raw): 3276000 (athlon-tbird)
Raw MD5 (Raw): 3276000 (k6-2)
Raw MD5 (Raw): 3276000 (k6-3)
Raw MD5 (Raw): 3276000 (pentium)
Raw MD5 (Raw): 3266000 (athlon-4)
Raw MD5 (Raw): 3266000 (athlon-xp)
Raw MD5 (Raw): 3256000 (i586)
Raw MD5 (Raw): 3246000 (pentium-mmx)
Raw MD5 (Raw): 3226000 (pentium3)
Raw MD5 (Raw): 3216000 (i686)
Raw MD5 (Raw): 3216000 (pentium2)
Raw MD5 (Raw): 3206000 (pentiumpro)
SHA1 (Raw): 2849000 (pentium4)
SHA1 (Raw): 2818000 (pentium)
SHA1 (Raw): 2803000 (pentium-mmx)
SHA1 (Raw): 2796000 (i486)
SHA1 (Raw): 2795000 (i586)
SHA1 (Raw): 2788000 (i386)
SHA1 (Raw): 2788000 (k6)
SHA1 (Raw): 2788000 (k6-3)
SHA1 (Raw): 2781000 (athlon)
SHA1 (Raw): 2781000 (athlon-tbird)
SHA1 (Raw): 2781000 (k6-2)
SHA1 (Raw): 2774000 (pentium2)
SHA1 (Raw): 2767000 (athlon-mp)
SHA1 (Raw): 2766000 (pentium3)
SHA1 (Raw): 2759000 (athlon-4)
SHA1 (Raw): 2759000 (athlon-xp)
SHA1 (Raw): 2745000 (pentiumpro)
SHA1 (Raw): 2744000 (i686)
Traditional DES (Many salts): 894778 (athlon)
Traditional DES (Many salts): 894778 (athlon-4)
Traditional DES (Many salts): 894778 (athlon-mp)
Traditional DES (Many salts): 894778 (athlon-tbird)
Traditional DES (Many salts): 894778 (athlon-xp)
Traditional DES (Many salts): 894778 (k6)
Traditional DES (Many salts): 894778 (pentium)
Traditional DES (Many salts): 894778 (pentium-mmx)
Traditional DES (Many salts): 894778 (pentium2)
Traditional DES (Many salts): 894778 (pentium3)
Traditional DES (Many salts): 894778 (pentium4)
Traditional DES (Many salts): 893348 (i386)
Traditional DES (Many salts): 893253 (k6-3)
Traditional DES (Many salts): 891829 (i486)
Traditional DES (Many salts): 891734 (pentiumpro)
Traditional DES (Many salts): 890314 (i586)
Traditional DES (Many salts): 890314 (i686)
Traditional DES (Many salts): 888899 (k6-2)
Traditional DES (Only one salt): 838848 (athlon)
Traditional DES (Only one salt): 836338 (athlon-tbird)
Traditional DES (Only one salt): 836338 (k6-3)
Traditional DES (Only one salt): 836172 (athlon-4)
Traditional DES (Only one salt): 836172 (athlon-mp)
Traditional DES (Only one salt): 836172 (athlon-xp)
Traditional DES (Only one salt): 836172 (i386)
Traditional DES (Only one salt): 836172 (k6)
Traditional DES (Only one salt): 836172 (pentium4)
Traditional DES (Only one salt): 833679 (k6-2)
Traditional DES (Only one salt): 833679 (pentium)
Traditional DES (Only one salt): 833679 (pentium3)
Traditional DES (Only one salt): 833679 (pentiumpro)
Traditional DES (Only one salt): 831200 (i686)
Traditional DES (Only one salt): 831200 (pentium-mmx)
Traditional DES (Only one salt): 831036 (pentium2)
Traditional DES (Only one salt): 825962 (i486)
Traditional DES (Only one salt): 825962 (i586)
Получив эти данные, вы можете выбрать для повторного тестирования более понравившиеся для вас сборки. Вот допустим я для повторного тестирования скорости могу выбрать сборки
i386,
athlon-4,
athlon. Повторное тестирование нужно для того, чтоб учитывать погрешности связанные с тем, что вы можете во время тестирования занимать память и проц другими задачами. Грубо говоря, режим
-test не совсем точен. Самая лучшая проверка это практика. Кстати имея результаты сравнения скорости, имет смысл переименовать некоторые ехе'шники по типам хешей. Вот для примера, сборку
pentium можно переименовать в
john-sha1, и после вы не забудете, что именно эта сборка более подходит для брута
sha-1 хешей.