mirror of
https://github.com/hashcat/hashcat
synced 2024-11-20 23:27:31 +01:00
Prepare to rename project into hashcat
This release markes the fusion of "hashcat" and "oclHashcat" into "hashcat". It combines all features of all hashcat projects in one project.
This commit is contained in:
parent
768ffbdad8
commit
e47030ed7d
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,7 +1,7 @@
|
||||
*.exe
|
||||
*.bin
|
||||
*.app
|
||||
oclHashcat
|
||||
hashcat
|
||||
*.restore
|
||||
*.dictstat
|
||||
*.pot
|
||||
@ -11,3 +11,4 @@ deps/**
|
||||
kernels/**
|
||||
lib/*.a
|
||||
obj/*.o
|
||||
include/CL
|
||||
|
@ -14,7 +14,7 @@
|
||||
/* */
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* */
|
||||
/* Cleaned and optimized for GPU use with oclHashcat by Jens Steube */
|
||||
/* Cleaned and optimized for GPU use with hashcat by Jens Steube */
|
||||
|
||||
/* 15 terms */
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
/* */
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* */
|
||||
/* Cleaned and optimized for GPU use with oclHashcat by Jens Steube */
|
||||
/* Cleaned and optimized for GPU use with hashcat by Jens Steube */
|
||||
|
||||
#define extract_byte(x,n) (((x) >> (8 * (n))) & 0xff)
|
||||
|
||||
|
@ -1176,7 +1176,7 @@ void memcat8 (u32 block0[4], u32 block1[4], u32 block2[4], u32 block3[4], const
|
||||
#define WORDSZ384 128
|
||||
#define WORDSZ512 128
|
||||
|
||||
#define PWMAXSZ 32 // oclHashcat password length limit
|
||||
#define PWMAXSZ 32 // hashcat password length limit
|
||||
#define BLMAXSZ BLSZ512
|
||||
#define WORDMAXSZ WORDSZ512
|
||||
|
||||
|
16
README.md
16
README.md
@ -1,14 +1,16 @@
|
||||
## *oclHashcat* ##
|
||||
## *hashcat* ##
|
||||
|
||||
**oclHashcat** is the world's fastest and most advanced GPGPU-based password recovery utility, supporting five unique modes of attack for over 170 highly-optimized hashing algorithms. oclHashcat currently supports AMD (OpenCL) and Nvidia (CUDA) graphics processors on GNU/Linux and Windows 7/8/10, and has facilities to help enable distributed password cracking.
|
||||
**hashcat** is the world's fastest and most advanced password recovery utility, supporting five unique modes of attack for over 180 highly-optimized hashing algorithms. hashcat currently supports CPU's, GPU's other hardware-accelerators on Linux, Windows and OSX, and has facilities to help enable distributed password cracking.
|
||||
|
||||
** THE VERSION 3.00 IS CURRENTLY STILL IN BETA **
|
||||
|
||||
### License ###
|
||||
|
||||
**oclHashcat** is licensed under the MIT license. Refer to [docs/license.txt](docs/license.txt) for more information.
|
||||
**hashcat** is licensed under the MIT license. Refer to [docs/license.txt](docs/license.txt) for more information.
|
||||
|
||||
### Installation ###
|
||||
|
||||
Download the [latest release](https://hashcat.net/oclhashcat/) and unpack it in the desired location. Please remember to use `7z x` when unpacking the archive from the command line to ensure full file paths remain intact.
|
||||
Download the [latest release](https://hashcat.net/hashcat/) and unpack it in the desired location. Please remember to use `7z x` when unpacking the archive from the command line to ensure full file paths remain intact.
|
||||
|
||||
### Usage/Help ###
|
||||
|
||||
@ -16,7 +18,7 @@ Please refer to the [Hashcat Wiki](https://hashcat.net/wiki/) and the output of
|
||||
|
||||
### Building ###
|
||||
|
||||
Refer to [docs/BUILD.md](docs/BUILD.md) for instructions on how to build **oclHashcat** from source.
|
||||
Refer to [docs/BUILD.md](docs/BUILD.md) for instructions on how to build **hashcat** from source.
|
||||
|
||||
### Contributing ###
|
||||
|
||||
@ -41,8 +43,8 @@ Your pull request should fully describe the functionality you are adding/removin
|
||||
|
||||
Solve only one problem in each pull request. If you're fixing a bug and adding a new feature, you need to make two separate pull requests. If you're fixing three bugs, you need to make three separate pull requests. If you're adding four new features, you need to make four separate pull requests. So on, and so forth.
|
||||
|
||||
If your patch fixes a bug, please be sure there is an [issue](https://github.com/hashcat/oclHashcat/issues) open for the bug before submitting a pull request. If your patch aims to improve performance or optimizes an algorithm, be sure to quantify your optimizations and document the trade-offs, and back up your claims with benchmarks and metrics.
|
||||
If your patch fixes a bug, please be sure there is an [issue](https://github.com/hashcat/hashcat/issues) open for the bug before submitting a pull request. If your patch aims to improve performance or optimizes an algorithm, be sure to quantify your optimizations and document the trade-offs, and back up your claims with benchmarks and metrics.
|
||||
|
||||
In order to maintain the quality and integrity of the **oclHashcat** source tree, all pull requests must be reviewed and signed off by at least two [board members](https://github.com/orgs/hashcat/people) before being merged. The [project lead](https://github.com/jsteube) has the ultimate authority in deciding whether to accept or reject a pull request. Do not be discouraged if your pull request is rejected!
|
||||
In order to maintain the quality and integrity of the **hashcat** source tree, all pull requests must be reviewed and signed off by at least two [board members](https://github.com/orgs/hashcat/people) before being merged. The [project lead](https://github.com/jsteube) has the ultimate authority in deciding whether to accept or reject a pull request. Do not be discouraged if your pull request is rejected!
|
||||
|
||||
### Happy Cracking!
|
||||
|
@ -1,4 +1,4 @@
|
||||
oclHashcat build documentation
|
||||
hashcat build documentation
|
||||
=
|
||||
# Revision:
|
||||
* 1.3
|
||||
@ -8,12 +8,12 @@ oclHashcat build documentation
|
||||
* Christoph Heuwieser <<dropdead@hashcat.net>>
|
||||
* magnum <<john.magnum@hushmail.com>>
|
||||
|
||||
# Building oclHashcat for Linux and OSX
|
||||
# Building hashcat for Linux and OSX
|
||||
|
||||
Get a copy of the **oclHashcat** repository
|
||||
Get a copy of the **hashcat** repository
|
||||
|
||||
```sh
|
||||
$ git clone https://github.com/hashcat/oclHashcat.git
|
||||
$ git clone https://github.com/hashcat/hashcat.git
|
||||
```
|
||||
|
||||
Run "make"
|
||||
@ -22,7 +22,7 @@ Run "make"
|
||||
$ make
|
||||
```
|
||||
|
||||
# Install oclHashcat for Linux
|
||||
# Install hashcat for Linux
|
||||
|
||||
The install target is linux FHS compatible and can be used like this:
|
||||
|
||||
@ -32,12 +32,12 @@ $ make install
|
||||
|
||||
If you install it, cached kernels, session files, restore- and pot-files etc. will go to $HOME/.hashcat/
|
||||
|
||||
# Building oclHashcat for Windows
|
||||
# Building hashcat for Windows
|
||||
|
||||
Get a copy of the **oclHashcat** repository
|
||||
Get a copy of the **hashcat** repository
|
||||
|
||||
```sh
|
||||
$ git clone https://github.com/hashcat/oclHashcat.git
|
||||
$ git clone https://github.com/hashcat/hashcat.git
|
||||
```
|
||||
|
||||
Basically all you need is the OpenCL Headers.
|
||||
@ -53,4 +53,4 @@ $ git clone https://github.com/KhronosGroup/OpenCL-Headers deps/OpenCL-Headers/C
|
||||
$ make win32 win64
|
||||
```
|
||||
=
|
||||
Enjoy your fresh **oclHashcat** binaries ;)
|
||||
Enjoy your fresh **hashcat** binaries ;)
|
||||
|
@ -3,7 +3,7 @@
|
||||
This release markes the fusion of "hashcat" and "oclHashcat" into "hashcat".
|
||||
It combines all features of all hashcat projects in one project.
|
||||
|
||||
** NOTE to beta users: that's what's planed for release **
|
||||
** THE VERSION 3.00 IS CURRENTLY STILL IN BETA **
|
||||
|
||||
##
|
||||
## Features
|
||||
|
@ -1,5 +1,7 @@
|
||||
oclHashcat v2.10
|
||||
================
|
||||
hashcat v3.00
|
||||
=============
|
||||
|
||||
** THE VERSION 3.00 IS CURRENTLY STILL IN BETA **
|
||||
|
||||
AMD users require AMD drivers 14.9 or later (recommended 15.12 or later)
|
||||
Intel users require Intel OpenCL Runtime 14.2 or later (recommended 15.1 or later)
|
||||
@ -10,11 +12,11 @@ NVidia users require NVidia drivers 346.59 or later (recommended 361.x or later)
|
||||
##
|
||||
|
||||
- World's fastest password cracker
|
||||
- World's first and only GPGPU-based rule engine
|
||||
- World's first and only in-kernel rule engine
|
||||
- Free
|
||||
- Open-Source (MIT License)
|
||||
- Multi-OS (Linux, Windows and OSX)
|
||||
- Multi-Platform (CPU, GPU, FPGA, etc., everything that comes with an OpenCL runtime)
|
||||
- Multi-Platform (CPU, GPU, DSP, FPGA, etc., everything that comes with an OpenCL runtime)
|
||||
- Multi-Hash (Cracking multiple hashes at the same time)
|
||||
- Multi-Devices (Utilizing multiple devices in same system)
|
||||
- Multi-Device-Types (Utilizing mixed device types in same system)
|
||||
@ -28,7 +30,7 @@ NVidia users require NVidia drivers 346.59 or later (recommended 361.x or later)
|
||||
- Supports automatic keyspace ordering markov-chains
|
||||
- Built-in benchmarking system
|
||||
- Integrated thermal watchdog
|
||||
- 150+ Hash-types implemented with performance in mind
|
||||
- 160+ Hash-types implemented with performance in mind
|
||||
|
||||
##
|
||||
## Hash-Types
|
||||
@ -222,3 +224,15 @@ NVidia users require NVidia drivers 346.59 or later (recommended 361.x or later)
|
||||
- Mesa/Clover
|
||||
- NVidia ForceWare
|
||||
- pocl
|
||||
|
||||
##
|
||||
## Supported OpenCL device types
|
||||
##
|
||||
|
||||
- GPU
|
||||
- CPU
|
||||
- APU
|
||||
- DSP
|
||||
- FPGA
|
||||
- Coprocessor
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
||||
#define RULE_OP_REJECT_CONTAINS '%' // reject plains that contain char X less than N times
|
||||
#define RULE_OP_REJECT_MEMORY 'Q' // reject plains that match the plain saved (see M), i.e. if unchanged
|
||||
|
||||
/* hashcat only */
|
||||
/* With -j or -k only */
|
||||
|
||||
#define RULE_OP_MANGLE_SWITCH_FIRST 'k' // switches the first 2 chars. ex: hello -> ehllo
|
||||
#define RULE_OP_MANGLE_SWITCH_LAST 'K' // switches the last 2 chars. ex: hello -> helol
|
||||
@ -56,3 +56,4 @@
|
||||
#define RULE_OP_MANGLE_DUPEBLOCK_FIRST 'y' // duplicates first n characters
|
||||
#define RULE_OP_MANGLE_DUPEBLOCK_LAST 'Y' // duplicates last n characters
|
||||
#define RULE_OP_MANGLE_TITLE 'E' // lowercase everything then upper case the first letter and every letter after a space
|
||||
|
||||
|
259976
example.dict
259976
example.dict
File diff suppressed because it is too large
Load Diff
@ -1,2 +1,2 @@
|
||||
oclHashcat64.exe -t 32 -a 7 example0.hash ?a?a?a?a example.dict
|
||||
pause
|
||||
hashcat64.exe -t 32 -a 7 example0.hash ?a?a?a?a example.dict
|
||||
pause
|
||||
|
12988
example0.hash
12988
example0.hash
File diff suppressed because it is too large
Load Diff
@ -1 +1 @@
|
||||
./oclHashcat -t 32 -a 7 example0.hash ?a?a?a?a example.dict
|
||||
./hashcat -t 32 -a 7 example0.hash ?a?a?a?a example.dict
|
||||
|
@ -1,2 +1,2 @@
|
||||
type example.dict | oclHashcat64.exe -m 400 example400.hash
|
||||
pause
|
||||
type example.dict | hashcat64.exe -m 400 example400.hash
|
||||
pause
|
||||
|
@ -1 +1 @@
|
||||
$H$9y5boZ2wsUlgl2tI6b5PrRoADzYfXD1
|
||||
$H$9y5boZ2wsUlgl2tI6b5PrRoADzYfXD1
|
||||
|
@ -1 +1 @@
|
||||
cat example.dict | ./oclHashcat -m 400 example400.hash
|
||||
cat example.dict | ./hashcat -m 400 example400.hash
|
||||
|
@ -1,2 +1,2 @@
|
||||
oclHashcat64.exe -m 500 example500.hash example.dict
|
||||
pause
|
||||
hashcat64.exe -m 500 example500.hash example.dict
|
||||
pause
|
||||
|
@ -1 +1 @@
|
||||
$1$uOM6WNc4$r3ZGeSB11q6UUSILqek3J1
|
||||
$1$uOM6WNc4$r3ZGeSB11q6UUSILqek3J1
|
||||
|
@ -1 +1 @@
|
||||
./oclHashcat -m 500 example500.hash example.dict
|
||||
./hashcat -m 500 example500.hash example.dict
|
||||
|
@ -4,19 +4,19 @@
|
||||
## License.....: MIT
|
||||
##
|
||||
|
||||
OCLHASHCAT_ROOT="."
|
||||
HASHCAT_ROOT="."
|
||||
|
||||
# helper functions
|
||||
_oclHashcat_get_permutations ()
|
||||
_hashcat_get_permutations ()
|
||||
{
|
||||
local num_devices=${1}
|
||||
oclHashcat_devices_permutation=""
|
||||
hashcat_devices_permutation=""
|
||||
|
||||
# Formula: Sum (k=1...num_devices) (num_devices! / (k! * (num_devices - k)!))
|
||||
# or ofc (2 ^ num_devices) - 1
|
||||
if [ "${num_devices}" -gt 0 ]; then
|
||||
|
||||
oclHashcat_devices_permutation=$(seq 1 $num_devices)
|
||||
hashcat_devices_permutation=$(seq 1 $num_devices)
|
||||
|
||||
local k
|
||||
|
||||
@ -24,7 +24,7 @@ _oclHashcat_get_permutations ()
|
||||
|
||||
if [ "${k}" -eq ${num_devices} ];then
|
||||
|
||||
oclHashcat_devices_permutation="${oclHashcat_devices_permutation} $(seq 1 $num_devices | tr '\n' ',' | sed 's/, *$//')"
|
||||
hashcat_devices_permutation="${hashcat_devices_permutation} $(seq 1 $num_devices | tr '\n' ',' | sed 's/, *$//')"
|
||||
|
||||
else
|
||||
|
||||
@ -65,7 +65,7 @@ _oclHashcat_get_permutations ()
|
||||
|
||||
if [ "${pos_changed}" -eq 0 ]; then
|
||||
|
||||
oclHashcat_devices_permutation="${oclHashcat_devices_permutation} ${out_str}"
|
||||
hashcat_devices_permutation="${hashcat_devices_permutation} ${out_str}"
|
||||
|
||||
else
|
||||
|
||||
@ -127,7 +127,7 @@ _oclHashcat_get_permutations ()
|
||||
fi
|
||||
}
|
||||
|
||||
_oclHashcat_opencl_devices ()
|
||||
_hashcat_opencl_devices ()
|
||||
{
|
||||
local num_devices=0
|
||||
|
||||
@ -144,7 +144,7 @@ _oclHashcat_opencl_devices ()
|
||||
return ${num_devices}
|
||||
}
|
||||
|
||||
_oclHashcat_cpu_devices ()
|
||||
_hashcat_cpu_devices ()
|
||||
{
|
||||
local num_devices=0
|
||||
|
||||
@ -157,7 +157,7 @@ _oclHashcat_cpu_devices ()
|
||||
return ${num_devices}
|
||||
}
|
||||
|
||||
_oclHashcat_contains ()
|
||||
_hashcat_contains ()
|
||||
{
|
||||
local haystack=${1}
|
||||
local needle="${2}"
|
||||
@ -173,7 +173,7 @@ _oclHashcat_contains ()
|
||||
return 1
|
||||
}
|
||||
|
||||
_oclHashcat ()
|
||||
_hashcat ()
|
||||
{
|
||||
local VERSION=2.10
|
||||
|
||||
@ -246,12 +246,12 @@ _oclHashcat ()
|
||||
;;
|
||||
|
||||
-d|--opencl-devices)
|
||||
_oclHashcat_opencl_devices
|
||||
_hashcat_opencl_devices
|
||||
local num_devices=${?}
|
||||
|
||||
_oclHashcat_get_permutations ${num_devices}
|
||||
_hashcat_get_permutations ${num_devices}
|
||||
|
||||
COMPREPLY=($(compgen -W "${oclHashcat_devices_permutation}" -- ${cur}))
|
||||
COMPREPLY=($(compgen -W "${hashcat_devices_permutation}" -- ${cur}))
|
||||
return 0
|
||||
;;
|
||||
|
||||
@ -294,12 +294,12 @@ _oclHashcat ()
|
||||
;;
|
||||
|
||||
--cpu-affinity)
|
||||
_oclHashcat_cpu_devices
|
||||
_hashcat_cpu_devices
|
||||
local num_devices=${?}
|
||||
|
||||
_oclHashcat_get_permutations ${num_devices}
|
||||
_hashcat_get_permutations ${num_devices}
|
||||
|
||||
COMPREPLY=($(compgen -W "${oclHashcat_devices_permutation}" -- ${cur}))
|
||||
COMPREPLY=($(compgen -W "${hashcat_devices_permutation}" -- ${cur}))
|
||||
return 0
|
||||
;;
|
||||
|
||||
@ -422,12 +422,12 @@ _oclHashcat ()
|
||||
;;
|
||||
|
||||
-d*)
|
||||
_oclHashcat_opencl_devices
|
||||
_hashcat_opencl_devices
|
||||
local num_devices=${?}
|
||||
|
||||
_oclHashcat_get_permutations ${num_devices}
|
||||
_hashcat_get_permutations ${num_devices}
|
||||
|
||||
local opencl_devices_var="$(echo " "${oclHashcat_devices_permutation} | sed 's/ / -d/g')"
|
||||
local opencl_devices_var="$(echo " "${hashcat_devices_permutation} | sed 's/ / -d/g')"
|
||||
COMPREPLY=($(compgen -W "${opencl_devices_var}" -- ${cur}))
|
||||
return 0
|
||||
;;
|
||||
@ -450,7 +450,7 @@ _oclHashcat ()
|
||||
|
||||
local h=1
|
||||
local no_opts=0
|
||||
local attack_mode=0 # also default of oclHashcat
|
||||
local attack_mode=0 # also default of hashcat
|
||||
local has_charset_1=0
|
||||
local has_charset_2=0
|
||||
local has_charset_3=0
|
||||
@ -504,13 +504,13 @@ _oclHashcat ()
|
||||
|
||||
fi
|
||||
|
||||
if _oclHashcat_contains "${OPTIONS}" "${COMP_WORDS[h]}"; then
|
||||
if _hashcat_contains "${OPTIONS}" "${COMP_WORDS[h]}"; then
|
||||
|
||||
h=$((h + 2))
|
||||
|
||||
else
|
||||
|
||||
if ! _oclHashcat_contains "${LONG_OPTS}${SHORT_OPTS}" "${COMP_WORDS[h]}"; then
|
||||
if ! _hashcat_contains "${LONG_OPTS}${SHORT_OPTS}" "${COMP_WORDS[h]}"; then
|
||||
local variants="-m -a -w -n -u -o -r -d"
|
||||
local skip=0
|
||||
local v
|
||||
@ -759,4 +759,4 @@ _oclHashcat ()
|
||||
esac
|
||||
}
|
||||
|
||||
complete -F _oclHashcat -o filenames "${OCLHASHCAT_ROOT}"/oclHashcat64.bin "${OCLHASHCAT_ROOT}"/oclHashcat32.bin "${OCLHASHCAT_ROOT}"/oclHashcat oclHashcat
|
||||
complete -F _hashcat -o filenames "${HASHCAT_ROOT}"/hashcat64.bin "${HASHCAT_ROOT}"/hashcat32.bin "${HASHCAT_ROOT}"/hashcat hashcat
|
@ -1,4 +1,4 @@
|
||||
run:
|
||||
source ./install
|
||||
OR
|
||||
source ./oclHashcat.sh # not working permanently (i.e. not working after a reboot)
|
||||
source ./hashcat.sh # not working permanently (i.e. not working after a reboot)
|
||||
|
@ -1,11 +1,11 @@
|
||||
#!/bin/bash
|
||||
# Programmable bash completion for oclHashcat
|
||||
# Programmable bash completion for hashcat
|
||||
# this script was tested under ubuntu, please verify if on your
|
||||
# distro /etc/bash_completion.d/ exists (otherwise it won't work)
|
||||
|
||||
COMPGENSCRIPT=/etc/bash_completion
|
||||
COMPGENFOLDER=${COMPGENSCRIPT}.d
|
||||
COMPGENTARGET=${COMPGENFOLDER}/oclHashcat.sh
|
||||
COMPGENTARGET=${COMPGENFOLDER}/hashcat.sh
|
||||
BASHRC=~/.bashrc
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
@ -131,15 +131,15 @@ fi
|
||||
|
||||
if [ -d "${COMPGENFOLDER}" ]; then
|
||||
|
||||
# remove the old version of oclHashcat64.sh (was renamed to just oclHashcat.sh)
|
||||
# remove the old version of hashcat64.sh (was renamed to just hashcat.sh)
|
||||
|
||||
rm -f "${COMPGENTARGET}"/oclHashcat64.sh
|
||||
rm -f "${COMPGENTARGET}"/hashcat64.sh
|
||||
|
||||
# copy the script to target folder
|
||||
|
||||
cp ${ROOT}/oclHashcat.sh "${COMPGENTARGET}"
|
||||
cp ${ROOT}/hashcat.sh "${COMPGENTARGET}"
|
||||
|
||||
# adjust paths to the main binaries of oclHashcat
|
||||
# adjust paths to the main binaries of hashcat
|
||||
|
||||
sed -ri "s!^(ROOT=).*!\1\"${ROOT_PARENT}\"!" "${COMPGENTARGET}"
|
||||
|
||||
@ -162,7 +162,7 @@ EOF
|
||||
|
||||
if source_completion; then
|
||||
|
||||
echo "Bash completion scripts for oclHashcat were successfully installed, but since you didn't 'source' this file, you need to run:"
|
||||
echo "Bash completion scripts for hashcat were successfully installed, but since you didn't 'source' this file, you need to run:"
|
||||
echo "source ${COMPGENTARGET} # or source ${BASHRC}"
|
||||
echo
|
||||
echo "in order to be able to use the tab completion within the current shell."
|
||||
|
@ -15,7 +15,7 @@
|
||||
# - A line can not start with a space or a tab
|
||||
# - Comment lines are allowed, use a # as first character
|
||||
# - Invalid lines are ignored
|
||||
# - The Device-Name is the OpenCL Device-Name. It's shown on oclHashcat startup.
|
||||
# - The Device-Name is the OpenCL Device-Name. It's shown on hashcat startup.
|
||||
# - If the device contains spaces, replace all spaces with _ character.
|
||||
# - The Device-Name can be assigned an alias. This is useful if many devices share the same chip
|
||||
# - There's also a hard-wired Device-Name which matches all device types called:
|
@ -162,7 +162,7 @@ typedef struct ADLODPerformanceLevel
|
||||
|
||||
/*
|
||||
* Attention: we had to change this struct due to an out-of-bound problem mentioned here:
|
||||
* https://github.com/hashcat/oclHashcat/issues/244
|
||||
* https://github.com/hashcat/hashcat/issues/244
|
||||
* the change: ADLODPerformanceLevel aLevels [1] -> ADLODPerformanceLevel aLevels [2]
|
||||
*/
|
||||
|
||||
@ -229,7 +229,7 @@ typedef struct ADLOD6PerformanceLevel
|
||||
|
||||
/*
|
||||
* Attention: we had to change this struct due to an out-of-bound problem mentioned here:
|
||||
* https://github.com/hashcat/oclHashcat/issues/244
|
||||
* https://github.com/hashcat/hashcat/issues/244
|
||||
* the change: ADLOD6PerformanceLevel aLevels [1] -> ADLOD6PerformanceLevel aLevels [2]
|
||||
*/
|
||||
|
||||
|
@ -161,7 +161,7 @@ static inline int CPU_ISSET (int num, cpu_set_t *cs) { return (cs->count & (1 <
|
||||
#define SP_ROOT_CNT (SP_PW_MAX * CHARSIZ)
|
||||
#define SP_MARKOV_CNT (SP_PW_MAX * CHARSIZ * CHARSIZ)
|
||||
|
||||
#define TUNING_DB_FILE "hashcat_tuning.hctab"
|
||||
#define TUNING_DB_FILE "hashcat.hctune"
|
||||
|
||||
#define INDUCT_DIR "induct"
|
||||
#define OUTFILES_DIR "outfiles"
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
38
src/Makefile
38
src/Makefile
@ -6,7 +6,7 @@
|
||||
## License.....: MIT
|
||||
##
|
||||
|
||||
PROG_NAME := oclHashcat
|
||||
PROG_NAME := hashcat
|
||||
|
||||
##
|
||||
## Detect Operating System
|
||||
@ -43,7 +43,8 @@ SHARED_FOLDER ?= $(PREFIX)/share/$(PROG_NAME)
|
||||
DOCUMENT_FOLDER ?= $(PREFIX)/share/doc/$(PROG_NAME)
|
||||
|
||||
##
|
||||
## Dependencies, cross compilation only
|
||||
## Dependencies
|
||||
## You may ignore them if you have your own headers somewhere
|
||||
##
|
||||
|
||||
OPENCL_HEADERS_KHRONOS := deps/OpenCL-Headers
|
||||
@ -86,7 +87,7 @@ VERSION_SUM := $(shell git describe --tags --dirty=+ | cut -d- -f3)
|
||||
## Compiler flags
|
||||
##
|
||||
|
||||
CFLAGS := -pipe -W -Wall -std=c99 -Iinclude/
|
||||
CFLAGS := -pipe -W -Wall -std=c99 -Iinclude/ -I$(OPENCL_HEADERS_KHRONOS)/
|
||||
|
||||
ifndef DEBUG
|
||||
CFLAGS += -O2
|
||||
@ -155,7 +156,7 @@ CFLAGS_CROSS_LINUX += -s
|
||||
endif
|
||||
|
||||
CFLAGS_CROSS_LINUX += $(CFLAGS)
|
||||
CFLAGS_CROSS_LINUX += -I$(OPENCL_HEADERS_KHRONOS)/
|
||||
CFLAGS_CROSS_LINUX +=
|
||||
|
||||
ifneq (,$(filter 1,$(WITH_ADL) $(WITH_NVML)))
|
||||
CFLAGS_CROSS_LINUX += -DHAVE_HWMON
|
||||
@ -176,7 +177,6 @@ CFLAGS_CROSS_WIN += -s
|
||||
endif
|
||||
|
||||
CFLAGS_CROSS_WIN += $(filter-out -fsanitize=address,$(CFLAGS))
|
||||
CFLAGS_CROSS_WIN += -I$(OPENCL_HEADERS_KHRONOS)/
|
||||
|
||||
ifneq (,$(filter 1,$(WITH_ADL) $(WITH_NVAPI)))
|
||||
CFLAGS_CROSS_WIN += -DHAVE_HWMON
|
||||
@ -240,22 +240,22 @@ endif
|
||||
## Targets: Global
|
||||
##
|
||||
|
||||
native: oclHashcat
|
||||
native: hashcat
|
||||
|
||||
binaries: linux32 linux64 win32 win64
|
||||
|
||||
clean:
|
||||
$(RM) -f obj/*.o *.bin *.exe *.app *.restore *.out *.pot *.dictstat *.log oclHashcat core
|
||||
$(RM) -f obj/*.o *.bin *.exe *.app *.restore *.out *.pot *.dictstat *.log hashcat core
|
||||
$(RM) -rf *.induct
|
||||
$(RM) -rf *.outfiles
|
||||
$(RM) -rf *.dSYM
|
||||
$(RM) -rf kernels
|
||||
|
||||
linux32: oclHashcat32.bin
|
||||
linux64: oclHashcat64.bin
|
||||
linux32: hashcat32.bin
|
||||
linux64: hashcat64.bin
|
||||
|
||||
win32: oclHashcat32.exe
|
||||
win64: oclHashcat64.exe
|
||||
win32: hashcat32.exe
|
||||
win64: hashcat64.exe
|
||||
|
||||
##
|
||||
## Targets: Linux install
|
||||
@ -285,7 +285,7 @@ install: native
|
||||
$(INSTALL) -m 755 -d $(SHARED_FOLDER)/rules
|
||||
$(CP) -a rules/* $(SHARED_FOLDER)/rules/
|
||||
$(INSTALL) -m 644 hashcat.hcstat $(SHARED_FOLDER)/
|
||||
$(INSTALL) -m 644 hashcat_tuning.hctab $(SHARED_FOLDER)/
|
||||
$(INSTALL) -m 644 hashcat.hctune $(SHARED_FOLDER)/
|
||||
$(INSTALL) -m 755 $(BINARY_NATIVE) $(INSTALL_FOLDER)/
|
||||
|
||||
uninstall:
|
||||
@ -294,17 +294,17 @@ uninstall:
|
||||
$(RM) -rf $(DOCUMENT_FOLDER)
|
||||
|
||||
##
|
||||
## native compiled oclHashcat
|
||||
## native compiled hashcat
|
||||
##
|
||||
|
||||
obj/%.NATIVE.o: src/%.c
|
||||
$(CC_NATIVE) $(CFLAGS_NATIVE) -c -o $@ $<
|
||||
|
||||
oclHashcat: src/oclHashcat.c $(NATIVE_OBJS)
|
||||
hashcat: src/hashcat.c $(NATIVE_OBJS)
|
||||
$(CC_NATIVE) $(CFLAGS_NATIVE) -o $(BINARY_NATIVE) $^ $(LFLAGS_NATIVE) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\" -DVERSION_SUM=\"$(VERSION_SUM)\" -DINSTALL_FOLDER=\"$(INSTALL_FOLDER)\" -DSHARED_FOLDER=\"$(SHARED_FOLDER)\" -DDOCUMENT_FOLDER=\"$(DOCUMENT_FOLDER)\"
|
||||
|
||||
##
|
||||
## cross compiled oclHashcat for binary release version
|
||||
## cross compiled hashcat for binary release version
|
||||
##
|
||||
|
||||
obj/%.LINUX.32.o: src/%.c
|
||||
@ -319,14 +319,14 @@ obj/%.WIN.32.o: src/%.c
|
||||
obj/%.WIN.64.o: src/%.c
|
||||
$(CC_WIN_64) $(CFLAGS_CROSS_WIN) $(CFLAGS_CROSS_64) -c -o $@ $<
|
||||
|
||||
oclHashcat32.bin: src/oclHashcat.c $(LINUX_32_OBJS)
|
||||
hashcat32.bin: src/hashcat.c $(LINUX_32_OBJS)
|
||||
$(CC_LINUX_32) $(CFLAGS_CROSS_LINUX) $(CFLAGS_CROSS_32) -o $@ $^ $(LFLAGS_CROSS_LINUX) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\" -DVERSION_SUM=\"$(VERSION_SUM)\" -DINSTALL_FOLDER=\"$(INSTALL_FOLDER)\" -DSHARED_FOLDER=\"$(SHARED_FOLDER)\" -DDOCUMENT_FOLDER=\"$(DOCUMENT_FOLDER)\"
|
||||
|
||||
oclHashcat64.bin: src/oclHashcat.c $(LINUX_64_OBJS)
|
||||
hashcat64.bin: src/hashcat.c $(LINUX_64_OBJS)
|
||||
$(CC_LINUX_64) $(CFLAGS_CROSS_LINUX) $(CFLAGS_CROSS_64) -o $@ $^ $(LFLAGS_CROSS_LINUX) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\" -DVERSION_SUM=\"$(VERSION_SUM)\" -DINSTALL_FOLDER=\"$(INSTALL_FOLDER)\" -DSHARED_FOLDER=\"$(SHARED_FOLDER)\" -DDOCUMENT_FOLDER=\"$(DOCUMENT_FOLDER)\"
|
||||
|
||||
oclHashcat32.exe: src/oclHashcat.c $(WIN_32_OBJS)
|
||||
hashcat32.exe: src/hashcat.c $(WIN_32_OBJS)
|
||||
$(CC_WIN_32) $(CFLAGS_CROSS_WIN) $(CFLAGS_CROSS_32) -o $@ $^ $(LFLAGS_CROSS_WIN) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\" -DVERSION_SUM=\"$(VERSION_SUM)\" -static-libgcc
|
||||
|
||||
oclHashcat64.exe: src/oclHashcat.c $(WIN_64_OBJS)
|
||||
hashcat64.exe: src/hashcat.c $(WIN_64_OBJS)
|
||||
$(CC_WIN_64) $(CFLAGS_CROSS_WIN) $(CFLAGS_CROSS_64) -o $@ $^ $(LFLAGS_CROSS_WIN) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\" -DVERSION_SUM=\"$(VERSION_SUM)\" -static-libgcc
|
||||
|
@ -15,9 +15,9 @@
|
||||
#include <rp_kernel_on_cpu.h>
|
||||
#include <getopt.h>
|
||||
|
||||
const char *PROGNAME = "oclHashcat";
|
||||
const uint VERSION_BIN = 210;
|
||||
const uint RESTORE_MIN = 210;
|
||||
const char *PROGNAME = "hashcat";
|
||||
const uint VERSION_BIN = 300;
|
||||
const uint RESTORE_MIN = 300;
|
||||
|
||||
double TARGET_MS_PROFILE[3] = { 8, 16, 96 };
|
||||
|
||||
@ -754,7 +754,7 @@ const char *USAGE_BIG[] =
|
||||
};
|
||||
|
||||
/**
|
||||
* oclHashcat specific functions
|
||||
* hashcat specific functions
|
||||
*/
|
||||
|
||||
static double get_avg_exec_time (hc_device_param_t *device_param, const int last_num_entries)
|
||||
@ -1688,7 +1688,7 @@ static void status_benchmark ()
|
||||
}
|
||||
|
||||
/**
|
||||
* oclHashcat -only- functions
|
||||
* hashcat -only- functions
|
||||
*/
|
||||
|
||||
static void generate_source_kernel_filename (const uint attack_exec, const uint attack_kern, const uint kern_type, char *shared_dir, char *source_file)
|
||||
@ -5578,7 +5578,7 @@ int main (int argc, char **argv)
|
||||
if (session == NULL) session = (char *) PROGNAME;
|
||||
|
||||
/**
|
||||
* folders, as discussed on https://github.com/hashcat/oclHashcat/issues/20
|
||||
* folders, as discussed on https://github.com/hashcat/hashcat/issues/20
|
||||
*/
|
||||
|
||||
char *exec_path = get_exec_path ();
|
||||
@ -5671,7 +5671,7 @@ int main (int argc, char **argv)
|
||||
return (-1);
|
||||
}
|
||||
|
||||
// this allows the user to use --show and --left while cracking (i.e. while another instance of oclHashcat is running)
|
||||
// this allows the user to use --show and --left while cracking (i.e. while another instance of hashcat is running)
|
||||
if ((show == 1) || (left == 1))
|
||||
{
|
||||
restore_disable = 1;
|
||||
@ -13061,7 +13061,7 @@ int main (int argc, char **argv)
|
||||
log_info ("");
|
||||
log_info ("ATTENTION! Unsupported or incorrect installed catalyst driver detected!");
|
||||
log_info ("You are STRONGLY encouraged to use the official supported catalyst driver for good reasons");
|
||||
log_info ("See oclHashcat's homepage for official supported catalyst drivers");
|
||||
log_info ("See hashcat's homepage for official supported catalyst drivers");
|
||||
#ifdef _WIN
|
||||
log_info ("Also see: http://hashcat.net/wiki/doku.php?id=upgrading_amd_drivers_how_to");
|
||||
#endif
|
||||
@ -13971,7 +13971,7 @@ int main (int argc, char **argv)
|
||||
|
||||
// we don't have sm_* on vendors not NV but it doesn't matter
|
||||
|
||||
snprintf (build_opts, sizeof (build_opts) - 1, "-cl-std=CL1.1 -I\"%s/\" -DVENDOR_ID=%u -DCUDA_ARCH=%d -DVECT_SIZE=%u -DDEVICE_TYPE=%u -DKERN_TYPE=%u -D_unroll", shared_dir, device_param->vendor_id, (device_param->sm_major * 100) + device_param->sm_minor, device_param->vector_width, (u32) device_param->device_type, kern_type);
|
||||
snprintf (build_opts, sizeof (build_opts) - 1, "-cl-nv-verbose -cl-std=CL1.1 -I\"%s/\" -DVENDOR_ID=%u -DCUDA_ARCH=%d -DVECT_SIZE=%u -DDEVICE_TYPE=%u -DKERN_TYPE=%u -D_unroll", shared_dir, device_param->vendor_id, (device_param->sm_major * 100) + device_param->sm_minor, device_param->vector_width, (u32) device_param->device_type, kern_type);
|
||||
|
||||
/**
|
||||
* main kernel
|
||||
@ -16597,7 +16597,7 @@ int main (int argc, char **argv)
|
||||
log_info ("");
|
||||
log_info ("ATTENTION!");
|
||||
log_info (" The wordlist or mask you are using is too small.");
|
||||
log_info (" Therefore, oclHashcat is unable to utilize the full parallelization power of your device(s).");
|
||||
log_info (" Therefore, hashcat is unable to utilize the full parallelization power of your device(s).");
|
||||
log_info (" The cracking speed will drop.");
|
||||
log_info (" Workaround: https://hashcat.net/wiki/doku.php?id=frequently_asked_questions#how_to_create_more_work_for_full_speed");
|
||||
log_info ("");
|
@ -19985,7 +19985,7 @@ void *thread_keypress (void *p)
|
||||
|
||||
if (ch == 0) continue;
|
||||
|
||||
//https://github.com/hashcat/oclHashcat/issues/302
|
||||
//https://github.com/hashcat/hashcat/issues/302
|
||||
//#ifdef _POSIX
|
||||
//if (ch != '\n')
|
||||
//#endif
|
||||
@ -20081,7 +20081,7 @@ void *thread_keypress (void *p)
|
||||
break;
|
||||
}
|
||||
|
||||
//https://github.com/hashcat/oclHashcat/issues/302
|
||||
//https://github.com/hashcat/hashcat/issues/302
|
||||
//#ifdef _POSIX
|
||||
//if (ch != '\n')
|
||||
//#endif
|
||||
|
@ -5,8 +5,8 @@
|
||||
## License.....: MIT
|
||||
##
|
||||
|
||||
export IN=$HOME/oclHashcat
|
||||
export OUT=$HOME/xy/oclHashcat-2.10
|
||||
export IN=$HOME/hashcat
|
||||
export OUT=$HOME/xy/hashcat-3.00
|
||||
|
||||
rm -rf $OUT
|
||||
rm -rf $OUT.7z
|
||||
@ -14,35 +14,36 @@ rm -rf $OUT.7z
|
||||
mkdir -p $OUT
|
||||
mkdir -p $OUT/include
|
||||
|
||||
cp $IN/oclHashcat??.exe $OUT/
|
||||
cp $IN/oclHashcat??.bin $OUT/
|
||||
cp $IN/hashcat.hcstat $OUT/
|
||||
cp $IN/hashcat_tuning.hctab $OUT/
|
||||
cp $IN/hashcat??.exe $OUT/
|
||||
cp $IN/hashcat??.bin $OUT/
|
||||
cp $IN/hashcat.hcstat $OUT/
|
||||
cp $IN/hashcat.hctune $OUT/
|
||||
|
||||
cp -r $IN/docs $OUT/
|
||||
cp -r $IN/charsets $OUT/
|
||||
cp -r $IN/masks $OUT/
|
||||
cp -r $IN/rules $OUT/
|
||||
cp -r $IN/extra $OUT/
|
||||
cp $IN/example.dict $OUT/
|
||||
cp $IN/example[0123456789]*.hash $OUT/
|
||||
cp $IN/example[0123456789]*.cmd $OUT/
|
||||
cp -r $IN/docs $OUT/
|
||||
cp -r $IN/charsets $OUT/
|
||||
cp -r $IN/masks $OUT/
|
||||
cp -r $IN/rules $OUT/
|
||||
cp -r $IN/extra $OUT/
|
||||
cp $IN/example.dict $OUT/
|
||||
cp $IN/example[0123456789]*.hash $OUT/
|
||||
cp $IN/example[0123456789]*.cmd $OUT/
|
||||
|
||||
cp -r $IN/include/constants.h $OUT/include
|
||||
cp -r $IN/include/kernel_functions.c $OUT/include
|
||||
cp -r $IN/include/kernel_vendor.h $OUT/include
|
||||
cp -r $IN/include/rp_kernel.h $OUT/include
|
||||
cp -r $IN/OpenCL $OUT/
|
||||
cp -r $IN/include/constants.h $OUT/include
|
||||
cp -r $IN/include/kernel_functions.c $OUT/include
|
||||
cp -r $IN/include/kernel_vendor.h $OUT/include
|
||||
cp -r $IN/include/rp_kernel.h $OUT/include
|
||||
cp -r $IN/OpenCL $OUT/
|
||||
|
||||
# since for the binary distribution we still use .bin, we need to rewrite the commands
|
||||
# within the example*.sh files
|
||||
|
||||
for example in example[0123456789]*.sh; do
|
||||
|
||||
sed 's!./oclHashcat !./oclHashcat64.bin !' $IN/${example} > $OUT/${example}
|
||||
sed 's!./hashcat !./hashcat64.bin !' $IN/${example} > $OUT/${example}
|
||||
|
||||
done
|
||||
|
||||
dos2unix $OUT/masks/*.hcmask
|
||||
dos2unix $OUT/rules/*.rule
|
||||
dos2unix $OUT/rules/hybrid/*.rule
|
||||
dos2unix $OUT/docs/*
|
||||
@ -53,28 +54,31 @@ unix2dos $OUT/rules/*.rule
|
||||
unix2dos $OUT/rules/hybrid/*.rule
|
||||
unix2dos $OUT/docs/*
|
||||
unix2dos $OUT/example*.cmd
|
||||
unix2dos $OUT/include/*
|
||||
unix2dos $OUT/OpenCL/*
|
||||
unix2dos $OUT/hashcat.hctune
|
||||
|
||||
chmod 700 $OUT
|
||||
chmod 700 $OUT/rules
|
||||
chmod 600 $OUT/rules/*
|
||||
chmod 700 $OUT/docs
|
||||
chmod 600 $OUT/docs/*
|
||||
chmod 700 $OUT/charsets
|
||||
chmod 700 $OUT/charsets/*
|
||||
chmod 700 $OUT/masks
|
||||
chmod 600 $OUT/masks/*
|
||||
chmod 600 $OUT/example*
|
||||
chmod 700 $OUT/example*.sh
|
||||
chmod 700 $OUT/extra
|
||||
chmod 700 $OUT/extra/tab_completion/*.sh
|
||||
chmod 700 $OUT/extra/tab_completion/install
|
||||
chmod 700 $OUT/include
|
||||
chmod 600 $OUT/include/*
|
||||
chmod 700 $OUT/OpenCL
|
||||
chmod 600 $OUT/OpenCL/*
|
||||
chmod 600 $OUT/*.exe
|
||||
chmod 700 $OUT/*.bin
|
||||
chmod 600 $OUT/hashcat.hcstat
|
||||
chmod 600 $OUT/hashcat_tuning.hctab
|
||||
chmod 755 $OUT
|
||||
chmod 755 $OUT/rules
|
||||
chmod 644 $OUT/rules/*
|
||||
chmod 755 $OUT/docs
|
||||
chmod 644 $OUT/docs/*
|
||||
chmod 755 $OUT/charsets
|
||||
chmod 755 $OUT/charsets/*
|
||||
chmod 755 $OUT/masks
|
||||
chmod 644 $OUT/masks/*
|
||||
chmod 644 $OUT/example*
|
||||
chmod 755 $OUT/example*.sh
|
||||
chmod 755 $OUT/extra
|
||||
chmod 755 $OUT/extra/tab_completion/*.sh
|
||||
chmod 755 $OUT/extra/tab_completion/install
|
||||
chmod 755 $OUT/include
|
||||
chmod 644 $OUT/include/*
|
||||
chmod 755 $OUT/OpenCL
|
||||
chmod 644 $OUT/OpenCL/*
|
||||
chmod 644 $OUT/*.exe
|
||||
chmod 755 $OUT/*.bin
|
||||
chmod 644 $OUT/hashcat.hcstat
|
||||
chmod 644 $OUT/hashcat.hctune
|
||||
|
||||
time 7z a -t7z -m0=lzma2:d31 -mx=9 -mmt=8 -ms=on $OUT.7z $OUT
|
||||
|
@ -41,7 +41,7 @@ use Net::DNS::RR::NSEC3;
|
||||
use Convert::EBCDIC qw (ascii2ebcdic);
|
||||
use Digest::SipHash qw/siphash/;
|
||||
|
||||
my $hashcat = "./oclHashcat";
|
||||
my $hashcat = "./hashcat";
|
||||
|
||||
my $MAX_LEN = 55;
|
||||
|
||||
@ -1649,7 +1649,7 @@ sub verify
|
||||
# WPA/WPA2
|
||||
elsif ($mode == 2500)
|
||||
{
|
||||
print "ERROR: verify currently not supported for WPA/WPA2 (because of oclHashcat's output format)\n";
|
||||
print "ERROR: verify currently not supported for WPA/WPA2 (because of hashcat's output format)\n";
|
||||
|
||||
exit (1);
|
||||
}
|
||||
@ -2689,7 +2689,7 @@ sub verify
|
||||
}
|
||||
elsif ($mode == 5600)
|
||||
{
|
||||
# oclHashcat outputs the user name always upper-case, we need
|
||||
# hashcat outputs the user name always upper-case, we need
|
||||
next unless (substr ($line, 0, $len) eq $hash_out);
|
||||
|
||||
my $found = 0;
|
||||
|
@ -1578,7 +1578,7 @@ EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
BIN="oclHashcat"
|
||||
BIN="hashcat"
|
||||
MARKOV="enabled"
|
||||
ATTACK=0
|
||||
MODE=0
|
||||
|
Loading…
Reference in New Issue
Block a user