John The Ripper MPI Patch
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
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@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.
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.
Download
Latest Version
- john-1.7.2-bp17-mpi8.tar.gz (md5sum: 6446d48c2360c2bfe5de8a719599e458)
Download pre-patched versions
- john-1.7.2-bp17-mpi8.tar.gz (md5sum: 6446d48c2360c2bfe5de8a719599e458)
- john-1.7.2-bp17-mpi7.tar.gz (md5sum: 2bce685b04da1d122c931a197110fb39)
- john-1.7.2-bp17-mpi6.tar.gz (md5sum: 25760f9fb44a67f6e4f6787128bd5faa)
- john-1.7.2-bp17-mpi5.tar.gz (md5sum: 68635f640e26d485fc33dceb7f3c282e)
- john-1.7.0.2-bp17-mpi.tar.gz (md5sum: 943a71474b84103577a18ac86a005702)
- john-1.7.2-bp17-mpi.tar.gz (md5sum: 96372438c82f104de4253a7d3d08185d)
- john-1.7.2-bp17-mpi2.tar.gz (md5sum: 11dfb6a9b25ddcb642386175ab70d0e5)
- john-1.7.2-bp17-mpi3.tar.gz (md5sum: f17176513cb804253615805fcc94735b)
- john-1.7.2-bp17-mpi4.tar.gz (md5sum: 4b14af8799bbbaee5f6bceb87ce565eb)
Download pre-compiled versions
- MacOSX X86 (md5sum: c697e68d3e88d9a0027eb2e0724687a2) Supports SSE2 as do all Intel macs, requires mpich2 installed from macports.
If you'd like any other precompiled versions please let me know at the address above.
