fixed base64_decode () input length validation for -m 8900
[hashcat.git] / docs / BUILD.md
index 4cb368d..60a9e6d 100644 (file)
 oclHashcat build documentation
 =
 # Revision:
-* 1.0
+* 1.3
 
 # Authors:
 * Gabriele Gristina <<matrix@hashcat.net>>
 * Christoph Heuwieser <<dropdead@hashcat.net>>
+* magnum <<john.magnum@hushmail.com>>
 
-# Dependencies
-
-To compile **oclHashcat** the following third party libraries are required:
-
-    ADL_SDK v8.0 - http://developer.amd.com/tools-and-sdks/graphics-development/display-library-adl-sdk/
-    cuda v7.5 - https://developer.nvidia.com/cuda-downloads
-    GDK v352_55 - https://developer.nvidia.com/gpu-deployment-kit
-    NVIDIA Driver v352.21 - https://www.nvidia.com/download/driverResults.aspx/86390/en-us
-    NVAPI R352 - https://developer.nvidia.com/nvapi
-    AMD-APP-SDK v3.0 - http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/
-    
-To be able to compile the ocl binaries, it is required to have the latest stable driver from AMD installed.
-(fglxr must be installed and initialized)
-
-    http://support.amd.com/
-
-The next thing to do is download all the third party libraries listed above and put these files into the *deps/tmp* directory.
-
-The following files are needed inside the *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
-    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 **tools/deps.sh**):
-
-    #!/bin/bash
-    # Author: Gabriele Gristina <matrix@hashcat.net>
-    # Revision: 1.02
-    
-    ## global vars
-    DEPS="make gcc g++ gcc-multilib g++-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 AMD-APP-SDKInstaller-v3.0.130.135-GA-linux64.tar.bz2"
-    
-    ## enter the deps directory
-    cur_directory=$(dirname ${0})
-    script_directory=$(cd ${cur_directory} && pwd -P)
-    deps_dir=${script_directory}/../deps
-    
-    mkdir -p ${deps_dir} # but it should already exist (is part of the repository)
-    cd ${deps_dir}
-    
-    ## cleanup the directories under the '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 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
-    done
-    
-    if [ ${i} -gt 0 ]; then
-      echo "! Please manually download all the above dependencies to the deps/tmp/ directory"
-      exit 1
-    fi
-    
-    ## installing needed packages
-    for pkg in ${DEPS}; do
-    
-      # 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 ${deps_dir}/adl-sdk-8
-    ret=$?
-    
-    if [[ ${ret} -ne 0 ]] && [[ ${ret} -ne 1 ]]; then
-      echo "! failed to extract ADL SDK"
-      exit 1
-    fi
-    
-    rm -rf ${deps_dir}/adl-sdk && ln -s ${deps_dir}/adl-sdk-8 ${deps_dir}/adl-sdk
-    
-    if [ $? -ne 0 ]; then
-      echo "! failed to setup ADL SDK link"
-      exit 1
-    fi
-    
-    ## extract NVAPI
-    unzip R352-developer.zip -d ${deps_dir}
-    ret=$?
-    
-    if [[ ${ret} -ne 0 ]] && [[ ${ret} -ne 1 ]]; then
-      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=${deps_dir}/cuda-7.5
-    
-    if [ $? -ne 0 ]; then
-      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 ${deps_dir}/ && \
-    cd ${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 ${deps_dir}/tmp
-    
-    if [ $? -ne 0 ]; then
-      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=${deps_dir}/nvidia-gdk
-    
-    if [ $? -ne 0 ]; then
-      echo "! failed to install NVIDIA GPU Deployment Kit"
-      exit 1
-    fi
-    
-    ## extract AMD APP SDK
-    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 ${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 ${deps_dir}/amd-app-sdk && ln -s ${deps_dir}/amd-app-sdk-v3.0.130.135 ${deps_dir}/amd-app-sdk
-    
-    if [ $? -ne 0 ]; then
-      echo "! failed to setup ADL SDK link"
-      exit 1
-    fi
-    
-    echo "> oclHashcat dependencies have been resolved."
-    
-# Building oclHashcat
-First get a copy of **oclHashcat** repository
+# Building oclHashcat for Linux and OSX
+
+Get a copy of the **oclHashcat** repository
 
 ```sh
 $ git clone https://github.com/hashcat/oclHashcat.git
 ```
 
-Now simply jump in and type "make all"
+Run "make"
 
 ```sh
-$ cd oclHashcat
-$ make all
+$ make
 ```
 
-Useful tricks:
-- build only *Linux* binaries
+# Install oclHashcat for Linux
+
+The install target is linux FHS compatible and can be used like this:
+
 ```sh
-$ make linux
+$ make install
 ```
-- build only *Windows* binaries
+
+If you install it, cached kernels, session files, restore- and pot-files etc. will go to $HOME/.hashcat/
+
+# Building oclHashcat for Windows
+
+Get a copy of the **oclHashcat** repository
+
 ```sh
-$ make windows
+$ git clone https://github.com/hashcat/oclHashcat.git
 ```
-- build only *AMD kernel* binaries
+
+Basically all you need is the OpenCL Headers.
+
+Simply clone into the reference Implementation:
+
 ```sh
-$ make amd_all
+$ mkdir -p deps/OpenCL-Headers
+$ git clone https://github.com/KhronosGroup/OpenCL-Headers deps/OpenCL-Headers/CL
 ```
-- build only *NVIDIA kernel* binaries
+
 ```sh
-$ make nv_all
+$ make win32 win64
 ```
-
 =
 Enjoy your fresh **oclHashcat** binaries ;)