This is an updated version of Ryan Lim's patch for john the ripper to
support MPI, in addition to a large number of third party patches to
support additional ciphers and such.
MPI allows you to use multiple processors on a single system, or a cluster
of systems for cracking passwords using john the ripper. Incredibly
usefull in these days of multi core processors.
A compatible MPI implementation is required.
This has currently been tested on Linux/AMD64, MacOSX/Intel and Linux/x86
using mpich2-1.0.2
Developer
John Anderson
Mailing List
There is a mailing list for John-MPI available, you can subscribe to it by
writing a mail containing the word "subscribe" in the body of the mail,
and sending it to john-mpi-subscribe at bindshell.net.
Support
For support queries relating to the MPI version of John, please use the
mailing list. Do not contact the original authors of John The Ripper or
use the public mailing lists on openwall.com for issues which are specific
to the MPI patches.
Benchmarks
Quad Core Intel Core2 Quad Q6600 @2304MHz
John MPI - Version 1.7.2-bp17-mpi7, 4 threads
Benchmarking: Traditional DES [128/128 BS SSE2-16]... DONE
Many salts: 8749K c/s real, 8771K c/s virtual
Only one salt: 7474K c/s real, 7496K c/s virtual
Dual Core Intel Core2 Duo, 2.16GHz, MacBook Pro MacOSX
John MPI - Version 1.7.2-bp17-mpi4, 2 threads
Benchmarking: Traditional DES [128/128 BS SSE2]... DONE
Many salts: 3433087.00 c/s real, 3636739.00 c/s virtual
Only one salt: 2852658.00 c/s real, 3021898.00 c/s virtual
Dual AMD Opteron 250 (2.2ghz), Gentoo Linux 64bit
John MPI - Version 1.7.2-bp17-mpi, 2 threads
Benchmarking: Traditional DES [128/128 BS SSE2-16]... DONE
Many salts: 2132632.00 c/s real, 2139034.00 c/s virtual
Only one salt: 1951692.00 c/s real, 1957552.00 c/s virtual
Please feel free to submit more benchmarks to the mailing list. With
benchmark information, please include full processor information including
type, vendor, clock rate and stepping etc (you can get this from
/proc/cpuinfo on linux systems), as well as the make target used while
compiling. Also detail any changes made to the default Makefile (such as
modified CFLAGS, or non default compiler). Finally detail the type and
version of compiler used (gcc -v shows this information for gcc).
Changes
* Support for more ciphers (NTLM, MS domain logon cache, Oracle, MySQL)
* 1.7.2 now includes a ciphers.h file where you can enable/disable
ciphers at compile time
* 1.7.2-bp17-mpi2 - no longer requires a copy of the .chr files for each
node
* 1.7.2-bp17-mpi2 - NTLM support is now fixed
* 1.7.2-bp17-mpi2 - now has SSE2 or MMX versions of NTLM, which are much
faster than the generic ones
* 1.7.2-bp17-mpi3 - no longer requires you to symlink all the chr files
* 1.7.2-bp17-mpi3 - You can now kill -HUP any of the john processes to
see their current status
* 1.7.2-bp17-mpi4 - altivec.h was not getting included on PPC linux
(thanks to RB for noticing this)
* 1.7.2-bp17-mpi4 - Fixed to work on OSX/Intel - use the macosx-x86-sse2
target
* 1.7.2-bp17-mpi4 - Status line now shows the mpi_id
* 1.7.2-bp17-mpi5 - The -show function now works again
* 1.7.2-bp17-mpi6 - Memory leak and potential buffer overflow (not
exploitable) fixed by Carsten G
* 1.7.2-bp17-mpi6 - Support for SIGUSR1 as well as SIGHUP, required for
use with OpenMPI
* 1.7.2-bp17-mpi7 - Support for IPB2 (Invision Power Board) cipher added
(requested)
* 1.7.2-bp17-mpi7 - Cygwin and benchmark fixes from Elli0t merged in
* 1.7.2-bp17-mpi8 - Build fixes for make generic, replaced README file,
if you already have mpi7 working there's no point updating to mpi8.
* 1.7.2-mpi8 - Cleaned up version contributed by RB, mpi patches only,
no extra ciphers... Other cipher patches should apply relatively
cleanly.
* 1.7.3.1-mpi8 - MPI-only patch updated to 1.7.3.1
Known Issues
* If you use Gentoo, make sure you compile mpich2 _WITHOUT_ the
"threads" use flag, otherwise john-mpi will fail to compile with
undefined references to MPIU_Free and MPIU_Malloc
* If you use OpenMPI instead of mpich2, the SIGHUP signal doesn't get
passed to john. It is necessary to send a SIGUSR1 instead.
* Currently the 1.7.3.x versions don't include the bp17 extra ciphers
patch, third party patches should apply reasonably cleanly, please
report any problems and we will work on making the patches mpi
compatible and/or releasing a jumbo patch with mpi and extra ciphers
built in..
Download
If you are unsure how to apply patches, please download the pre patched
versions.
Latest Version
* john-1.7.3.1-mpi8-small.patch.gz Patch for John 1.7.3.1 (md5sum:
c73e7cbf79b420ac4bb47a676d493a29)
* john-1.7.3.1-mpi8.tar.gz Pre patched version (md5sum:
c686d042846f4e5a275b57b4382392d1)
* john-1.7.3.1-all-2-mpi8.tar.gz Pre patched MPI John with additional
ciphers patched in too (md5sum: 82f513ac756f52ab4ae4b75971f92542)
Download patches
* john-1.7.3.1-mpi8-small.patch.gz Patch for John 1.7.3.1 (md5sum:
c73e7cbf79b420ac4bb47a676d493a29)
* john-1.7.2-mpi8.diff MPI only patch for 1.7.2, no extra cipher support
contributed by RB. (md5sum: 566006b20a03841cba524a12ee1fb784)