How to build JohnTheRipper on Ubuntu Linux
Here's how to make an optimal build of latest bleeding-edge code on Ubuntu Linux. Most of it applies to other distros too (also works for Ubuntu on Windows https://msdn.microsoft.com/en-us/commandline/wsl/).
Install pre-requisites:
Required stuff
sudo apt-get install build-essential libssl-dev
Recommended (extra formats and performance)
sudo apt-get install yasm libgmp-dev libpcap-dev libnss3-dev libkrb5-dev pkg-config libbz2-dev zlib1g-dev
If you have an NVIDIA GPU (CUDA and OpenCL support)
sudo apt-get install nvidia-cuda-toolkit nvidia-opencl-dev
If you have an AMD GPU (or want to use CPU as OpenCL device)
sudo apt-get install fglrx-updates-dev
Optional MPI support
sudo apt-get install libopenmpi-dev openmpi-bin
Optional REXGEN support (additional cracking modes)
Cmake needs to be 2.8.12 or above. Ubuntu 14.04 LTS has this.
sudo apt-get install subversion cmake bison flex
mkdir ~/src && cd ~/src
svn checkout https://github.com/teeshop/rexgen.git rexgen
cd rexgen/trunk/src/
mkdir build && cd build
cmake ..
make && sudo make install
Clone latest bleeding-edge Jumbo and build:
Clone GIT repo
cd ~/src
git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john
Build
cd ~/src/john/src
# For MPI, use './configure --enable-mpi' below
./configure && make -s clean && make -sj4
Test your build:
$ ../run/john --test=0 --format=cpu
To benchmark, drop the =0 argument to –test.
To test OpenCL or CUDA formats, or both, use –format=[cuda|opencl|cuda].
To test specific format(s) just name them. Wildcards are OK, eg. –format=lotus*