September 28, 2004
Modifying jtr-1.6.37-mpi2 to perform Wordlist Attacks
After the successful modification of jtr-1.6.37 to jtr-1.6.37-mpicmf2, the next step was to repeat what was performed earlier on jtr-1.6.36 (see: Making JTR-MPI perform a wordlist attack 2) to make it perform wordlist attacks.
These modifications where made to the wordlist.c file, including adding the following header information
#include "mpi.h"
#include "ryan.h"
Then the addition of the additional if around the computational work, similar to before
if ( ((line_number - 1) %mpi_p) == (mpi_id) ) {
..
}
Voila
September 27, 2004
September 18, 2004
September 16, 2004
September 14, 2004
September 08, 2004
Modifying and Testing jtr-1.6.37 for MPI 2
After my initial test failed i had to re-try to get Lim's MPI mod of john-1.6.36 to work for john-1.6.37.
Instead of trying to apply the changes made by Lim to john-1.6.37 - i tried to apply the changes between john-1.6.36 and john-1.6.37 to john-1.6.36-mpi to give me john-1.6.37-mpi (it will be from here on called john-1.6.37-mpicmf2 as it's the 2nd trial and the mod is done by me)
This was performed as follows:
1) Set up the main working directory "john-1.6.37-mpicmf2/"
2) Copy the folder "john-1.6.36/" into "john-1.6.37-mpicmf2/" to give "john-1.6.37-mpicmf2/john-1.6.36/"
3) Copy the folder "john-1.6.37/" into "john-1.6.37-mpicmf2/" to give "john-1.6.37-mpicmf2/john-1.6.37/"
4) Copy the folder "john-1.6.36-mpi" as a new folder into "john-1.6.37-mpicmf2" to give "john-1.6.37-mpicmf2/john-1.6.37-mpicmf2/"
5) Run a comparison between:
"john-1.6.37-mpicmf2/john-1.6.36/src/"
and
"john-1.6.37-mpicmf2/john-1.6.37/src/"
6) Apply the differences between these two directories to the files in:
"john-1.6.37-mpicmf2/john-1.6.37-mpicmf2/src/"
The list of files that needed modifying is as follows:
| bench.c |
| best.c |
| best.sh |
| charset.c |
| compiler.c |
| cracker.c |
| DES_bs_b.c |
| inc.c |
| loader.c |
| logger.c |
| Makefile |
| MD5_std.c |
| MD5_std.h |
| memory.c |
| memory.h |
| options.c |
| params.h |
| path.c |
| signals.c |
| single.c |
| wordlist.c |
| X86.s |
| x86-64.h *which had to be copied entirely |
To test this implementation worked correctly this new folder "john-1.6.37-mpicm2" was copied to the head node of the Obsidian cluster, compiled, then ran.
Due to only 3 of the nodes being available, the test was only able to run on 6 (3x2) processors, to ensure the correct nodes/processors were used the machinefile was modified to look like:
comp-pvfs-0-0:2
comp-pvfs-0-1:2
etc
The command to start the test was:
mpirun -np 6 -nolocal -machinefile ~/machines ./john --incremental passwordfile
To test that the processors had started up a brief examination of the john_log.* files revealed that the 6 individual running processes had started - and were cracking away.