diff --git a/docs/BUILD.md b/docs/BUILD.md index 247773399..2292cedad 100644 --- a/docs/BUILD.md +++ b/docs/BUILD.md @@ -23,140 +23,153 @@ To be able to compile the ocl binaries, it is required to have the latest stable http://support.amd.com/ -The next thing to do is download all the third party libraries listed above and put files into */opt/hashcat-deps/tmp* directory. +The next thing to do is download all the third party libraries listed above and put these files into the *hashcat-deps/tmp* directory. -The following files are needed inside the */opt/hashcat-deps/tmp* directory: +The following files are needed inside the *hashcat-deps/tmp* directory: ADL_SDK8.zip R352-developer.zip cuda_7.5.18_linux.run NVIDIA-Linux-x86_64-352.21.run gdk_linux_amd64_352_55_release.run - AMDAPPSDK-3.0-linux64.tar.bz2 + AMD-APP-SDKInstaller-v3.0.130.135-GA-linux64.tar.bz2 Now just execute the following script to complete the installation of dependencies (check for an updated version in **docs/deps.sh**): #!/bin/bash # Author: Gabriele Gristina - # Revision: 1.0 + # Revision: 1.01 ## global vars DEPS="make gcc-4.9 g++-4.9 gcc-4.9-multilib g++-4.9-multilib libc6-dev-i386 mingw-w64 build-essential unzip" - DOWNLOAD_DEPS="ADL_SDK8.zip R352-developer.zip cuda_7.5.18_linux.run NVIDIA-Linux-x86_64-352.21.run gdk_linux_amd64_352_55_release.run AMDAPPSDK-3.0-linux64.tar.bz2" + DOWNLOAD_DEPS="ADL_SDK8.zip R352-developer.zip cuda_7.5.18_linux.run NVIDIA-Linux-x86_64-352.21.run gdk_linux_amd64_352_55_release.run AMD-APP-SDKInstaller-v3.0.130.135-GA-linux64.tar.bz2" - ## root check - if [ $(id -u) -ne 0 ]; then - echo "! Must be root" - exit 1 - fi + ## enter the hashcat-deps directory + cur_directory=$(dirname ${0}) + script_directory=$(cd ${cur_directory} && pwd -P) + hashcat_deps_dir=${script_directory}/../hashcat-deps + + mkdir -p ${hashcat_deps_dir} # but it should already exist (is part of the repository) + cd ${hashcat_deps_dir} - ## cleanup 'hashcat-deps' directories - rm -rf /opt/hashcat-deps/{adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \ - mkdir -p /opt/hashcat-deps/{tmp,adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \ - cd /opt/hashcat-deps/tmp + ## cleanup the directories under the 'hashcat-deps' folder + rm -rf {adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \ + mkdir -p {tmp,adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \ + cd tmp/ if [ $? -ne 0 ]; then - echo "! Cannot create hashcat-deps directories." - exit 1 + echo "! Cannot create hashcat-deps directories." + exit 1 fi ## check dependencies i=0 for d in ${DOWNLOAD_DEPS}; do - if [ ! -f "${d}" ]; then - echo "! ${d} not found." - ((i++)) - fi + if [ ! -f "${d}" ]; then + echo "! ${d} not found." + ((i++)) + fi done if [ ${i} -gt 0 ]; then - echo "! Please download manually into the directory /opt/hashcat-deps/tmp" - exit 1 + echo "! Please manually download all the above dependencies to the hashcat-deps/tmp/ directory" + exit 1 fi ## installing needed packages for pkg in ${DEPS}; do - apt-get -y install ${pkg} - if [ $? -ne 0 ]; then - echo "! failed to install ${pkg}" - exit 1 - fi + + # check if the package is already installed + dpkg -s ${pkg} &>/dev/null + if [ $? -ne 0 ]; then + ## root check + if [ $(id -u) -ne 0 ]; then + echo "! Must be root to install the required package '${pkg}' with apt-get" + exit 1 + fi + + apt-get -y install ${pkg} + if [ $? -ne 0 ]; then + echo "! failed to install ${pkg}" + exit 1 + fi + fi done ## extract ADL SDK - unzip ADL_SDK8.zip -d /opt/hashcat-deps/adl-sdk-8 + unzip ADL_SDK8.zip -d ${hashcat_deps_dir}/adl-sdk-8 ret=$? if [[ ${ret} -ne 0 ]] && [[ ${ret} -ne 1 ]]; then - echo "! failed to extract ADL SDK" - exit 1 + echo "! failed to extract ADL SDK" + exit 1 fi - rm -rf /opt/hashcat-deps/adl-sdk && ln -s /opt/hashcat-deps/adl-sdk-8 /opt/hashcat-deps/adl-sdk - + rm -rf ${hashcat_deps_dir}/adl-sdk && ln -s ${hashcat_deps_dir}/adl-sdk-8 ${hashcat_deps_dir}/adl-sdk + if [ $? -ne 0 ]; then - echo "! failed to setup ADL SDK link" - exit 1 + echo "! failed to setup ADL SDK link" + exit 1 fi ## extract NVAPI - unzip R352-developer.zip -d /opt/hashcat-deps/ + unzip R352-developer.zip -d ${hashcat_deps_dir} ret=$? if [[ ${ret} -ne 0 ]] && [[ ${ret} -ne 1 ]]; then - echo "! failed to extract NVAPI" - exit 1 + echo "! failed to extract NVAPI" + exit 1 fi ## install CUDA SDK chmod +x cuda_7.5.18_linux.run && \ - ./cuda_7.5.18_linux.run -toolkit -silent -override --toolkitpath=/opt/hashcat-deps/cuda-7.5 + ./cuda_7.5.18_linux.run -toolkit -silent -override --toolkitpath=${hashcat_deps_dir}/cuda-7.5 if [ $? -ne 0 ]; then - echo "! failed to install CUDA SDK" - exit 1 + echo "! failed to install CUDA SDK" + exit 1 fi ## install NVIDIA Driver chmod +x NVIDIA-Linux-x86_64-352.21.run && \ ./NVIDIA-Linux-x86_64-352.21.run -x && \ - mv NVIDIA-Linux-x86_64-352.21 /opt/hashcat-deps/ && \ - cd /opt/hashcat-deps/NVIDIA-Linux-x86_64-352.21 && \ + mv NVIDIA-Linux-x86_64-352.21 ${hashcat_deps_dir}/ && \ + cd ${hashcat_deps_dir}/NVIDIA-Linux-x86_64-352.21 && \ ln -s libnvidia-ml.so.352.21 libnvidia-ml.so && \ ln -s libcuda.so.352.21 libcuda.so && \ cd 32 && \ ln -s libnvidia-ml.so.352.21 libnvidia-ml.so && \ ln -s libcuda.so.352.21 libcuda.so && \ - cd /opt/hashcat-deps/tmp + cd ${hashcat_deps_dir}/tmp if [ $? -ne 0 ]; then - echo "! failed to install NVIDIA Driver" - exit 1 + echo "! failed to install NVIDIA Driver" + exit 1 fi ## install NVIDIA GPU Deployment Kit chmod +x gdk_linux_amd64_352_55_release.run && \ - ./gdk_linux_amd64_352_55_release.run --silent --installdir=/opt/hashcat-deps/nvidia-gdk + ./gdk_linux_amd64_352_55_release.run --silent --installdir=${hashcat_deps_dir}/nvidia-gdk if [ $? -ne 0 ]; then - echo "! failed to install NVIDIA GPU Deployment Kit" - exit 1 + echo "! failed to install NVIDIA GPU Deployment Kit" + exit 1 fi ## extract AMD APP SDK - tar xjf AMDAPPSDK-3.0-linux64.tar.bz2 && \ - ./AMD-APP-SDK-v3.0.130.135-GA-linux64.sh --noexec --target /opt/hashcat-deps/amd-app-sdk-v3.0.130.135 + tar xjf AMD-APP-SDKInstaller-v3.0.130.135-GA-linux64.tar.bz2 && \ + ./AMD-APP-SDK-v3.0.130.135-GA-linux64.sh --noexec --target ${hashcat_deps_dir}/amd-app-sdk-v3.0.130.135 if [ $? -ne 0 ]; then - echo "! failed to extract AMD APP SDK" - exit 1 + echo "! failed to extract AMD APP SDK" + exit 1 fi - rm -rf /opt/hashcat-deps/amd-app-sdk && ln -s /opt/hashcat-deps/amd-app-sdk-v3.0.130.135 /opt/hashcat-deps/amd-app-sdk - + rm -rf ${hashcat_deps_dir}/amd-app-sdk && ln -s ${hashcat_deps_dir}/amd-app-sdk-v3.0.130.135 ${hashcat_deps_dir}/amd-app-sdk + if [ $? -ne 0 ]; then - echo "! failed to setup ADL SDK link" - exit 1 + echo "! failed to setup ADL SDK link" + exit 1 fi echo "> oclHashcat dependencies have been resolved." diff --git a/hashcat-deps/.lock b/hashcat-deps/.lock new file mode 100644 index 000000000..e69de29bb diff --git a/hashcat-deps/tmp/.lock b/hashcat-deps/tmp/.lock new file mode 100644 index 000000000..e69de29bb diff --git a/src/Makefile b/src/Makefile index a65cdfd68..b8888d694 100644 --- a/src/Makefile +++ b/src/Makefile @@ -24,18 +24,18 @@ endif ## Library Paths ## -OCL := /opt/hashcat-deps/amd-app-sdk +OCL := hashcat-deps/amd-app-sdk OCLLIBPATH32 := $(OCL)/lib/x86 OCLLIBPATH64 := $(OCL)/lib/x86_64 -CUDA := /opt/hashcat-deps/cuda-7.5 -CUDALIBPATH32 := /opt/hashcat-deps/NVIDIA-Linux-x86_64-352.21/32 -CUDALIBPATH64 := /opt/hashcat-deps/NVIDIA-Linux-x86_64-352.21 +CUDA := hashcat-deps/cuda-7.5 +CUDALIBPATH32 := hashcat-deps/NVIDIA-Linux-x86_64-352.21/32 +CUDALIBPATH64 := hashcat-deps/NVIDIA-Linux-x86_64-352.21 -ADL := /opt/hashcat-deps/adl-sdk +ADL := hashcat-deps/adl-sdk -GDK := /opt/hashcat-deps/nvidia-gdk -NVAPI := /opt/hashcat-deps/R352-developer +GDK := hashcat-deps/nvidia-gdk +NVAPI := hashcat-deps/R352-developer NVMLINCPATH := $(GDK)/usr/include/nvidia/gdk/ NVMLLIBPATH32 := $(CUDALIBPATH32) diff --git a/tools/deps.sh b/tools/deps.sh index 6385b8a5e..02d88ad03 100755 --- a/tools/deps.sh +++ b/tools/deps.sh @@ -1,21 +1,23 @@ #!/bin/bash # Author: Gabriele Gristina -# Revision: 1.0 +# Revision: 1.01 ## global vars DEPS="make gcc-4.9 g++-4.9 gcc-4.9-multilib g++-4.9-multilib libc6-dev-i386 mingw-w64 build-essential unzip" -DOWNLOAD_DEPS="ADL_SDK8.zip R352-developer.zip cuda_7.5.18_linux.run NVIDIA-Linux-x86_64-352.21.run gdk_linux_amd64_352_55_release.run AMDAPPSDK-3.0-linux64.tar.bz2" +DOWNLOAD_DEPS="ADL_SDK8.zip R352-developer.zip cuda_7.5.18_linux.run NVIDIA-Linux-x86_64-352.21.run gdk_linux_amd64_352_55_release.run AMD-APP-SDKInstaller-v3.0.130.135-GA-linux64.tar.bz2" -## root check -if [ $(id -u) -ne 0 ]; then - echo "! Must be root" - exit 1 -fi +## enter the hashcat-deps directory +cur_directory=$(dirname ${0}) +script_directory=$(cd ${cur_directory} && pwd -P) +hashcat_deps_dir=${script_directory}/../hashcat-deps -## cleanup 'hashcat-deps' directories -rm -rf /opt/hashcat-deps/{adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \ -mkdir -p /opt/hashcat-deps/{tmp,adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \ -cd /opt/hashcat-deps/tmp +mkdir -p ${hashcat_deps_dir} # but it should already exist (is part of the repository) +cd ${hashcat_deps_dir} + +## cleanup the directories under the 'hashcat-deps' folder +rm -rf {adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \ +mkdir -p {tmp,adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \ +cd tmp/ if [ $? -ne 0 ]; then echo "! Cannot create hashcat-deps directories." @@ -32,21 +34,32 @@ for d in ${DOWNLOAD_DEPS}; do done if [ ${i} -gt 0 ]; then - echo "! Please download manually into the directory /opt/hashcat-deps/tmp" + echo "! Please manually download all the above dependencies to the hashcat-deps/tmp/ directory" exit 1 fi ## installing needed packages for pkg in ${DEPS}; do - apt-get -y install ${pkg} + + # check if the package is already installed + dpkg -s ${pkg} &>/dev/null if [ $? -ne 0 ]; then - echo "! failed to install ${pkg}" - exit 1 + ## root check + if [ $(id -u) -ne 0 ]; then + echo "! Must be root to install the required package '${pkg}' with apt-get" + exit 1 + fi + + apt-get -y install ${pkg} + if [ $? -ne 0 ]; then + echo "! failed to install ${pkg}" + exit 1 + fi fi done ## extract ADL SDK -unzip ADL_SDK8.zip -d /opt/hashcat-deps/adl-sdk-8 +unzip ADL_SDK8.zip -d ${hashcat_deps_dir}/adl-sdk-8 ret=$? if [[ ${ret} -ne 0 ]] && [[ ${ret} -ne 1 ]]; then @@ -54,7 +67,7 @@ if [[ ${ret} -ne 0 ]] && [[ ${ret} -ne 1 ]]; then exit 1 fi -rm -rf /opt/hashcat-deps/adl-sdk && ln -s /opt/hashcat-deps/adl-sdk-8 /opt/hashcat-deps/adl-sdk +rm -rf ${hashcat_deps_dir}/adl-sdk && ln -s ${hashcat_deps_dir}/adl-sdk-8 ${hashcat_deps_dir}/adl-sdk if [ $? -ne 0 ]; then echo "! failed to setup ADL SDK link" @@ -62,7 +75,7 @@ if [ $? -ne 0 ]; then fi ## extract NVAPI -unzip R352-developer.zip -d /opt/hashcat-deps/ +unzip R352-developer.zip -d ${hashcat_deps_dir} ret=$? if [[ ${ret} -ne 0 ]] && [[ ${ret} -ne 1 ]]; then @@ -72,7 +85,7 @@ fi ## install CUDA SDK chmod +x cuda_7.5.18_linux.run && \ -./cuda_7.5.18_linux.run -toolkit -silent -override --toolkitpath=/opt/hashcat-deps/cuda-7.5 +./cuda_7.5.18_linux.run -toolkit -silent -override --toolkitpath=${hashcat_deps_dir}/cuda-7.5 if [ $? -ne 0 ]; then echo "! failed to install CUDA SDK" @@ -82,14 +95,14 @@ fi ## install NVIDIA Driver chmod +x NVIDIA-Linux-x86_64-352.21.run && \ ./NVIDIA-Linux-x86_64-352.21.run -x && \ -mv NVIDIA-Linux-x86_64-352.21 /opt/hashcat-deps/ && \ -cd /opt/hashcat-deps/NVIDIA-Linux-x86_64-352.21 && \ +mv NVIDIA-Linux-x86_64-352.21 ${hashcat_deps_dir}/ && \ +cd ${hashcat_deps_dir}/NVIDIA-Linux-x86_64-352.21 && \ ln -s libnvidia-ml.so.352.21 libnvidia-ml.so && \ ln -s libcuda.so.352.21 libcuda.so && \ cd 32 && \ ln -s libnvidia-ml.so.352.21 libnvidia-ml.so && \ ln -s libcuda.so.352.21 libcuda.so && \ -cd /opt/hashcat-deps/tmp +cd ${hashcat_deps_dir}/tmp if [ $? -ne 0 ]; then echo "! failed to install NVIDIA Driver" @@ -98,7 +111,7 @@ fi ## install NVIDIA GPU Deployment Kit chmod +x gdk_linux_amd64_352_55_release.run && \ -./gdk_linux_amd64_352_55_release.run --silent --installdir=/opt/hashcat-deps/nvidia-gdk +./gdk_linux_amd64_352_55_release.run --silent --installdir=${hashcat_deps_dir}/nvidia-gdk if [ $? -ne 0 ]; then echo "! failed to install NVIDIA GPU Deployment Kit" @@ -106,15 +119,15 @@ if [ $? -ne 0 ]; then fi ## extract AMD APP SDK -tar xjf AMDAPPSDK-3.0-linux64.tar.bz2 && \ -./AMD-APP-SDK-v3.0.130.135-GA-linux64.sh --noexec --target /opt/hashcat-deps/amd-app-sdk-v3.0.130.135 +tar xjf AMD-APP-SDKInstaller-v3.0.130.135-GA-linux64.tar.bz2 && \ +./AMD-APP-SDK-v3.0.130.135-GA-linux64.sh --noexec --target ${hashcat_deps_dir}/amd-app-sdk-v3.0.130.135 if [ $? -ne 0 ]; then echo "! failed to extract AMD APP SDK" exit 1 fi -rm -rf /opt/hashcat-deps/amd-app-sdk && ln -s /opt/hashcat-deps/amd-app-sdk-v3.0.130.135 /opt/hashcat-deps/amd-app-sdk +rm -rf ${hashcat_deps_dir}/amd-app-sdk && ln -s ${hashcat_deps_dir}/amd-app-sdk-v3.0.130.135 ${hashcat_deps_dir}/amd-app-sdk if [ $? -ne 0 ]; then echo "! failed to setup ADL SDK link"