Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand

Hashcat (Install) 4.1.0

  • 1
  • 2
  • 3

All Checks are Passing

3 Passing Tests


Validation Testing Passed


Verification Testing Passed

Details

Scan Testing Successful:

No detections found in any package files

Details
Package Approved

This package was approved by moderator gep13 on 23 May 2018.

WARNING

This package is unlisted and hidden from package listings.

Description

Hashcat

The world's fastest password cracker.

This package installs binaries from: https://hashcat.net/hashcat/

## Install-directory
The package is installed into %ChocolateyToolsLocation%\hashcat-4.1.0, and can be run from anywhere with the command> hashcat.

## Scope of executable
With this package, Hashcat cannot be dot-sourced and must always be run within the scope of %ChocolateyToolsLocation%.
To specify input/output-files you therefore have to specify full paths or change your location with cd "$env:ChocolateyToolsLocation\hashcat-4.1.0".

## More information
For more information, visit https://hashcat.net/hashcat/


tools\chocolateyinstall.ps1
$folderName = "hashcat-4.1.0"
$toolsDir   = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$source     = Join-Path "$toolsDir" "$folderName"
$installDir = "$(Get-ToolsLocation)"

Copy-Item -Path "$source" -Destination "$installDir" -Recurse -Force

$psfile     = Join-Path "$toolsDir" "hashcat.ps1"
Install-ChocolateyPowershellCommand -PackageName "hashcat" -PSFileFullPath "$psfile"
tools\chocolateyuninstall.ps1
Remove-Item "$env:ChocolateyToolsLocation\hashcat-4.1.0" -recurse
tools\hashcat-4.1.0\charsets\combined\Bulgarian.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Castilian.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Catalan.hcchr
 
tools\hashcat-4.1.0\charsets\combined\English.hcchr
 
tools\hashcat-4.1.0\charsets\combined\French.hcchr
 
tools\hashcat-4.1.0\charsets\combined\German.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Greek.hcchr
 
tools\hashcat-4.1.0\charsets\combined\GreekPolytonic.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Italian.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Lithuanian.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Polish.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Portuguese.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Russian.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Slovak.hcchr
 
tools\hashcat-4.1.0\charsets\combined\Spanish.hcchr
 
tools\hashcat-4.1.0\charsets\DES_full.charset
 
tools\hashcat-4.1.0\charsets\DES_special\DES_alpha.charset
 
tools\hashcat-4.1.0\charsets\DES_special\DES_numeral.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_0.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_1.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_2.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_3.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_4.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_5.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_6.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_7.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_8.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_9.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_A.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_B.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_C.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_D.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_E.charset
 
tools\hashcat-4.1.0\charsets\DES_special\multiple_nodes\DES_portion_F.charset
 
tools\hashcat-4.1.0\charsets\special\Castilian\es-ES_cp1252-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Castilian\es-ES_ISO-8859-1-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Castilian\es-ES_ISO-8859-15-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Catalan\ca_cp1252-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Catalan\ca_ISO-8859-1-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Catalan\ca_ISO-8859-15-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\French\fr_cp1252-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\French\fr_ISO-8859-1-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\French\fr_ISO-8859-15-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\French\fr_ISO-8859-16-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\German\de_cp1252-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\German\de_ISO-8859-1-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\German\de_ISO-8859-15-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Greek\el_cp1253-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Greek\el_ISO-8859-7-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Italian\it_cp1252-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Italian\it_ISO-8859-1-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Italian\it_ISO-8859-15-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Polish\pl_cp1250-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Portuguese\pt_cp1252-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Portuguese\pt_ISO-8859-1-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Portuguese\pt_ISO-8859-15-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Russian\ru_cp1251-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Russian\ru_ISO-8859-5-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Slovak\sk_cp1250-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Slovak\sk_ISO-8859-2-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Spanish\es_cp1252-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Spanish\es_ISO-8859-1-special.hcchr
 
tools\hashcat-4.1.0\charsets\special\Spanish\es_ISO-8859-15-special.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Bulgarian\bg_cp1251.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Bulgarian\bg_ISO-8859-5.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Bulgarian\bg_KOI8-R.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Castilian\es-ES_cp1252.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Castilian\es-ES_ISO-8859-1.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Castilian\es-ES_ISO-8859-15.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Catalan\ca_cp1252.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Catalan\ca_ISO-8859-1.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Catalan\ca_ISO-8859-15.hcchr
 
tools\hashcat-4.1.0\charsets\standard\English\en_cp1252.hcchr
 
tools\hashcat-4.1.0\charsets\standard\English\en_ISO-8859-1.hcchr
 
tools\hashcat-4.1.0\charsets\standard\English\en_ISO-8859-15.hcchr
 
tools\hashcat-4.1.0\charsets\standard\French\fr_cp1252.hcchr
 
tools\hashcat-4.1.0\charsets\standard\French\fr_ISO-8859-1.hcchr
 
tools\hashcat-4.1.0\charsets\standard\French\fr_ISO-8859-15.hcchr
 
tools\hashcat-4.1.0\charsets\standard\French\fr_ISO-8859-16.hcchr
 
tools\hashcat-4.1.0\charsets\standard\German\de_cp1252.hcchr
 
tools\hashcat-4.1.0\charsets\standard\German\de_ISO-8859-1.hcchr
 
tools\hashcat-4.1.0\charsets\standard\German\de_ISO-8859-15.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Greek\el_cp1253.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Greek\el_ISO-8859-7.hcchr
 
tools\hashcat-4.1.0\charsets\standard\GreekPolytonic\el_polytonic_cp1253.hcchr
 
tools\hashcat-4.1.0\charsets\standard\GreekPolytonic\el_polytonic_ISO-8859-7.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Hungarian\hu_cp1250.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Italian\it_cp1252.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Italian\it_ISO-8859-1.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Italian\it_ISO-8859-15.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Lithuanian\lt_cp1257.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Lithuanian\lt_ISO-8859-13.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Lithuanian\lt_ISO-8859-4.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Polish\pl_cp1250.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Polish\pl_ISO-8859-2.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Portuguese\pt_cp1252.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Portuguese\pt_ISO-8859-1.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Portuguese\pt_ISO-8859-15.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Russian\ru_cp1251.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Russian\ru_ISO-8859-5.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Russian\ru_KOI8-R.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Slovak\sk_cp1250.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Slovak\sk_ISO-8859-2.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Spanish\es_cp1252.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Spanish\es_ISO-8859-1.hcchr
 
tools\hashcat-4.1.0\charsets\standard\Spanish\es_ISO-8859-15.hcchr
 
tools\hashcat-4.1.0\docs\changes.txt
* changes v4.0.1 -> v4.1.0

##
## Features
##

- Added option --benchmark-all to benchmark all hash-modes (not just the default selection)
- Removed option --gpu-temp-retain that tried to retain GPU temperature at X degrees celsius - please use driver-specific tools
- Removed option --powertune-enable to enable power tuning - please use driver specific tools

##
## Algorithms
##

- Added hash-mode 16000 = Tripcode
- Added hash-mode 16100 = TACACS+
- Added hash-mode 16200 = Apple Secure Notes
- Added hash-mode 16300 = Ethereum Pre-Sale Wallet, PBKDF2-SHA256
- Added hash-mode 16400 = CRAM-MD5 Dovecot
- Added hash-mode 16500 = JWT (JSON Web Token)
- Added hash-mode 16600 = Electrum Wallet (Salt-Type 1-3)

##
## Bugs
##

- Fixed a configuration setting for -m 400 in pure kernel mode which said it was capable of doing SIMD when it is not
- Fixed a hash parsing problem for 7-Zip hashes: allow a longer CRC32 data length field within the hash format
- Fixed a hash parsing problem when using --show/--left with hashes with long salts that required pure kernels
- Fixed a logic error in storing temporary progress for slow hashes, leading to invalid speeds in status view
- Fixed a mask-length check issue: return -1 in case the mask length is not within the password-length range
- Fixed a missing check for return code in case hashcat.hcstat2 was not found
- Fixed a race condition in combinator- and hybrid-mode where the same scratch buffer was used by multiple threads
- Fixed a restore issue leading to "Restore value is greater than keyspace" when mask files or wordlist folders were used
- Fixed a uninitialized value in OpenCL kernels 9720, 9820 and 10420 leading to absurd benchmark performance
- Fixed the maximum password length check in password-reassembling function
- Fixed the output of --show when $HEX[] passwords were present within the potfile

##
## Improvements
##

- OpenCL Kernels: Add a decompressing kernel and a compressing host code in order to reduce PCIe transfer time
- OpenCL Kernels: Improve performance preview accuracy in --benchmark, --speed-only and --progress-only mode
- OpenCL Kernels: Remove password length restriction of 16 for Cisco-PIX and Cisco-ASA hashes
- Terminal: Display set cost/rounds during benchmarking
- Terminal: Show [r]esume in prompt only in pause mode, and show [p]ause in prompt only in resume mode

##
## Technical
##

- Autotune: Improve autotune engine logic and synchronize results on same OpenCL devices
- Documents: Added docs/limits.txt
- Files: Copy include/ folder and its content when SHARED is set to 1 in Makefile
- Files: Switched back to relative current working directory on windows to work around problems with Unicode characters
- Hashcat Context: Fixed a memory leak in shutdown phase
- Hash Parser: Changed the way large strings are handled/truncated within the event buffer if they are too large to fit
- Hash Parser: Fixed a memory leak in shutdown phase
- Hash Parser: Fixed the use of strtok_r () calls
- OpenCL Devices: Fixed several memory leaks in shutdown phase
- OpenCL Kernels: Add general function declaration keyword (inline) and some OpenCL runtime specific exceptions for NV and CPU devices
- OpenCL Kernels: Replace variables from uXX to uXXa if used in __constant space
- OpenCL Kernels: Use a special kernel to initialize the password buffer used during autotune measurements, to reduce startup time
- OpenCL Kernels: Refactored kernel thread management from native to maximum per kernel
- OpenCL Kernels: Use three separate comparison kernels (depending on keyver) for WPA instead of one
- OpenCL Runtime: Add current timestamp to OpenCL kernel source in order to force OpenCL JiT compiler to recompile and not use the cache
- OpenCL Runtime: Enforce use of OpenCL version 1.2 to restrain OpenCL runtimes to make use of the __generic address space qualifier
- OpenCL Runtime: Updated rocm detection
- Returncode: Enforce return code 0 when the user selects --speed-only or --progress-only and no other error occurs
- Rules: Fixed some default rule-files after changing rule meaning of 'x' to 'O'
- Self Test: Skip self-test for mode 8900 - user-configurable scrypt settings are incompatible with fixed settings in the self-test hash
- Self Test: Skip self-test for mode 15700 because the settings are too high and cause startup times that are too long
- Terminal: Add workitem settings to status display (can be handy for debugging)
- Terminal: Send clear-line code to the same output stream as the message immediately following
- Timer: Switch from gettimeofday() to clock_gettime() to work around problems on cygwin
- User Options: According to getopts manpage, the last element of the option array has to be filled with zeros

* changes v4.0.0 -> v4.0.1:

##
## Improvements
##

- Changed the maximum length of the substring of a hash shown whenever the parser found a problem while parsing the hash

##
## Bugs
##

- Fixed a memory leak while parsing a wordlist
- Fixed compile of kernels on AMD systems on windows due to invalid detection of ROCm
- Fixed compile of sources using clang under MSYS2
- Fixed overlapping memory segment copy in CPU rule engine if using a specific rule function
- Fixed a parallel build problem when using the "install" Makefile target
- Fixed the version number extraction for github releases which do not including the .git directory

* changes v3.6.0 -> v4.0.0:

##
## Features
##

- Added support to crack passwords and salts up to length 256
- Added option --optimized-kernel-enable to use faster kernels but limit the maximum supported password- and salt-length
- Added self-test functionality to detect broken OpenCL runtimes on startup
- Added option --self-test-disable to disable self-test functionality on startup
- Added option --wordlist-autohex-disable to disable the automatical conversion of $HEX[] words from the word list
- Added option --example-hashes to show an example hash for each hash-mode
- Removed option --weak-hash-check (zero-length password check) to increase startup time, it also causes many Trap 6 error on macOS

##
## Algorithms
##

- Added hash-mode 2500 = WPA/WPA2 (SHA256-AES-CMAC)
- Added hash-mode 2501 = WPA/WPA2 PMK

##
## Bugs
##

- Fixed a buffer overflow in mangle_dupechar_last function
- Fixed a calculation error in get_power() leading to errors of type "BUG pw_add()!!"
- Fixed a memory problem that occured when the OpenCL folder was not found and e.g. the shared and session folder were the same
- Fixed a missing barrier() call in the RACF OpenCL kernel
- Fixed a missing salt length value in benchmark mode for SIP
- Fixed an integer overflow in hash buffer size calculation
- Fixed an integer overflow in innerloop_step and innerloop_cnt variables
- Fixed an integer overflow in masks not skipped when loaded from file
- Fixed an invalid optimization code in kernel 7700 depending on the input hash, causing the kernel to loop forever
- Fixed an invalid progress value in status view if words from the base wordlist get rejected because of length
- Fixed a parser error for mode -m 9820 = MS Office <= 2003 $3, SHA1 + RC4, collider #2
- Fixed a parser error in multiple modes not checking for return code, resulting in negative memory index writes
- Fixed a problem with changed current working directory, for instance by using --restore together with --remove
- Fixed a problem with the conversion to the $HEX[] format: convert/hexify also all passwords of the format $HEX[]
- Fixed the calculation of device_name_chksum; should be done for each iteration
- Fixed the dictstat lookup if nanoseconds are used in timestamps for the cached files
- Fixed the estimated time value whenever the value is very large and overflows
- Fixed the output of --show when used together with the collider modes -m 9710, 9810 or 10410
- Fixed the parsing of command line options. It doesn't show two times the same error about an invalid option anymore
- Fixed the parsing of DCC2 hashes by allowing the "#" character within the user name
- Fixed the parsing of descrypt hashes if the hashes do have non-standard characters within the salt
- Fixed the use of --veracrypt-pim option. It was completely ignored without showing an error
- Fixed the version number used in the restore file header

##
## Improvements
##

- Autotune: Do a pre-autotune test run to find out if kernel runtime is above some TDR limit
- Charset: Add additional DES charsets with corrected parity
- OpenCL Buffers: Do not allocate memory for amplifiers for fast hashes, it's simply not needed
- OpenCL Kernels: Improved performance of SHA-3 Kernel (keccak) by hardcoding the 0x80 stopbit
- OpenCL Kernels: Improved rule engine performance by 6% on for NVidia
- OpenCL Kernels: Move from ld.global.v4.u32 to ld.const.v4.u32 in _a3 kernels
- OpenCL Kernels: Replace bitwise swaps with rotate() versions for AMD
- OpenCL Kernels: Rewritten Keccak kernel to run fully on registers and partially reversed last round
- OpenCL Kernels: Rewritten SIP kernel from scratch
- OpenCL Kernels: Thread-count is set to hardware native count except if -w 4 is used then OpenCL maximum is used
- OpenCL Kernels: Updated default scrypt TMTO to be ideal for latest NVidia and AMD top models
- OpenCL Kernels: Vectorized tons of slow kernels to improve CPU cracking speed
- OpenCL Runtime: Improved detection for AMD and NV devices on macOS
- OpenCL Runtime: Improved performance on Intel MIC devices (Xeon PHI) on runtime level (300MH/s to 2000MH/s)
- OpenCL Runtime: Updated AMD ROCm driver version check, warn if version < 1.1
- Show cracks: Improved the performance of --show/--left if used together with --username
- Startup: Add visual indicator of active options when benchmarking
- Startup: Check and abort session if outfile and wordlist point to the same file
- Startup: Show some attack-specific optimizer constraints on start, eg: minimum and maximum support password- and salt-length
- WPA cracking: Improved nonce-error-corrections mode to use a both positive and negative corrections

##
## Technical
##

- General: Update C standard from c99 to gnu99
- Hash Parser: Improved salt-length checks for generic hash modes
- HCdict File: Renamed file from hashcat.hcdict to hashcat.hcdict2 and add header because versions are incompatible
- HCstat File: Add code to read LZMA compressed hashcat.hcstat2
- HCstat File: Add hcstat2 support to enable masks of length up to 256, also adds a filetype header
- HCstat File: Renamed file from hashcat.hcstat to hashcat.hcstat2 and add header because versions are incompatible
- HCtune File: Remove apple related GPU entries to workaround Trap 6 error
- OpenCL Kernels: Added code generator for most of the switch_* functions and replaced existing code
- OpenCL Kernels: Declared all include functions as static to reduce binary kernel cache size
- OpenCL Kernels: On AMD GPU, optimized kernels for use with AMD ROCm driver
- OpenCL Kernels: Removed some include functions that are no longer needed to reduce compile time
- OpenCL Runtime: Fall back to 64 threads default (from 256) on AMD GPU to prevent creating too many workitems
- OpenCL Runtime: Forcing OpenCL 1.2 no longer needed. Option removed from build options
- OpenCL Runtime: On AMD GPU, recommend AMD ROCm driver for Linux
- Restore: Fixed the version number used in the restore file header
- Time: added new type for time measurements hc_time_t and related functions to force the use of 64 bit times

* changes v3.5.0 -> v3.6.0:

##
## Algorithms
##

- Added hash-mode   600 = BLAKE2-512
- Added hash-mode 15200 = Blockchain, My Wallet, V2
- Added hash-mode 15300 = DPAPI masterkey file v1 and v2
- Added hash-mode 15400 = ChaCha20
- Added hash-mode 15500 = JKS Java Key Store Private Keys (SHA1)
- Added hash-mode 15600 = Ethereum Wallet, PBKDF2-HMAC-SHA256
- Added hash-mode 15700 = Ethereum Wallet, PBKDF2-SCRYPT

##
## Features
##

- 7-Zip cracking: increased max. data length to 320k and removed AES padding attack to avoid false negatives
- Dictionary cache: Show time spent on dictionary cache building at startup
- Rules: Support added for position 'p' (Nth instance of a character) in host mode (using -j or -k)
- Rules: Support added for rejection rule '_N' (reject plains of length not equal to N) in host mode
- Rules: Support added for rule 'eX'
- Wordlist encoding: Added parameters --encoding-from and --encoding-to to configure wordlist encoding handling
- Wordlist encoding: Support added for internal conversion between user-defined encodings during runtime

##
## Workarounds
##

- Workaround added for NVIDIA NVML library: If libnvidia-ml.so couldn't be loaded, try again using libnvidia-ml.so.1

##
## Improvements
##

- WPA cracking: Improved nonce-error-corrections mode to fix corrupt nonces generated on big-endian devices

##
## Bugs
##

- Fixed a condition that caused hybrid attacks using a maskfile to not select all wordlists from a wordlist folder
- Fixed a memory leak that was present when a user periodically prints hashcat status (using --status-timer)
- Fixed a missing type specifier in a function declaration of the RACF kernel

##
## Technical
##

- Building: In the binary release packages, link libiconv static for Windows binaries
- Dictstat: Structure for dictstat file changed to include --encoding-from and --encoding-to parameters
- OpenCL Runtime: Updated AMDGPU-PRO driver version check, warn if version 17.10 (known to be broken) is detected
- WPA cracking: Reduced --nonce-error-corrections default from 16 to 8 to compensate for speed drop caused by big-endian fixes

* changes v3.40 -> v3.5.0:

##
## Features
##

- WPA cracking: Added support for WPA/WPA2 handshake AP nonce automatic error correction
- WPA cracking: Added parameter --nonce-error-corrections to configure range of error correction

##
## Algorithms
##

- Added hash-mode 15100 = Juniper/NetBSD sha1crypt

##
## Improvements
##

- Abbreviate long hashes to display the Hash.Target status line within 80 characters
- Refactored internal use of esalt to sync with the number of digests instead of the number of salts
- Refactored other output to display within 80 characters without wrapping

##
## Bugs
##

- Fixed a hash validation error when trying to load Android FDE < 4.3 hashes
- Fixed a problem where --keyspace combined with custom charsets incorrectly displayed an error message
- Fixed a problem where --stdout combined with custom charsets incorrectly displayed an error message
- Fixed a problem with parsing and displaying -m 7000 = Fortigate (FortiOS) hashes
- Fixed a race condition after sessions finish, where the input-base was freed but accessed afterwards
- Fixed a typo that resulted in the minimum password length not being correctly initialized
- Fixed --outfile-format formats 11 through 15 to show the correct crack position
- Fixed --remove to apply even when all hashes are either found in the potfile or detected in weak-hash checks

##
## Technical
##

- Building: Added missing prototypes for atlassian_parse_hash function
- Dictionary Cache: Split long status line into multiple lines to stay < 80 chars
- Files: Detect and error when users try to use -r with a parameter which is not a file
- HCCAPX Parser: Added support for a special bit (bit 8) of the message_pair that indicates if replay counters match
- Parameter: Detect and error when users try to use an empty string (length 0) for parameters like --session=
- Parameter: Detect and error when users try to use non-digit input when only digits are expected
- Sessions: Improved string comparison in case user sets --session to "hashcat"
- Status View: Add rejected counter to machine-readable output
- Status View: Rename labels Input.Mode, Input.Base, ... to Guess.Mode, Guess.Base, ...
- Status View: Added a visual indicator to the status screen when checkpoint quit has been requested
- Versions: Changed version naming convention from x.yz to x.y.z

* changes v3.30 -> v3.40:

##
## Features
##

- Added support for loading hccapx files
- Added support for filtering hccapx message pairs using --hccapx-message-pair
- Added support for parsing 7-Zip hashes with LZMA/LZMA2 compression indicator set to a non-zero value
- Added support for decompressing LZMA1/LZMA2 data for -m 11600 = 7-Zip to validate the CRC
- Added support for automatic merge of LM halfes in case --show and --left is used
- Added support for showing all user names with --show and --left if --username was specified
- Added support for GPU temperature management on cygwin build

##
## Algorithms
##

- Added hash-mode  1411 = SSHA-256(Base64), LDAP {SSHA256}
- Added hash-mode  3910 = md5(md5($pass).md5($salt))
- Added hash-mode  4010 = md5($salt.md5($salt.$pass))
- Added hash-mode  4110 = md5($salt.md5($pass.$salt))
- Added hash-mode  4520 = sha1($salt.sha1($pass))
- Added hash-mode  4522 = PunBB
- Added hash-mode  7000 = Fortigate (FortiOS)
- Added hash-mode 12001 = Atlassian (PBKDF2-HMAC-SHA1)
- Added hash-mode 14600 = LUKS
- Added hash-mode 14700 = iTunes Backup < 10.0
- Added hash-mode 14800 = iTunes Backup >= 10.0
- Added hash-mode 14900 = Skip32
- Added hash-mode 15000 = FileZilla Server >= 0.9.55

##
## Workarounds
##

- Workaround added for AMDGPU-Pro OpenCL runtime: AES encrypt and decrypt Invertkey function was calculated wrong in certain cases
- Workaround added for AMDGPU-Pro OpenCL runtime: RAR3 kernel require a volatile variable to work correctly
- Workaround added for Apple OpenCL runtime: bcrypt kernel requires a volatile variable because of a compiler optimization bug
- Workaround added for Apple OpenCL runtime: LUKS kernel requires some volatile variables because of a compiler optimization bug
- Workaround added for Apple OpenCL runtime: TrueCrypt kernel requires some volatile variables because of a compiler optimization bug
- Workaround added for NVidia OpenCL runtime: RACF kernel requires EBCDIC lookup to be done on shared memory

##
## Bugs
##

- Fixed a problem within the Kerberos 5 TGS-REP (-m 13100) hash parser
- Fixed clEnqueueNDRangeKernel(): CL_UNKNOWN_ERROR caused by an invalid work-item count during weak-hash-check
- Fixed cracking of PeopleSoft Token (-m 13500) if salt length + password length is >= 128 byte
- Fixed cracking of Plaintext (-m 99999) in case MD4 was used in a previous session
- Fixed DEScrypt cracking in BF mode in case the hashlist contains more than 16 times the same salt
- Fixed duplicate detection for WPA handshakes with the same ESSID
- Fixed nvapi datatype definition for NvS32 and NvU32
- Fixed overflow in bcrypt kernel in expand_key() function
- Fixed pointer to local variable outside scope in case -j or -k is used
- Fixed pointer to local variable outside scope in case --markov-hcstat is not used
- Fixed recursion in loopback handling when session was aborted by the user
- Fixed rule 'O' (RULE_OP_MANGLE_OMIT) in host mode in case the offset + length parameter equals the length of the input word
- Fixed rule 'i' (RULE_OP_MANGLE_INSERT) in host mode in case the offset parameter equals the length of the input word
- Fixed string not null terminated inside workaround for checking drm driver path
- Fixed string not null terminated while reading maskfiles
- Fixed truncation of password after position 32 with the combinator attack
- Fixed use of option --keyspace in combination with -m 2500 (WPA)
- Fixed WPA/WPA2 cracking in case eapol frame is >= 248 byte

##
## Technical
##

- Building: Add SHARED variable to Makefile to choose if hashcat is build as static or shared binary (using libhashcat.so/hashcat.dll)
- Building: Removed compiler option -march=native as this created problems for maintainers on various distributions
- Building: Removed the use of RPATH on linker level
- Building: Replaced linking of CRT_glob.o with the use of int _dowildcard
- Commandline: Do some checks related to custom-charset options if user specifies them
- CPU Affinity: Fixed memory leak in case invalid cpu Id was specified
- Dispatcher: Fixed several memory leaks in case an OpenCL error occurs
- Events: Improved the maximum event message handling. event_log () will now also internally make sure that the message is properly terminated
- File Locking: Improved error detection on file locks
- File Reads: Fixed memory leak in case outfile or hashfile was not accessible
- File Reads: Improved error detection on file reads, especially when getting the file stats
- Files: Do several file and folder checks on startup rather than when they are actually used to avoid related error after eventual intense operations
- Hardware Management: Bring back kernel exec timeout detection for NVidia on user request
- Hardware Monitor: Fixed several memory leaks in case hash-file writing (caused by --remove) failed
- Hardware Monitor: Fixed several memory leaks in case no hardware monitor sensor is found
- Hardware Monitor: In case NVML initialization failed, do not try to initialiaze NVAPI or XNVCTRL because they both depend on NVML
- Hash Parsing: Added additional bound checks for the SIP digest authentication (MD5) parser (-m 11400)
- Hash Parsing: Make sure that all files are correctly closed whenever a hash file parsing error occurs
- Helper: Added functions to check existence, type, read- and write-permissions and rewrite sources to use them instead of stat()
- Keyfile handling: Make sure that the memory is cleanly freed whenever a VeraCrypt/TrueCrypt keyfile fails to load
- Mask Checks: Added additional memory cleanups after parsing/verifying masks
- Mask Checks: Added integer overflow detection for a keyspace of a mask provided by user
- Mask Increment: Fixed memory leak in case mask_append() fails
- OpenCL Device: Do a check on available constant memory size and abort if it's less than 64kB
- OpenCL Device Management: Fixed several memory leaks in case initialization of an OpenCL device or platform failed
- OpenCL Header: Updated CL_* errorcode to OpenCL 1.2 standard
- OpenCL Kernel: Move kernel binary buffer from heap to stack memory
- OpenCL Kernel: Refactored read_kernel_binary to load only a single kernel for a single device
- OpenCL Kernel: Remove "static" keyword from function declarations; Causes older Intel OpenCL runtimes to fail compiling
- OpenCL Kernel: Renumbered hash-mode 7600 to 4521
- OpenCL Runtime: Added a warning about using Mesa OpenCL runtime
- OpenCL Runtime: Updated AMDGPU-Pro driver version check, do warn if version 16.60 is detected which is known to be broken
- Outfile Check: Fixed a memory leak for failed outfile reads
- Restore: Add some checks on the rd->cwd variable in restore case
- Rule Engine: Fixed several memory leaks in case loading of rules failed
- Session Management: Automatically set dedicated session names for non-cracking parameters, for example: --stdout
- Session Management: Fixed several memory leaks in case profile- or install-folder setup failed
- Sessions: Move out handling of multiple instance from restore file into separate pidfile
- Status screen: Do not try to clear prompt in --quiet mode
- Tests: Fixed the timeout status code value and increased the runtime to 400 seconds
- Threads: Restored strerror as %m is unsupported by the BSDs
- Wordlists: Disable dictstat handling for hash-mode 3000 as it virtually creates words in the wordlist which is not the case for other modes
- Wordlists: Fixed memory leak in case access a file in a wordlist folder fails
- WPA: Changed format for outfile and potfile from essid:mac1:mac2 to hash:mac_ap:mac_sta:essid
- WPA: Changed format for outfile_check from essid:mac1:mac2 to hash

* changes v3.20 -> v3.30:

##
## Features
##

- Files: Use $HEX[...] in case the password includes the separater character, increases potfile reading performance
- Files: If the user specifies a folder to scan for wordlists instead of directly a wordlist, then ignore the hidden files
- Loopback: Include passwords for removed hashes present in the potfile to next loopback iteration
- New option --progress-only: Quickly provides ideal progress step size and time to process on the user hashes and selected options, then quit
- Status screen: Reenabled automatic status screen display in case of stdin used
- Truecrypt/Veracrypt: Use CRC32 to verify headers instead of fuzzy logic, greatly reduces false positives from 18:2^48 to 3:2^64
- WPA cracking: Reuse PBKDF2 intermediate keys if duplicate essid is detected

##
## Algorithms
##

- Added hash-mode 1300 = SHA-224

##
## Bugs
##

- Fixed buffer overflow in status screen display in case of long non-utf8 string
- Fixed buffer overflow in plaintext parsing code: Leading to segfault
- Fixed custom char parsing code in maskfiles in --increment mode: Custom charset wasn't used
- Fixed display screen to show input queue when using custom charset or rules
- Fixed double fclose() using AMDGPU-Pro on sysfs compatible platform: Leading to segfault
- Fixed hash-mode 11400 = SIP digest authentication (MD5): Cracking of hashes which did not include *auth* or *auth-int* was broken
- Fixed hex output of plaintext in case --outfile-format 4, 5, 6 or 7 was used
- Fixed infinite loop when using --loopback in case all hashes have been cracked
- Fixed kernel loops in --increment mode leading to slower performance
- Fixed mask length check in hybrid attack-modes: Do not include hash-mode dependant mask length checks
- Fixed parsing of hashes in case the last line did not include a linefeed character
- Fixed potfile loading to accept blank passwords
- Fixed runtime limit: No longer required so sample startup time after refactorization

##
## Workarounds
##

- Workaround added for Intel OpenCL runtime: GPU support is broken, skip the device unless user forces to enable it

##
## Technical
##

- Building: Added hashcat32.dll and hashcat64.dll makefile targets for building hashcat windows libraries
- Building: Added production flag in Makefile to disable all the GCC compiler options needed only for development
- Building: Removed access to readlink() on FreeBSD
- Building: For CYGWIN prefer to use "opencl.dll" (installed by drivers) instead of optional "cygOpenCL-1.dll"
- Events: Added new event EVENT_WEAK_HASH_ALL_CRACKED if all hashes have been cracked during weak hash check
- Hardware management: Switched matching ADL device with OpenCL device by using PCI bus, device and function
- Hardware management: Switched matching NvAPI device with OpenCL device by using PCI bus, device and function
- Hardware management: Switched matching NVML device with OpenCL device by using PCI bus, device and function
- Hardware management: Switched matching xnvctrl device with OpenCL device by using PCI bus, device and function
- Hardware management: Removed *throttled* message from NVML as this created more confusion than it helped
- Hash Parser: Improved error detection of invalid hex characters where hex character are expected
- OpenCL Runtime: Updated AMDGPU-Pro driver version check, do warn if version 16.50 is detected which is known to be broken
- OpenCL Runtime: Updated hashcat.hctune for Iris Pro GPU on macOS
- Potfile: In v3.10 already, the default potfile suffix changed but the note about was missing. The "hashcat.pot" became "hashcat.potfile"
- Potfile: Added old potfile detection, show warning message
- Returncode: Added dedicated returncode (see docs/status_codes.txt) for shutdowns caused by --runtime and checkpoint keypress
- Sanity: Added sanity check to disallow --speed-only in combination with -i
- Sanity: Added sanity check to disallow --loopback in combination with --runtime
- Threads: Replaced all calls to ctime() with ctime_r() to ensure thread safety
- Threads: Replaced all calls to strerror() with %m printf() GNU extension to ensure thread safety

* changes v3.10 -> v3.20:

The hashcat core was completely refactored to be a MT-safe library (libhashcat).
The goal was to help developers include hashcat into distributed clients or GUI frontends.
The CLI (hashcat.bin or hashcat.exe) works as before but from a technical perspective it's a library frontend.

##
## Features
##

- New option --speed-only: Quickly provides cracking speed per device based on the user hashes and selected options, then quit
- New option --keep-guessing: Continue cracking hashes even after they have been cracked (to find collisions)
- New option --restore-file-path: Manually override the path to the restore file (useful if we want all session files in the same folder)
- New option --opencl-info: Show details about OpenCL compatible devices like an embedded clinfo tool (useful for bug reports)
- Documents: Added colors for warnings (yellow) and errors (red) instead of WARNING: and ERROR: prefix
- Documents: Added hints presented to the user about optimizing performance while hashcat is running
- Hardware management: Support --gpu-temp-retain for AMDGPU-Pro driver
- Hardware management: Support --powertune-enable for AMDGPU-Pro driver
- Password candidates: Allow words of length > 31 in wordlists for -a 0 for some slow hashes if no rules are in use
- Password candidates: Do not use $HEX[] if the password candidate is a valid UTF-8 string and print out as-is
- Pause mode: Allow quit program also if in pause mode
- Pause mode: Ignore runtime limit in pause mode
- Status view: Show core-clock, memory-clock and execution time in benchmark-mode in case --machine-readable is activated
- Status view: Show temperature, coreclock, memoryclock, fanspeed and pci-lanes for devices using AMDGPU-Pro driver
- Status view: Show the current first and last password candidate test queued for execution per device (as in JtR)
- Status view: Show the current position in the queue for both base and modifier (Example: Wordlist 2/5)
- Markov statistics: Update hashcat.hcstat which is used as reference whenever the user defines a mask
- Charsets: Added lowercase ascii hex (?h) and uppercase ascii hex (?H) as predefined charsets

##
## Algorithms
##

- Added hash-mode 14000 = DES (PT = $salt, key = $pass)
- Added hash-mode 14100 = 3DES (PT = $salt, key = $pass)
- Added hash-mode 14400 = SHA1(CX)
- Added hash-mode 99999 = Plaintext
- Extended hash-mode 3200 = bcrypt: Accept signature $2b$ (February 2014)
- Improved hash-mode 8300 = DNSSEC: Additional parsing error detection

##
## Bugs
##

- Custom charset from file parsing code did not return an error if an error occured
- Fix some clSetKernelArg() size error that caused slow modes to not work anymore in -a 1 mode
- Hash-mode 11600 = (7-Zip): Depending on input hash a clEnqueueReadBuffer(): CL_INVALID_VALUE error occured
- Hash-mode 22 = Juniper Netscreen/SSG (ScreenOS): Fix salt length for -m 22 in benchmark mode
- Hash-Mode 5500 = NetNTLMv1 + ESS: Fix loading of NetNTLMv1 + SSP hash
- Hash-mode 6000 = RipeMD160: Fix typo in array index number
- If cracking a hash-mode using unicode passwords, length check of a mask was not taking into account
- If cracking a large salted hashlist the wordlist reject code was too slow to handle it, leading to 0H/s
- Null-pointer dereference in outfile-check shutdown code when using --outfile-check-dir, leading to segfault
- On startup hashcat tried to access the folder defined in INSTALL_FOLDER, leading to segfault if that folder was not existing
- Random rules generator code used invalid parameter for memory copy function (M), leading to use of invalid rule
- Sanity check for --outfile-format was broken if used in combination with --show or --left

##
## Workarounds
##

- Workaround added for AMDGPU-Pro OpenCL runtime: Failed to compile hash-mode 10700 = PDF 1.7 Level 8
- Workaround added for AMDGPU-Pro OpenCL runtime: Failed to compile hash-mode 1800 = sha512crypt
- Workaround added for NVidia OpenCL runtime: Failed to compile hash-mode 6400 = AIX {ssha256}
- Workaround added for NVidia OpenCL runtime: Failed to compile hash-mode 6800 = Lastpass + Lastpass sniffed
- Workaround added for macOS OpenCL runtime: Failed to compile hash-mode 10420 = PDF 1.1 - 1.3 (Acrobat 2 - 4)
- Workaround added for macOS OpenCL runtime: Failed to compile hash-mode 1100 = Domain Cached Credentials (DCC), MS Cache
- Workaround added for macOS OpenCL runtime: Failed to compile hash-mode 13800 = Windows 8+ phone PIN/Password
- Workaround added for pocl OpenCL runtime: Failed to compile hash-mode 5800 = Android PIN

##
## Performance
##

- Improved performance for rule-based attacks for _very_ fast hashes like MD5 and NTLM by 30% or higher
- Improved performance for DEScrypt on AMD, from 373MH/s to 525MH/s
- Improved performance for raw DES-based algorithms (like LM) on AMD, from 1.6GH/s to 12.5GH/s
- Improved performance for raw SHA256-based algorithms using meet-in-the-middle optimization, reduces 7/64 steps
- Improved performance for SAP CODVN B (BCODE) and SAP CODVN F/G (PASSCODE) due to register handling optimization, gives 3% and 25%
- Improved performance by reducing maximum number of allowed function calls per rule from 255 to 31
- Improved performance by update the selection when to use #pragma unroll depending on OpenCL runtime vendor

- Full performance comparison sheet v3.10 vs. v3.20: https://docs.google.com/spreadsheets/d/1B1S_t1Z0KsqByH3pNkYUM-RCFMu860nlfSsYEqOoqco/edit#gid=1591672380

##
## Technical
##

- Autotune: Do not run any caching rounds in autotune in DEBUG mode if -n and -u are specified
- Bash completion: Removed some v2.01 leftovers in the bash completion configuration
- Benchmark: Do not control fan speed in benchmark mode
- Benchmark: On macOS, some hash-modes can't compile because of macOS OpenCL runtime. Skip them and move on to the next
- Building: Added Makefile target "main_shared", a small how-to-use libhashcat example
- Building: Added many additional compiler warning flags in Makefile to improve static code error detection
- Building: Added missing includes for FreeBSD
- Building: Added some types for windows only in case _BASETSD_H was not set
- Building: Changed Makefile to strip symbols in the linker instead of the compiler
- Building: Defined NOMINMAX macro to prevent definition min and max macros in stdlib header files
- Building: Enabled ASLR and DEP for Windows builds
- Building: Fixed almost all errors reported by cppcheck and scan-build
- Building: On macOS, move '-framework OpenCL' from CFLAGS to LDFLAGS
- Building: On macOS, use clang as default compiler
- Building: Support building on Msys2 environment
- Building: Use .gitmodules to simplify the OpenCL header dependency handling process
- Charsets: Added DES_full.charset
- Data Types: Replaced all integer macros with enumerator types
- Data Types: Replaced all integer variables with true bool variables in case they are used as a bool
- Data Types: Replaced all string macros with static const char types
- Data Types: Replaced all uint and uint32_t to u32
- Data Types: Replaced atoi() with atoll(). Eliminates sign conversion warnings
- Documents: Added docs/credits.txt
- Documents: Added docs/team.txt
- Documents: Changed rules.txt to match v3.20 limitations
- Error handling (file handling): Fixed a couple of filepointer leaks
- Error handling (format strings): Fixed a few printf() formats, ex: use %u instead of %d for uint32_t
- Error handling (memory allocation): Removed memory allocation checks, just print to stderr instead
- Error handling (startup): Added some missing returncode checks to get_exec_path()
- Fanspeed: Check both fanpolicy and fanspeed returncode and disable retain support if any of them fail
- Fanspeed: Minimum fanspeed for retain support increased to 33%, same as NV uses as default on windows
- Fanspeed: Reset PID controler settings to what they were initially
- Fanspeed: Set fan speed to default on quit
- File handling: Do a single write test (for files to be written later) directly on startup
- File locking: Use same locking mechanism in potfile as in outfile
- Hardware management: Fixed calling conventions for ADL, NvAPI and NVML on windows
- Hardware management: Improved checking for successfull load of the NVML API
- Hardware management: In case fanspeed can not be set, disable --gpu-temp-retain automatically
- Hardware management: In case of initialization error show it only once to the user on startup
- Hardware management: Refactored all code to return returncode (0 or -1) instead of data for more easy error handling
- Hardware management: Refactored macros to real functions
- Hardware management: Removed kernel exec timeout detection on NVIDIA, should no longer occur due to autotune
- Hardware management: Replaced NVML registry functions macros with their ascii versions (Adds NVML support for XP)
- Hashlist loading: Do not load data from hashfile if hashfile changed during runtime
- Kernel cache: Fixed checksum building on oversized device version or driver version strings
- Logging: Improved variable names in hashcat.log
- Loopback: Refactored --loopback support completely, no longer a recursive function
- Memory management: Fixed some memory leaks on shutdown
- Memory management: Got rid of all global variables
- Memory management: Got rid of local_free() and global_free(), no longer required
- Memory management: Refactored all variables with HCBUFSIZ_LARGE size from stack to heap, macOS doesn't like that
- OpenCL Headers: Select OpenCL headers tagged for OpenCL 1.2, since we use -cl-std=CL1.2
- OpenCL Kernels: Added const qualifier to variable declaration of matching global memory objects
- OpenCL Kernels: Got rid of one global kernel_threads variable
- OpenCL Kernels: Moved OpenCL requirement from v1.1 to v1.2
- OpenCL Kernels: Recognize reqd_work_group_size() values from OpenCL kernels and use them in the host if possible
- OpenCL Kernels: Refactored common function append_0x01()
- OpenCL Kernels: Refactored common function append_0x02()
- OpenCL Kernels: Refactored common function append_0x80()
- OpenCL Kernels: Refactored rule function append_block1()
- OpenCL Kernels: Refactored rule function rule_op_mangle_delete_last()
- OpenCL Kernels: Refactored rule function rule_op_mangle_dupechar_last()
- OpenCL Kernels: Refactored rule function rule_op_mangle_rotate_left()
- OpenCL Kernels: Refactored rule function rule_op_mangle_rotate_right()
- OpenCL Kernels: Support mixed kernel thread count for mixed kernels in the same source file
- OpenCL Kernels: Switch from clz() to ffz() for bitsliced algorithms
- OpenCL Kernels: Using platform vendor name is better than using device vendor name for function detection
- OpenCL Runtime: Updated AMDGPU-Pro and AMD Radeon driver version check
- OpenCL Runtime: Updated Intel OpenCL runtime version check
- OpenCL Runtime: Updated NVIDIA driver version check
- Password candidates: The maximum word length in a wordlist is 31 not 32, because 0x80 will eventually be appended
- Potfile: Base logic switched; Assuming the potfile is larger than the hashlist it's better to load hashlist instead of potfile entries
- Potfile: In case all hashes were cracking using potfile abort and inform user
- Restore: Automatically unlink restore file if all hashes have been cracked
- Restore: Do not unlink restore file if restore is disabled
- Rules: Refactored macros to real functions
- Status: Added Input.Queue.Base and Input.Queue.Mod to help the user better understand this concept
- Status: Do not wait for the progress mutex to read and store speed timer
- Status: Do not show Recovered/Time when cracking < 1000 hashes
- Status: Do not show Recovered/Time as floats but as integers to reduce over-information
- Tests: Removed rules_test/ subproject: Would require total rewrite but not used in a long time
- Threads: Replaced all calls to getpwuid() with getpwuid_r() to ensure thread safety
- Threads: Replaced all calls to gmtime() with gmtime_r() to ensure thread safety
- Threads: Replaced all calls to strtok() with strtok_r() to ensure thread safety
- Wordlists: Use larger counter variable to handle larger wordlists (that is > 2^32 words)
- X11: Detect missing coolbits and added some help text for the user how to fix it

* changes v3.00 -> v3.10:

##
## Improvements
##

- Added mask display to modes 3, 6, and 7. Allows the user to see the custom character set used during the run
- Make Linux build POSIX compatible; Also allow it to actually compile on musl-libc systems
- Add support to compile on FreeBSD
- Make use of cl_context_properties[] to clCreateContext(), even if OpenCL specification allow the use of NULL, some runtimes fail without
- The Time.Estimated attribute in status display should also show --runtime limit if user set it
- Fix some strict aliasing rule violation on older compilers
- Fix some variable initializers on older compilers
- Replace DARWIN macro with compiler predefined macro __APPLE__
- Replace LINUX macro with compiler predefined macro __linux__
- Allow the use of enc_id == 0 in hash-mode 10600 and 10700 as it takes no part in the actual computation
- Get rid of exit() calls in OpenCL wrapper library with the goal to have a better control which error can be ignored under special circumstances
- Do not error and exit if an OpenCL platform has no devices, just print a warning and continue with the next platform
- Workaround for OpenCL runtimes which do not accept -I parameter in the OpenCL kernel build options even if this is an OpenCL standard option
- Workaround for OpenCL runtimes which do accept -I parameter in the OpenCL kernel build options, but do not allow quotes
- Output cracked hashes on Windows using \r\n and not \n
- Replace RegGetValue() with RegQueryValueEx() to enable Windows XP 32 bit compatibility
- Slightly increased NVidias rule-processing performance by using generic instructions instead of byte_perm()
- Add support for @ rule (RULE_OP_MANGLE_PURGECHAR) to use on GPU
- Add support for --outfile (short -o) to be used together with --stdout
- Skip periodic status output whenever --stdout is used together with stdin mode, but no outfile was specified
- Show error message if --show is used together with --outfile-autohex-disable (this is currently not supported)
- Show error message if --skip/--limit is used together with mask files or --increment
- Workaround for NVidia OpenCL runtime bug causing -m 6223 to not crack any hashes even with the correct password candidate

##
## Bugs
##

- Fixed a bug where CRAM MD5 checked salt length instead of hash length
- Fixed a bug where hashcat is suppressing --machine-readable output in the final status update
- Fixed a bug where hashcat did not check the return of realpath() and crashes uncontrolled if the path does not exist
- Fixed a bug where hashcat crashes for accessing deallocated buffer if user spams "s" shortly before hashcat shuts down
- Fixed a bug where hashcat crashes in case of a scrypt P setting > 1
- Fixed a bug where hashcat did not correctly use the newly cracked plains whenever --loopback or the induction folder was used
- Fixed a bug where hashcat did not correctly remove hashes of type WPA/WPA2 even if present in potfile
- Fixed a bug where hashcat reported an invalid password for a zero-length password in LM
- Fixed a bug where hashcat did not take into account how long it takes to prepare a session when auto-aborting with --runtime is in use
- Fixed a bug where some kernels used COMPARE_M_SIMD instead of COMPARE_S_SIMD in singlehash mode

##
## Algorithms
##

- Added new hash-mode 13900 = OpenCart

* changes v2.01 -> v3.00:

This release markes the fusion of "hashcat" and "oclHashcat" into "hashcat".
It combines all features of all hashcat projects in one project.

##
## Features
##

- Support for Apple OpenCL runtime
- Support for NVidia OpenCL runtime (replaces CUDA)
- Support for Mesa (Gallium) OpenCL runtime
- Support for pocl OpenCL runtime
- Support for Khronos' OSS OpenCL reference implementation for building
- Support to utilize OpenCL devices-types other than GPU, ex: CPU and FPGA
- Support to utilize multiple different OpenCL platforms in parallel, ex: AMD + NV
- Support to utilize multiple different OpenCL device-types in parallel, ex: GPU + CPU
- Added option --opencl-platform to select a specific OpenCL platform
- Added option --opencl-device-types select specific OpenCL device types
- Added option --opencl-vector-width to override automatically selected vector-width size
- Added makefile native compilation target
- Added makefile install and uninstall targets
- Added autotuning engine and user-configurable tuning database
- Added current engine clock, current memory clock and pci-e lanes to the status display
- Added support for --gpu-temp-retain for NVidia GPU, both Linux and Windows
- Added execution timer of the running kernel to the status display
- Added command prompt to quit at next restore checkpoint
- Added human-readable error message for the OpenCL error codes
- Added option --potfile-path to override potfile path
- Added option --veracrypt-keyfile to set Keyfiles used, can be multiple
- Added option --veracrypt-pim to set the VeraCrypt personal iterations multiplier
- Added option --machine-readable for easier parsing of output
- Added option --powertune-enable to work with NVidia devices as well, not just AMD
- Added option --stdout to print candidates instead of trying to crack a hash

##
## Algorithms
##

- Added new hash-mode   125 = ArubaOS
- Added new hash-mode 12900 = Android FDE (Samsung DEK)
- Added new hash-mode 13000 = RAR5
- Added new hash-mode 13100 = Kerberos 5 TGS-REP etype 23
- Added new hash-mode 13200 = AxCrypt
- Added new hash-mode 13300 = AxCrypt in memory SHA1
- Added new hash-mode 13400 = Keepass 1 (AES/Twofish) and Keepass 2 (AES)
- Added new hash-mode 13500 = PeopleSoft PS_TOKEN
- Added new hash-mode 13600 = WinZip
- Added new hash-mode 137** = VeraCrypt
- Added new hash-mode 13800 = Windows 8+ phone PIN/Password

##
## Performance
##

- Full Table: https://docs.google.com/spreadsheets/d/1B1S_t1Z0KsqByH3pNkYUM-RCFMu860nlfSsYEqOoqco/edit#gid=0

##
## Improvements
##

- Reordering of files to help integration into linux distributions ~/.hashcat etc
- Use a profile directory to write temporary files (session, potfile etc.)
- Workaround dependencies on AMD APP-SDK AMD ADL, NV CUDA-SDK, NV ForceWare, NVML and NVAPI; they are no longer required
- Load external libraries dynamic at runtime instead of link them static at compile-time
- Benchmark accuracy improved; Is now on par to: singlehash -a 3 -w 3 ?b?b?b?b?b?b?b
- Benchmark no longer depends on a fixed time
- Removed option --benchmark-mode, therefore support --workload-profile in benchmark-mode
- Enabled support of --machine-readable in combination with --benchmark for automated benchmark processing
- Replaced --status-automat entirely with --machine-readable to make it more consistent among benchmark and non-benchmark mode
- Extended support from 14 to 255 functions calls per rule
- Extended password length up to 32 for 7zip
- Extended salt length up to 55 for raw hash types, eg: md5($pass.$salt)
- Extended version information
- Removed some duplicate rules in T0XlCv1, d3ad0ne and dive
- Redesigned changes.txt layout
- Redesigned --help menu layout

##
## Bugs
##

- Fixed a bug in speed display: In some situation, especially with slow hashes or lots of salts, it showed a speed of 0H/s
- Fixed a bug in restore handling: user immediately aborting after restart broke the restore file
- Fixed a bug in line counter: conditional jump or move depends on an uninitialised value
- Fixed a bug in rule-engine for NVidia devices: code for left- and right-shift were switched
- Fixed a bug in dive.rule: rules were not updated after the function 'x' was renamed to 'O'
- Fixed a bug in memory allocation "OpenCL -4 error": used unitialized value in a special situation
- Fixed a bug in memory handling: heap buffer overflow
- Fixed a bug in memory handling: out of bounds access
- Fixed a bug in implementation of DCC2: forced default iteration count for hashes to 10240
- Fixed a bug in implementation of WPA/WPA2: MAC and nonce stay one their original position as in the hccap file
- Fixed a bug in implementation of GOST R 34.11-94: zero length passwords were not cracked
- Fixed a bug in implementation of BLAKE2-512 kernels: incorrect access of the esalt buffer

##
## Technical
##

- Removed deprecated GCC version check requirement
- Removed NPROCS from Makefile, let make automatically detect the optimal number of parallel threads
- Dropped all C++ overloading functions to normal function which helps support more OpenCL platforms
- Renamed functions in common.h to emphasize their purpose
- Refactorized fast-hash kernels to enable SIMD on all OpenCL platforms
- Refactorized SIMD handling: SIMD the inner-loop not the outer-loop to save registers
- Workaround missing clEnqueueFillBuffer() support in certain OpenCL runtimes
- Added amd_bytealign() support in non-AMD OpenCL runtimes
- Added amd_bfe() support in non-AMD OpenCL runtimes
- Added several macros to allow writing optimized code for the different OpenCL platforms
- Replaced typedef for bool with stdbool.h
- Added special DEBUG environment variables to the makefile
- Hashcat now acquires an exclusive lock before writing to any file
- Changed buffers to not use same buffer for both input and output at the same time with snprintf()
- Check for allocatable device-memory depending on kernel_accel amplifier before trying to allocate
- Added additional check for max. ESSID length to prevent possible crashes
- Use a GCC equivalent for __stdcall where applicable
- Synchronize maximum output line size with input line size
- Increased maximum hash line size to 0x50000
- Run weak-hash checks only in straight-attack mode, this greatly reduces code complexity
- Restrict loopback option to straight attack-mode
- Moved rules_optimize to hashcat-utils
- Stick to older libOpenCL in binary package to avoid errors like this: version `OPENCL_2.0' not found
- Tightened hash parser for several algorithms
- Updated old RC4 code in Kerberos 5
- Limited the salt length of Juniper Netscreen/SSG (ScreenOS) hashes to 10
- Updated algorithm used to automatically select an ideal --scrypt-tmto value
- Renamed option --gpu-accel to --kernel-accel
- Renamed option --gpu-loops to --kernel-loops
- Renamed option --gpu-devices to --opencl-devices
- Added inline declaration to functions from simd.c, common.c, rp.c and types_ocl.c to increase performance
- Dropped static declaration from functions in all kernel to achieve OpenCL 1.1 compatibility
- Added -cl-std=CL1.1 to all kernel build options
- Created environment variable to inform NVidia OpenCL runtime to not create its own kernel cache
- Created environment variable to inform pocl OpenCL runtime to not create its own kernel cache
- Dropped special 64-bit rotate() handling for NV, it seems that they've added it to their OpenCL runtime
- Completely get rid of HAVE_ADL, HAVE_NVML and HAVE_NVAPI in sources
- Replaced NVAPI with NVML on windows
tools\hashcat-4.1.0\docs\contact.txt
web: https://hashcat.net
irc: freenode #hashcat
tools\hashcat-4.1.0\docs\credits.txt
# hashcat and its predecessors has been developed and is maintained by:

Jens "atom" Steube <[email protected]> (@hashcat)

# The following persons made code contributions to hashcat:

Philipp "philsmd" Schmidt <[email protected]> (@philsmd)

* Multiple kernel modules
* Hardware monitor maintenance
* Test Suite maintenance
* Makefile maintenance
* Potfile feature
* Maskfile feature
* Induction directory feature
* Loopback file feature
* Userinput sanity checks

Gabriele "matrix" Gristina <[email protected]> (@gm4tr1x)

* Apple macOS port
* Hardware monitor initial code base
* Test suite initial code base
* Makefiles initial code base
* Multithreading initial code base
* Benchmarks initial code base
* Offline OpenCL Kernel Compiler support

Jean-Christophe "Fist0urs" Delaunay <[email protected]> (@Fist0urs)

* Kerberos TGS Rep enctype 23 kernel module
* AxCrypt kernel module
* KeePass kernel module
* DPAPImk v1 and v2 kernel module

Other contributors to hashcat

* A full list and their commits can be found here:
  https://github.com/hashcat/hashcat/graphs/contributors

# Furthermore the following persons helped the project:

Martin "purehate" Bos <[email protected]> (@cantcomputer)

* For the first person presenting hashcat in his talks and tutorials to a larger audience
* For pushing hashcat to Kali

Jeremi "epixoip" Gosney <[email protected] (@jmgosney)

* For his continuous work pushing hashcat to run on large clusters
* For moderating the hashcat forum
* For helping tons of new users find their way into the hashcat universe

Per Thorsheim <[email protected]> (@thorsheim)

* For running the "PasswordsCon" conference, first of its kind
* For convincing me to speak publicly about my work

Rick "Minga" Redman and KoreLogic <[email protected]> (@CrackMeIfYouCan)

* For running the "Crack Me If You Can" password cracking contest, first of its kind
* For pushing password cracking techniques forward

!!! All the package maintainer of hashcat !!!

tools\hashcat-4.1.0\docs\license.txt
The MIT License (MIT)

Copyright (c) 2015-2018 Jens Steube

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

tools\hashcat-4.1.0\docs\limits.txt
##
## Maximum password lengths vary depending on kernel, hash type, and encoding
##

See https://hashcat.net/faq/lengths

##
## Generic hash modes only support salt lengths up to 256
##

This limitation on salt lengths only affects generic hash modes, such as md5(pass.salt).

Dedicated hash modes allow unlimited salt length support.

##
## File and folder names including UTF-16 characters are not supported
##

UTF-16 is mostly seen on Windows. UTF-8 (as mostly used on Linux and macOS) are fine.

Important: That does not mean UTF-16 file content, which is fully supported. 

It only means the filename itself.

##
## The use of --keep-guessing eventually skips reporting duplicate passwords
##

This does not mean that valid passwords are skipped; they are always reported.

Only if you hit the same password twice for the same hash the password may be shown only once.

If --keep-guessing is not used, this can not occur.

This limitation cannot be fixed, because it would require too much device (GPU/CPU) memory.

If we wanted to report back all possible password candidates executed in a single kernel invocation, it would require this much memory:

Number-of-MCU * Max-threads-per-device * Max-accel * Max-inner-loops * sizeof (plain_t)

For example, on a Vega64: 64 * 512 * 1024 * 1024 * 20 = 687,194,767,360 bytes

##
## Hashcat GPU memory usage may be limited by maximum allocation sizes of OpenCL drivers
##

Most hashcat hash modes only use a single OpenCL allocation. 

The size of this allocation is limited by GPU drivers / OpenCL runtimes. 

Only a few modes (like scrypt) make more than one allocation.

##
## The maximum number of functions per rule is limited to 31
##

This makes the size of one rule 128 byte. 

On the other hand, there is a 25% OpenCL single allocation memory limit.

A typical GPU of today has 8GB = 2GB/128 = 16M rules max

If hashcat supported more functions per rule, it would be limited to fewer rules. 

This is a trade-off game.

##
## Position identifiers in rules are limited to 36
##

The upper limit of maximum 36 positions for various rule functions (0-9, A-Z) was a design decision by the original authors of the rule engine.

tools\hashcat-4.1.0\docs\performance.txt
Performance Notes:
==================

- Always Use the latest display driver
- To significantly improve performance use -w 3

Also read this:

https://hashcat.net/wiki/doku.php?id=frequently_asked_questions#how_to_create_more_work_for_full_speed

tools\hashcat-4.1.0\docs\readme.txt
hashcat v4.1.0
==============

AMD GPUs on Linux require "RadeonOpenCompute (ROCm)" Software Platform (1.6.180 or later)
AMD GPUs on Windows require "AMD Radeon Software Crimson Edition" (15.12 or later)
Intel CPUs require "OpenCL Runtime for Intel Core and Intel Xeon Processors" (16.1.1 or later)
Intel GPUs on Linux require "OpenCL 2.0 GPU Driver Package for Linux" (2.0 or later)
Intel GPUs on Windows require "OpenCL Driver for Intel Iris and Intel HD Graphics"
NVIDIA GPUs require "NVIDIA Driver" (367.x or later)

##
## Features
##

- World's fastest password cracker
- World's first and only in-kernel rule engine
- Free
- Open-Source (MIT License)
- Multi-OS (Linux, Windows and macOS)
- 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)
- Supports distributed cracking networks (using overlay)
- Supports interactive pause / resume
- Supports sessions
- Supports restore
- Supports reading password candidates from file and stdin
- Supports hex-salt and hex-charset
- Supports automatic performance tuning
- Supports automatic keyspace ordering markov-chains
- Built-in benchmarking system
- Integrated thermal watchdog
- 200+ Hash-types implemented with performance in mind

##
## Hash-Types
##

- MD4
- MD5
- Half MD5
- SHA1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
- SHA-3 (Keccak)
- BLAKE2b-512
- SipHash
- RIPEMD-160
- Whirlpool
- GOST R 34.11-94
- GOST R 34.11-2012 (Streebog) 256-bit
- GOST R 34.11-2012 (Streebog) 512-bit
- md5($pass.$salt)
- md5($salt.$pass)
- md5(utf16le($pass).$salt)
- md5($salt.utf16le($pass))
- md5($salt.$pass.$salt)
- md5($salt.md5($pass))
- md5($salt.md5($salt.$pass))
- md5($salt.md5($pass.$salt))
- md5(md5($pass))
- md5(md5($pass).md5($salt))
- md5(strtoupper(md5($pass)))
- md5(sha1($pass))
- sha1($pass.$salt)
- sha1($salt.$pass)
- sha1(utf16le($pass).$salt)
- sha1($salt.utf16le($pass))
- sha1(sha1($pass))
- sha1($salt.sha1($pass))
- sha1(md5($pass))
- sha1($salt.$pass.$salt)
- sha1(CX)
- sha256($pass.$salt)
- sha256($salt.$pass)
- sha256(utf16le($pass).$salt)
- sha256($salt.utf16le($pass))
- sha512($pass.$salt)
- sha512($salt.$pass)
- sha512(utf16le($pass).$salt)
- sha512($salt.utf16le($pass))
- HMAC-MD5 (key = $pass)
- HMAC-MD5 (key = $salt)
- HMAC-SHA1 (key = $pass)
- HMAC-SHA1 (key = $salt)
- HMAC-SHA256 (key = $pass)
- HMAC-SHA256 (key = $salt)
- HMAC-SHA512 (key = $pass)
- HMAC-SHA512 (key = $salt)
- DES (PT = $salt, key = $pass)
- 3DES (PT = $salt, key = $pass)
- Skip32 (PT = $salt, key = $pass)
- ChaCha20
- phpass
- scrypt
- PBKDF2-HMAC-MD5
- PBKDF2-HMAC-SHA1
- PBKDF2-HMAC-SHA256
- PBKDF2-HMAC-SHA512
- Skype
- WPA/WPA2
- WPA/WPA2 PMK
- iSCSI CHAP authentication, MD5(CHAP)
- IKE-PSK MD5
- IKE-PSK SHA1
- NetNTLMv1
- NetNTLMv1+ESS
- NetNTLMv2
- IPMI2 RAKP HMAC-SHA1
- Kerberos 5 AS-REQ Pre-Auth etype 23
- DNSSEC (NSEC3)
- CRAM-MD5
- PostgreSQL CRAM (MD5)
- MySQL CRAM (SHA1)
- SIP digest authentication (MD5)
- Kerberos 5 TGS-REP etype 23
- TACACS+
- JWT (JSON Web Token)
- SMF (Simple Machines Forum) > v1.1
- phpBB3 (MD5)
- vBulletin < v3.8.5
- vBulletin >= v3.8.5
- MyBB 1.2+
- IPB2+ (Invision Power Board)
- WBB3 (Woltlab Burning Board)
- Joomla < 2.5.18
- Joomla >= 2.5.18 (MD5)
- WordPress (MD5)
- PHPS
- Drupal7
- osCommerce
- xt:Commerce
- PrestaShop
- Django (SHA-1)
- Django (PBKDF2-SHA256)
- Tripcode
- MediaWiki B type
- OpenCart
- Redmine
- PunBB
- Atlassian (PBKDF2-HMAC-SHA1)
- PostgreSQL
- MSSQL (2000)
- MSSQL (2005)
- MSSQL (2012, 2014)
- MySQL323
- MySQL4.1/MySQL5
- Oracle H: Type (Oracle 7+)
- Oracle S: Type (Oracle 11+)
- Oracle T: Type (Oracle 12+)
- Sybase ASE
- Episerver 6.x < .NET 4
- Episerver 6.x >= .NET 4
- Apache $apr1$ MD5, md5apr1, MD5 (APR)
- ColdFusion 10+
- hMailServer
- nsldap, SHA-1(Base64), Netscape LDAP SHA
- nsldaps, SSHA-1(Base64), Netscape LDAP SSHA
- SSHA-256(Base64), LDAP {SSHA256}
- SSHA-512(Base64), LDAP {SSHA512}
- CRAM-MD5 Dovecot
- FileZilla Server >= 0.9.55
- CRC32
- LM
- NTLM
- Domain Cached Credentials (DCC), MS Cache
- Domain Cached Credentials 2 (DCC2), MS Cache 2
- DPAPI masterkey file v1
- DPAPI masterkey file v2
- MS-AzureSync  PBKDF2-HMAC-SHA256
- descrypt, DES (Unix), Traditional DES
- BSDi Crypt, Extended DES
- md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
- bcrypt $2*$, Blowfish (Unix)
- sha256crypt $5$, SHA256 (Unix)
- sha512crypt $6$, SHA512 (Unix)
- macOS v10.4, MacOS v10.5, MacOS v10.6
- macOS v10.7
- macOS v10.8+ (PBKDF2-SHA512)
- AIX {smd5}
- AIX {ssha1}
- AIX {ssha256}
- AIX {ssha512}
- Cisco-PIX MD5
- Cisco-ASA MD5
- Cisco-IOS $1$ (MD5)
- Cisco-IOS type 4 (SHA256)
- Cisco-IOS $8$ (PBKDF2-SHA256)
- Cisco-IOS $9$ (scrypt)
- Juniper NetScreen/SSG (ScreenOS)
- Juniper IVE
- Juniper/NetBSD sha1crypt
- FortiGate (FortiOS)
- Samsung Android Password/PIN
- Windows Phone 8+ PIN/password
- Citrix NetScaler
- RACF
- GRUB 2
- Radmin2
- ArubaOS
- SAP CODVN B (BCODE)
- SAP CODVN F/G (PASSCODE)
- SAP CODVN H (PWDSALTEDHASH) iSSHA-1
- Lotus Notes/Domino 5
- Lotus Notes/Domino 6
- Lotus Notes/Domino 8
- PeopleSoft
- PeopleSoft PS_TOKEN
- 7-Zip
- RAR3-hp
- RAR5
- AxCrypt
- AxCrypt in-memory SHA1
- WinZip
- iTunes backup < 10.0
- iTunes backup >= 10.0
- TrueCrypt
- Android FDE <= 4.3
- Android FDE (Samsung DEK)
- eCryptfs
- VeraCrypt
- LUKS
- MS Office <= 2003
- MS Office 2007
- MS Office 2010
- MS Office 2013
- PDF 1.1 - 1.3 (Acrobat 2 - 4)
- PDF 1.4 - 1.6 (Acrobat 5 - 8)
- PDF 1.7 Level 3 (Acrobat 9)
- PDF 1.7 Level 8 (Acrobat 10 - 11)
- Apple Secure Notes
- Password Safe v2
- Password Safe v3
- LastPass + LastPass sniffed
- 1Password, agilekeychain
- 1Password, cloudkeychain
- Bitcoin/Litecoin wallet.dat
- Blockchain, My Wallet
- Blockchain, My Wallet, V2
- Electrum Wallet (Salt-Type 1-3)
- KeePass 1 (AES/Twofish) and KeePass 2 (AES)
- JKS Java Key Store Private Keys (SHA1)
- Ethereum Wallet, PBKDF2-HMAC-SHA256
- Ethereum Wallet, SCRYPT
- Ethereum Pre-Sale Wallet, PBKDF2-HMAC-SHA256
- Plaintext

##
## Attack-Modes
##

- Straight *
- Combination
- Brute-force
- Hybrid dict + mask
- Hybrid mask + dict

* = Supports rules

##
## Supported OpenCL runtimes
##

- AMD
- Apple
- Intel
- Mesa (Gallium)
- NVidia
- pocl

##
## Supported OpenCL device types
##

- GPU
- CPU
- APU
- DSP
- FPGA
- Coprocessor
tools\hashcat-4.1.0\docs\rules.txt
#define RULE_OP_MANGLE_NOOP             ':' // does nothing
#define RULE_OP_MANGLE_LREST            'l' // lower case all chars
#define RULE_OP_MANGLE_UREST            'u' // upper case all chars
#define RULE_OP_MANGLE_LREST_UFIRST     'c' // lower case all chars, upper case 1st
#define RULE_OP_MANGLE_UREST_LFIRST     'C' // upper case all chars, lower case 1st
#define RULE_OP_MANGLE_TREST            't' // switch the case of each char
#define RULE_OP_MANGLE_TOGGLE_AT        'T' // switch the case of each char on pos N
#define RULE_OP_MANGLE_REVERSE          'r' // reverse word
#define RULE_OP_MANGLE_DUPEWORD         'd' // append word to itself
#define RULE_OP_MANGLE_DUPEWORD_TIMES   'p' // append word to itself N times
#define RULE_OP_MANGLE_REFLECT          'f' // reflect word (append reversed word)
#define RULE_OP_MANGLE_ROTATE_LEFT      '{' // rotate the word left.  ex: hello -> elloh
#define RULE_OP_MANGLE_ROTATE_RIGHT     '}' // rotate the word right. ex: hello -> ohell
#define RULE_OP_MANGLE_APPEND           '$' // append char X
#define RULE_OP_MANGLE_PREPEND          '^' // prepend char X
#define RULE_OP_MANGLE_DELETE_FIRST     '[' // delete first char of word
#define RULE_OP_MANGLE_DELETE_LAST      ']' // delete last char of word
#define RULE_OP_MANGLE_DELETE_AT        'D' // delete char of word at pos N
#define RULE_OP_MANGLE_EXTRACT          'x' // extract X chars of word at pos N
#define RULE_OP_MANGLE_OMIT             'O' // omit X chars of word at pos N
#define RULE_OP_MANGLE_INSERT           'i' // insert char X at pos N
#define RULE_OP_MANGLE_OVERSTRIKE       'o' // overwrite with char X at pos N
#define RULE_OP_MANGLE_TRUNCATE_AT      '\''// cut the word at pos N
#define RULE_OP_MANGLE_REPLACE          's' // replace all chars X with char Y
#define RULE_OP_MANGLE_PURGECHAR        '@' // purge all instances of char X
#define RULE_OP_MANGLE_DUPECHAR_FIRST   'z' // prepend first char of word to itself. ex: hello -> hhello
#define RULE_OP_MANGLE_DUPECHAR_LAST    'Z' // append last char of word to itself.   ex: hello -> helloo
#define RULE_OP_MANGLE_DUPECHAR_ALL     'q' // duplicate all chars. ex: hello -> hheelllloo
#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
#define RULE_OP_MANGLE_SWITCH_AT        '*' // switches the first 2 chars after pos N. ex: hello -> hlelo
#define RULE_OP_MANGLE_CHR_SHIFTL       'L' // bitwise shift left char at pos N.  ex: hello0 -> hello`
#define RULE_OP_MANGLE_CHR_SHIFTR       'R' // bitwise shift right char at pos N. ex: hello` -> hello0
#define RULE_OP_MANGLE_CHR_INCR         '+' // bytewise increase at pos N. ex: hello0 -> hello1
#define RULE_OP_MANGLE_CHR_DECR         '-' // bytewise decreate at pos N. ex: hello1 -> hello0
#define RULE_OP_MANGLE_REPLACE_NP1      '.' // replaces character @ n with value at @ n plus 1
#define RULE_OP_MANGLE_REPLACE_NM1      ',' // replaces character @ n with value at @ n minus 1
#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
#define RULE_OP_MANGLE_TITLE_SEP        'e' // lowercase everything then upper case the first letter and every letter after char X

/* With -j or -k only */

#define RULE_OP_MANGLE_EXTRACT_MEMORY   'X' // insert substring delimited by N and M into current word at position I
#define RULE_OP_MANGLE_APPEND_MEMORY    '4' // insert the word saved by 'M' at the end of current word
#define RULE_OP_MANGLE_PREPEND_MEMORY   '6' // insert the word saved by 'M' at the beginning of current word
#define RULE_OP_MEMORIZE_WORD           'M' // memorize current word

#define RULE_OP_REJECT_LESS             '<' // reject plains of length greater than N
#define RULE_OP_REJECT_GREATER          '>' // reject plains of length less than N
#define RULE_OP_REJECT_EQUAL            '_' // reject plains of length not equal to N
#define RULE_OP_REJECT_CONTAIN          '!' // reject plains that contain char X
#define RULE_OP_REJECT_NOT_CONTAIN      '/' // reject plains that do not contain char X
#define RULE_OP_REJECT_EQUAL_FIRST      '(' // reject plains that do not contain char X at first position
#define RULE_OP_REJECT_EQUAL_LAST       ')' // reject plains that do not contain char X at last position
#define RULE_OP_REJECT_EQUAL_AT         '=' // reject plains that do not contain char X at position N
#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
#define RULE_LAST_REJECTED_SAVED_POS    'p' // position of the character last found with '/' or '%'
tools\hashcat-4.1.0\docs\status_codes.txt
status codes on exit:
=====================

-2 = gpu-watchdog alarm
-1 = error
 0 = OK/cracked
 1 = exhausted
 2 = aborted
 3 = aborted by checkpoint
 4 = aborted by runtime
tools\hashcat-4.1.0\docs\team.txt
# Team hashcat:

We're a group of people participating in the yearly repeating password cracking contests

* Achievements

| Competition         | Conference                 | Year | Placed |
|---------------------|----------------------------|------|--------|
| Crack Me If You Can | DEF CON, Las Vegas         | 2010 | 1st    |
| Crack Me If You Can | DEF CON, Las Vegas         | 2011 | 2nd    |
| Crack Me If You Can | DEF CON, Las Vegas         | 2012 | 1st    |
| Crack Me If You Can | DEF CON, Las Vegas         | 2013 | 2nd    |
| Crack Me If You Can | DEF CON, Las Vegas         | 2014 | 1st    |
| Crack Me If You Can | DEF CON, Las Vegas         | 2015 | 1st    |
| Crack Me If You Can | DerbyCon, Louisville       | 2017 | 1st    |

| Competition         | Conference                 | Year | Placed |
|---------------------|----------------------------|------|--------|
| Hash Runner         | Positive Hack Days, Moscow | 2012 | 1st    |
| Hash Runner         | Positive Hack Days, Moscow | 2013 | 2nd    |
| Hash Runner         | Positive Hack Days, Moscow | 2014 | 2nd    |
| Hash Runner         | Positive Hack Days, Moscow | 2015 | 1st    |

| Competition         | Conference                 | Year | Placed |
|---------------------|----------------------------|------|--------|
| Hashkiller          | -                          | 2012 | 1st    |
| Hashkiller          | -                          | 2016 | 2nd    |

| Competition         | Conference                 | Year | Placed |
|---------------------|----------------------------|------|--------|
| PCrack              | SAINTCON, Utah             | 2017 | 1st    |

* Special recognition for team hashcat goes to:

Christoph "dropdead" Heuwieser (@dropdeadfu): Lead and organizing
Xanadrel (@Xanadrel): Developing LC, the "Team hashcat" hash management tool

* Active and former member

abaco           alotdv          atom            blandyuk        blaz
BlowCane        chancas         Chick3nman      coolbry95       dakykilla
deutsch         dropdead        epixoip         EvilMog         franky
gpufreak        hashtka         Hydraze         J0hnnyBrav0     K9
kontrast23      legion          m3g9tr0n        matrix          minga
N|IGHT5         NSAKEY          NullMode        philsmd         purehate
radix           Rolf            rurapenthe      s3in!c          SuperJames
Szul            tehnlulz        The_Mechanic    T0XlC           TychoTithonus
undeath         unix-ninja      Xanadrel        xmisery
tools\hashcat-4.1.0\docs\user_manuals.txt
The user manuals are constantly updated. Thats why they are not part of the distribtion.

For more detailed Informations and advanced hashcat usage visit our Wiki: http://hashcat.net/wiki
tools\hashcat-4.1.0\example.dict
 
tools\hashcat-4.1.0\example0.cmd
hashcat64.exe -t 32 -a 7 example0.hash ?a?a?a?a example.dict
pause
tools\hashcat-4.1.0\example0.hash
 
tools\hashcat-4.1.0\example400.cmd
type example.dict | hashcat64.exe -m 400 example400.hash
pause
tools\hashcat-4.1.0\example400.hash
 
tools\hashcat-4.1.0\example500.cmd
hashcat64.exe -m 500 example500.hash example.dict
pause
tools\hashcat-4.1.0\example500.hash
 
tools\hashcat-4.1.0\extra\tab_completion\hashcat.sh
##
## Author......: See docs/credits.txt
## License.....: MIT
##

HASHCAT_ROOT="."

# helper functions
_hashcat_get_permutations ()
{
  local num_devices=${1}
  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

    hashcat_devices_permutation=$(seq 1 $num_devices)

    local k

    for k in $(seq 2 $num_devices); do

      if [ "${k}" -eq ${num_devices} ];then

        hashcat_devices_permutation="${hashcat_devices_permutation} $(seq 1 $num_devices | tr '\n' ',' | sed 's/, *$//')"

      else

        local j
        local max_pos=$((num_devices - ${k} + 1))

        for j in $(seq 1 ${max_pos}); do

          local max_value=$((j + ${k} - 1))

          # init
          local out_str=""

          local l
          for l in $(seq ${j} ${max_value}); do

            if [ ${l} -gt ${j} ]; then
              out_str=${out_str},
            fi

            out_str=${out_str}${l}

          done

          local chg_len=0
          local last=$((k - 1))
          local max_device=$((num_devices + 1))
          local pos_changed=0

          while [ "${chg_len}" -lt ${last} ]; do

            local had_pos_changed=${pos_changed}
            local old_chg_len=${chg_len}

            local idx=$(((k - chg_len)))
            local cur_num=$(echo ${out_str} | cut -d, -f ${idx})
            local next_num=$((cur_num + 1))

            if [ "${pos_changed}" -eq 0 ]; then

              hashcat_devices_permutation="${hashcat_devices_permutation} ${out_str}"

            else

              pos_changed=0

            fi

            if [ "${next_num}" -lt ${max_device} -a "${next_num}" -le "${num_devices}" ]; then

              out_str=$(echo ${out_str} | sed "s/,${cur_num},/,${next_num},/;s/,${cur_num}\$/,${next_num}/")

            else

              pos_changed=1
              max_device=${cur_num}
              chg_len=$((chg_len + 1))

            fi

            if [ "${had_pos_changed}" -eq 1 ];then

              local changed=0
              local m

              for m in $(seq 1 ${old_chg_len}); do

                local reset_idx=$((k - ${old_chg_len} + ${m}))
                local last_num=$(echo ${out_str} | cut -d, -f ${reset_idx})
                next_num=$((next_num + 1))

                if [ "${next_num}" -lt ${max_device} -a "${next_num}" -le "${num_devices}" ]; then

                  out_str=$(echo ${out_str} | sed "s/,${last_num},/,${next_num},/;s/,${last_num}\$/,${next_num}/")
                  max_device=$((next_num + 2))
                  changed=$((changed + 1))

                else
                  break
                fi

              done

              if [ "${changed}" -gt 0 ]; then

                max_device=$((num_devices + 1))
                chg_len=0

              fi

            fi

          done

        done

      fi

    done
  fi
}

_hashcat_opencl_devices ()
{
  local num_devices=0

  if which clinfo &> /dev/null; then

    num_devices=$(clinfo 2>/dev/null 2> /dev/null)

  elif which nvidia-smi &> /dev/null; then

    num_devices=$(nvidia-smi --list-gpus | wc -l)

  fi

  return ${num_devices}
}

_hashcat_cpu_devices ()
{
  local num_devices=0

  if [ -f "/proc/cpuinfo" ]; then

    num_devices=$(cat /proc/cpuinfo | grep -c processor 2> /dev/null)

  fi

  return ${num_devices}
}

_hashcat_contains ()
{
  local haystack=${1}
  local needle="${2}"

  if   echo "${haystack}" | grep -q " ${needle} " 2> /dev/null; then
    return 0
  elif echo "${haystack}" | grep -q "^${needle} " 2> /dev/null; then
    return 0
  elif echo "${haystack}" | grep -q " ${needle}\$" 2> /dev/null; then
    return 0
  fi

  return 1
}

_hashcat ()
{
  local VERSION=4.1.0

  local HASH_MODES="0 10 11 12 20 21 22 23 30 40 50 60 100 101 110 111 112 120 121 122 124 130 131 132 133 140 141 150 160 200 300 400 500 501 600 900 1000 1100 1400 1410 1411 1420 1421 1430 1440 1441 1450 1460 1500 1600 1700 1710 1711 1720 1722 1730 1731 1740 1750 1760 1800 2100 2400 2410 2500 2501 2600 2611 2612 2711 2811 3000 3100 3200 3710 3711 3800 3910 4010 4110 4300 4400 4500 4520 4521 4522 4700 4800 4900 5000 5100 5200 5300 5400 5500 5600 5700 5800 6000 6100 6211 6212 6213 6221 6222 6223 6231 6232 6233 6241 6242 6243 6300 6400 6500 6600 6700 6800 6900 7000 7100 7200 7300 7400 7500 7700 7800 7900 8000 8100 8200 8300 8400 8500 8600 8700 8800 8900 9000 9100 9200 9300 9400 9500 9600 9700 9710 9720 9800 9810 9820 9900 10000 10100 10200 10300 10400 10410 10420 10500 10600 10700 10800 10900 11000 11100 11200 11300 11400 11500 11600 11700 11800 11900 12000 12001 12100 12200 12300 12400 12500 12600 12700 12800 12900 13000 13100 13200 13300 13400 13500 13600 13800 13900 14000 14100 14700 14800 14900 15000 15100 15200 15300 15400 15500 15600 15700 15900 16000 16100 16200 16300 16400 16500 16600"
  local ATTACK_MODES="0 1 3 6 7"
  local HCCAPX_MESSAGE_PAIR="0 1 2 3 4 5"
  local OUTFILE_FORMATS="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15"
  local OPENCL_DEVICE_TYPES="1 2 3"
  local OPENCL_VECTOR_WIDTH="1 2 4 8 16"
  local DEBUG_MODE="1 2 3 4"
  local WORKLOAD_PROFILE="1 2 3"
  local HIDDEN_FILES="exe|bin|pot|hcstat|dictstat|accepted|sh|cmd|bat|restore"
  local HIDDEN_FILES_AGGRESIVE="exe|bin|pot|hcstat|dictstat|hcmask|hcchr|accepted|sh|cmd|restore"
  local BUILD_IN_CHARSETS='?l ?u ?d ?a ?b ?s ?h ?H'

  local SHORT_OPTS="-m -a -V -v -h -b -t -o -p -c -d -w -n -u -j -k -r -g -1 -2 -3 -4 -i -I -s -l -O"
  local LONG_OPTS="--hash-type --attack-mode --version --help --quiet --benchmark --benchmark-all --hex-salt --hex-wordlist --hex-charset --force --status --status-timer --machine-readable --loopback --markov-hcstat --markov-disable --markov-classic --markov-threshold --runtime --session --speed-only --progress-only --restore --restore-file-path --restore-disable --outfile --outfile-format --outfile-autohex-disable --outfile-check-timer --outfile-check-dir --wordlist-autohex-disable --separator --show --left --username --remove --remove-timer --potfile-disable --potfile-path --debug-mode --debug-file --induction-dir --segment-size --bitmap-min --bitmap-max --cpu-affinity --example-hashes --opencl-info --opencl-devices --opencl-platforms --opencl-device-types --opencl-vector-width --workload-profile --kernel-accel --kernel-loops --nvidia-spin-damp --gpu-temp-disable --gpu-temp-abort --skip --limit --keyspace --rule-left --rule-right --rules-file --generate-rules --generate-rules-func-min --generate-rules-func-max --generate-rules-seed --custom-charset1 --custom-charset2 --custom-charset3 --custom-charset4 --increment --increment-min --increment-max --logfile-disable --scrypt-tmto --truecrypt-keyfiles --veracrypt-keyfiles --veracrypt-pim --stdout --keep-guessing --hccapx-message-pair --nonce-error-corrections --encoding-from --encoding-to --optimized-kernel-enable --self-test-disable"
  local OPTIONS="-m -a -t -o -p -c -d -w -n -u -j -k -r -g -1 -2 -3 -4 -s -l --hash-type --attack-mode --status-timer --markov-hcstat --markov-threshold --runtime --session --timer --outfile --outfile-format --outfile-check-timer --outfile-check-dir --separator --remove-timer --potfile-path --restore-file-path --debug-mode --debug-file --induction-dir --segment-size --bitmap-min --bitmap-max --cpu-affinity --opencl-devices --opencl-platforms --opencl-device-types --opencl-vector-width --workload-profile --kernel-accel --kernel-loops --nvidia-spin-damp --gpu-temp-abort --skip --limit --rule-left --rule-right --rules-file --generate-rules --generate-rules-func-min --generate-rules-func-max --generate-rules-seed --custom-charset1 --custom-charset2 --custom-charset3 --custom-charset4 --increment-min --increment-max --scrypt-tmto --truecrypt-keyfiles --veracrypt-keyfiles --veracrypt-pim --hccapx-message-pair --nonce-error-corrections --encoding-from --encoding-to"

  COMPREPLY=()
  local cur="${COMP_WORDS[COMP_CWORD]}"
  local prev="${COMP_WORDS[COMP_CWORD-1]}"

  # if cur is just '=', ignore the '=' and treat it as only the prev was provided
  if [[ "${cur}" == '=' ]]; then

    cur=""

  elif [[ "${prev}" == '=' ]]; then

    if [ "${COMP_CWORD}" -gt 2 ]; then

      prev="${COMP_WORDS[COMP_CWORD-2]}"

    fi

  fi

  case "${prev}" in

    -m|--hash-type)
      COMPREPLY=($(compgen -W "${HASH_MODES}" -- ${cur}))
      return 0
      ;;

    -a|--attack-mode)
      COMPREPLY=($(compgen -W "${ATTACK_MODES}" -- ${cur}))
      return 0
      ;;

    --hccapx-message-pair)
      COMPREPLY=($(compgen -W "${HCCAPX_MESSAGE_PAIRS}" -- ${cur}))
      return 0
      ;;

    --outfile-format)
      COMPREPLY=($(compgen -W "${OUTFILE_FORMATS}" -- ${cur}))
      return 0
      ;;

    -w|--workload-profile)
      COMPREPLY=($(compgen -W "${WORKLOAD_PROFILE}" -- ${cur}))
      return 0
      ;;

    -o|--outfile|-r|--rules-file|--debug-file|--potfile-path| --restore-file-path)
      local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES_AGGRESIVE}')' 2> /dev/null)
      COMPREPLY=($(compgen -W "${files}" -- ${cur})) # or $(compgen -f -X '*.+('${HIDDEN_FILES_AGGRESIVE}')' -- ${cur})
      return 0
      ;;

    --markov-hcstat)
      local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES}')' 2> /dev/null)
      COMPREPLY=($(compgen -W "${files}" -- ${cur})) # or $(compgen -f -X '*.+('${HIDDEN_FILES_AGGRESIVE}')' -- ${cur})
      return 0
      ;;

     -d|--opencl-devices)
      _hashcat_opencl_devices
      local num_devices=${?}

      _hashcat_get_permutations ${num_devices}

      COMPREPLY=($(compgen -W "${hashcat_devices_permutation}" -- ${cur}))
      return 0
      ;;

    --opencl-device-types)
      COMPREPLY=($(compgen -W "${OPENCL_DEVICE_TYPES}" -- ${cur}))
      return 0
      ;;

    --opencl-vector-width)
      COMPREPLY=($(compgen -W "${OPENCL_VECTOR_WIDTH}" -- ${cur}))
      return 0
      ;;

    --opencl-platforms)
      local icd_list=$(ls -1 /etc/OpenCL/vendors/*.icd 2> /dev/null)

      local architecture=$(getconf LONG_BIT 2> /dev/null)

      if [ -z "${architecture}" ]; then
        return 0
      fi

      # filter the icd_list (do not show 32 bit on 64bit systems and vice versa)

      if [ "${architecture}" -eq 64 ]; then

        icd_list=$(echo "${icd_list}" | grep -v "32.icd")

      else

        icd_list=$(echo "${icd_list}" | grep -v "64.icd")

      fi

      local number_icds=$(seq 1 $(echo "${icd_list}" | wc -l))

      COMPREPLY=($(compgen -W "${number_icds}" -- ${cur}))

      return 0
      ;;

    --cpu-affinity)
      _hashcat_cpu_devices
      local num_devices=${?}

      _hashcat_get_permutations ${num_devices}

      COMPREPLY=($(compgen -W "${hashcat_devices_permutation}" -- ${cur}))
      return 0
      ;;

    -1|-2|-3|-4|--custom-charset1|--custom-charset2|--custom-charset3|--custom-charset4)
      local mask=${BUILD_IN_CHARSETS}

      if [ -e "${cur}" ]; then # should be hcchr file (but not enforced)

        COMPREPLY=($(compgen -W "${cur}" -- ${cur}))
        return 0

      fi

      if [ -n "${cur}" ]; then

        local cur_var=$(echo "${cur}" | sed 's/\?$//')

        mask="${mask} ${cur_var}"
        local h
        for h in ${mask}; do

          if ! echo ${cur} | grep -q ${h} 2> /dev/null; then

            if echo ${cur} | grep -q '?a' 2> /dev/null; then

              if   [[ "${h}" == "?l" ]] ; then
                continue
              elif [[ "${h}" == "?u" ]] ; then
                continue
              elif [[ "${h}" == "?d" ]] ; then
                continue
              elif [[ "${h}" == "?s" ]] ; then
                continue
              elif [[ "${h}" == "?b" ]] ; then
                continue
              fi

            fi

            mask="${mask} ${cur_var}${h}"

          fi

        done
      fi

      local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES}')' 2> /dev/null)

      mask="${mask} ${files}"

      COMPREPLY=($(compgen -W "${mask}" -- ${cur}))
      return 0
      ;;

    -t|-p|-c|-j|-k|-g| \
      --status-timer|--markov-threshold|--runtime|--session|--separator|--segment-size|--rule-left|--rule-right| \
      --nvidia-spin-damp|--gpu-temp-abort|--generate-rules|--generate-rules-func-min|--generate-rules-func-max| \
      --increment-min|--increment-max|--remove-timer|--bitmap-min|--bitmap-max|--skip|--limit|--generate-rules-seed| \
      --outfile-check-timer|--outfile-check-dir|--induction-dir|--scrypt-tmto|--encoding-from|--encoding-to|--optimized-kernel-enable|--self-test-disable)
      return 0
      ;;

    --debug-mode)
      COMPREPLY=($(compgen -W "${DEBUG_MODE}" -- ${cur}))
      return 0
      ;;

    --truecrypt-keyfiles|--veracrypt-keyfiles)
      # first: remove the quotes such that file matching is possible

      local cur_part0=$(echo "${cur}" | grep -Eo '^("|'"'"')')

      local cur_mod=$(echo "${cur}" | sed 's/^["'"'"']//')
      local cur_part1=$(echo "${cur_mod}" | grep ',' 2> /dev/null | sed 's/^\(.*, *\)[^,]*$/\1/')
      local cur_part2=$(echo "${cur_mod}" | sed 's/^.*, *\([^,]*\)$/\1/')

      # generate lines with the file name and a duplicate of it with a comma at the end

      local files=$(ls -d ${cur_part2}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES_AGGRESIVE}')' 2> /dev/null | sed 's/^\(.*\)$/\1\n\1,\n/' | sed "s/^/${cur_part0}${cur_part1}/" | sed "s/$/${cur_part0}/")
      COMPREPLY=($(compgen -W "${files}" -- ${cur}))
      return 0

  esac

  # allow also the VARIANTS w/o spaces
  # we could use compgen -P prefix, but for some reason it doesn't seem to work always

  case "$cur" in

    -m*)
      local hash_modes_var="$(echo -n "-m ${HASH_MODES}" | sed 's/ / -m/g')"
      COMPREPLY=($(compgen -W "${hash_modes_var}" -- ${cur}))
      return 0
      ;;

    -a*)
      local attack_modes_var="$(echo -n "-a ${ATTACK_MODES}" | sed 's/ / -a/g')"
      COMPREPLY=($(compgen -W "${attack_modes_var}" -- ${cur}))
      return 0
      ;;

    -w*)
      local workload_profile_var="$(echo -n "-w ${WORKLOAD_PROFILE}" | sed 's/ / -w/g')"
      COMPREPLY=($(compgen -W "${workload_profile_var}" -- ${cur}))
      return 0
      ;;

    -o*)
      local outfile_var=$(ls -d ${cur:2}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES_AGGRESIVE}')' 2> /dev/null)
      outfile_var="$(echo -e "\n${outfile_var}" | sed 's/^/-o/g')"
      COMPREPLY=($(compgen -W "${outfile_var}" -- ${cur}))
      return 0
      ;;

    -r*)
      local outfile_var=$(ls -d ${cur:2}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES_AGGRESIVE}')' 2> /dev/null)
      outfile_var="$(echo -e "\n${outfile_var}" | sed 's/^/-r/g')"
      COMPREPLY=($(compgen -W "${outfile_var}" -- ${cur}))
      return 0
      ;;

    -d*)
      _hashcat_opencl_devices
      local num_devices=${?}

      _hashcat_get_permutations ${num_devices}

      local opencl_devices_var="$(echo "  "${hashcat_devices_permutation} | sed 's/ / -d/g')"
      COMPREPLY=($(compgen -W "${opencl_devices_var}" -- ${cur}))
      return 0
      ;;
  esac

  # Complete options/switches (not the arguments)

  if [[ "${cur}" == -* ]]; then

      COMPREPLY=($(compgen -W "${SHORT_OPTS} ${LONG_OPTS}" -- ${cur}))
      return 0

  fi

  # additional parameter, no switch nor option but maybe hash file, dictionary, mask, directory

  # check if first option out of (hash.txt and dictionary|mask|directory)
  # is first option iff: here
  # is second option iff: COMP_CWORD > 2 and no switch before (-*) if no option afterwards (for mask -a 3, -a 6, -a 7 - but possible for dicts!)

  local h=1
  local no_opts=0
  local attack_mode=0 # also default of hashcat
  local has_charset_1=0
  local has_charset_2=0
  local has_charset_3=0
  local has_charset_4=0

  while [ ${h} -le ${COMP_CWORD} ]; do

    if   [[ "${COMP_WORDS[h]}" == "-a" ]]; then

      attack_mode=${COMP_WORDS[$((h + 1))]}

    elif   [[ "${COMP_WORDS[h]}" == -a* ]]; then

      attack_mode=${COMP_WORDS[h]:2}

    elif [[ "${COMP_WORDS[h]}" == "--attack-mode" ]]; then

      attack_mode=${COMP_WORDS[$((h + 1))]}

    elif [[ "${COMP_WORDS[h]}" == "-1" ]]; then

      has_charset_1=1

    elif [[ "${COMP_WORDS[h]}" == "--custom-charset1" ]]; then

      has_charset_1=1

    elif [[ "${COMP_WORDS[h]}" == "-2" ]]; then

      has_charset_2=1

    elif [[ "${COMP_WORDS[h]}" == "--custom-charset2" ]]; then

      has_charset_2=1

    elif [[ "${COMP_WORDS[h]}" == "-3" ]]; then

      has_charset_3=1

    elif [[ "${COMP_WORDS[h]}" == "--custom-charset3" ]]; then

      has_charset_3=1

    elif [[ "${COMP_WORDS[h]}" == "-4" ]]; then

      has_charset_4=1

    elif [[ "${COMP_WORDS[h]}" == "--custom-charset4" ]]; then

      has_charset_4=1

    fi

    if _hashcat_contains "${OPTIONS}" "${COMP_WORDS[h]}"; then

      h=$((h + 2))

    else

      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
        for v in ${variants}; do

          if [[ "${COMP_WORDS[h]:0:2}" == "${v}" ]]; then
            skip=1
          fi

        done

        if [ "${skip}" -eq 0 ]; then

          no_opts=$((no_opts + 1))

        fi
      fi

      h=$((h + 1))

    fi

  done

  case "${no_opts}" in

    0)
      return 0
      ;;

    1)
      local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES_AGGRESIVE}')' 2> /dev/null)
      COMPREPLY=($(compgen -W "${files}" -- ${cur}))
      return 0
      ;;

    *)
      case "${attack_mode}" in

        0)
          # dict/directory are files here
          local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES_AGGRESIVE}')' 2> /dev/null)
          COMPREPLY=($(compgen -W "${files}" -- ${cur}))
          return 0
          ;;

        1)
          if [ "${no_opts}" -gt 4 ]; then
            return 0
          fi

          local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES_AGGRESIVE}')' 2> /dev/null)
          COMPREPLY=($(compgen -W "${files}" -- ${cur}))
          return 0
          ;;

        3)
          if [ "${no_opts}" -eq 2 ]; then
            local mask=${BUILD_IN_CHARSETS}

            if [ "${has_charset_1}" -eq 1 ]; then

              mask="${mask} ?1"

            fi

            if [ "${has_charset_2}" -eq 1 ]; then

              mask="${mask} ?2"

            fi

            if [ "${has_charset_3}" -eq 1 ]; then

              mask="${mask} ?3"

            fi

            if [ "${has_charset_4}" -eq 1 ]; then

              mask="${mask} ?4"

            fi

            if [ -e "${cur}" ]; then # should be hcmask file (but not enforced)

              COMPREPLY=($(compgen -W "${cur}" -- ${cur}))
              return 0

            fi

            if [ -n "${cur}" ]; then

              local cur_var=$(echo "${cur}" | sed 's/\?$//')

              mask="${mask} ${cur_var}"

              local h
              for h in ${mask}; do

                  mask="${mask} ${cur_var}${h}"

              done
            fi

            local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES}')' 2> /dev/null)

            mask="${mask} ${files}"

            COMPREPLY=($(compgen -W "${mask}" -- ${cur}))
            return 0
          fi
          ;;

        6)
          if [ "${no_opts}" -eq 2 ]; then

            local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES_AGGRESIVE}')' 2> /dev/null)
            COMPREPLY=($(compgen -W "${files}" -- ${cur}))

          elif [ "${no_opts}" -eq 3 ]; then
            local mask=${BUILD_IN_CHARSETS}

            if [ "${has_charset_1}" -eq 1 ]; then

              mask="${mask} ?1"

            fi

            if [ "${has_charset_2}" -eq 1 ]; then

              mask="${mask} ?2"

            fi

            if [ "${has_charset_3}" -eq 1 ]; then

              mask="${mask} ?3"

            fi

            if [ "${has_charset_4}" -eq 1 ]; then

              mask="${mask} ?4"

            fi

            if [ -e "${cur}" ]; then # should be hcmask file (but not enforced)

              COMPREPLY=($(compgen -W "${cur}" -- ${cur}))
              return 0

            fi

            if [ -n "${cur}" ]; then

              local cur_var=$(echo "${cur}" | sed 's/\?$//')

              mask="${mask} ${cur_var}"

              local h
              for h in ${mask}; do

                  mask="${mask} ${cur_var}${h}"

              done
            fi

            local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES}')' 2> /dev/null)

            mask="${mask} ${files}"

            COMPREPLY=($(compgen -W "${mask}" -- ${cur}))
            return 0

          fi
          ;;

        7)
          if [ "${no_opts}" -eq 2 ]; then
            local mask=${BUILD_IN_CHARSETS}

            if [ "${has_charset_1}" -eq 1 ]; then

              mask="${mask} ?1"

            fi

            if [ "${has_charset_2}" -eq 1 ]; then

              mask="${mask} ?2"

            fi

            if [ "${has_charset_3}" -eq 1 ]; then

              mask="${mask} ?3"

            fi

            if [ "${has_charset_4}" -eq 1 ]; then

              mask="${mask} ?4"

            fi

            if [ -e "${cur}" ]; then # should be hcmask file (but not enforced)

              COMPREPLY=($(compgen -W "${cur}" -- ${cur}))
              return 0

            fi

            if [ -n "${cur}" ]; then

              local cur_var=$(echo "${cur}" | sed 's/\?$//')

              mask="${mask} ${cur_var}"

              local h
              for h in ${mask}; do

                  mask="${mask} ${cur_var}${h}"

              done
            fi

            local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES}')' 2> /dev/null)

            mask="${mask} ${files}"

            COMPREPLY=($(compgen -W "${mask}" -- ${cur}))
            return 0

          elif [ "${no_opts}" -eq 3 ]; then

            local files=$(ls -d ${cur}* 2> /dev/null | grep -Eiv '*\.('${HIDDEN_FILES_AGGRESIVE}')' 2> /dev/null)
            COMPREPLY=($(compgen -W "${files}" -- ${cur}))
            return

          fi
          ;;

      esac

    esac
}

complete -F _hashcat -o filenames "${HASHCAT_ROOT}"/hashcat64.bin "${HASHCAT_ROOT}"/hashcat32.bin "${HASHCAT_ROOT}"/hashcat hashcat
tools\hashcat-4.1.0\extra\tab_completion\howto.txt
run:
source ./install
OR
source ./hashcat.sh # not working permanently (i.e. not working after a reboot)
tools\hashcat-4.1.0\extra\tab_completion\install
 
tools\hashcat-4.1.0\hashcat.hcstat2
 
tools\hashcat-4.1.0\hashcat.hctune
 
tools\hashcat-4.1.0\hashcat32.exe
md5: 4D884DCC936D5312028F9DB52FAF55CB | sha1: 3D61175D957F296AF39273389FF39DED5489D3B6 | sha256: 06494D0065E95223730F76E06B3FBE322C07B11312E5D33B8BD72FB8E66D6D7B | sha512: 9C01ECE7D601A6BC9CF525B70ACF4A535557B6BC478B212B062C88B91CCAB1AB6761695D413B45B1D2C5B88253118F74A5554F09DC9529BC685FBDFFA1B7F0BE
tools\hashcat-4.1.0\hashcat32.exe.ignore
 
tools\hashcat-4.1.0\hashcat64.exe
md5: 89F168B35BE786FA94F4AACAB9FFF7F9 | sha1: 9C44B0D8D3B9B5F3B1280639311001987DB3DAD9 | sha256: 25BC37F7B1CA215A69F0589C8F2C3C1C72F101235B545539A973DA81DE07492E | sha512: B66D464DCC0B963A20EB6E3414A63135A85AA1232C5F5A56DD2D591781816132B45525A08EEF17C887575EC55DC751C5436FC285AA796D8424EE1A4C31EDB7A3
tools\hashcat-4.1.0\hashcat64.exe.ignore
 
tools\hashcat-4.1.0\masks\8char-1l-1u-1d-1s-compliant.hcmask
 
tools\hashcat-4.1.0\masks\8char-1l-1u-1d-1s-noncompliant.hcmask
 
tools\hashcat-4.1.0\masks\rockyou-1-60.hcmask
 
tools\hashcat-4.1.0\masks\rockyou-2-1800.hcmask
 
tools\hashcat-4.1.0\masks\rockyou-3-3600.hcmask
 
tools\hashcat-4.1.0\masks\rockyou-4-43200.hcmask
 
tools\hashcat-4.1.0\masks\rockyou-5-86400.hcmask
 
tools\hashcat-4.1.0\masks\rockyou-6-864000.hcmask
 
tools\hashcat-4.1.0\masks\rockyou-7-2592000.hcmask
 
tools\hashcat-4.1.0\OpenCL\amp_a0.cl
 
tools\hashcat-4.1.0\OpenCL\amp_a1.cl
 
tools\hashcat-4.1.0\OpenCL\amp_a3.cl
 
tools\hashcat-4.1.0\OpenCL\inc_cipher_aes.cl
 
tools\hashcat-4.1.0\OpenCL\inc_cipher_serpent.cl
 
tools\hashcat-4.1.0\OpenCL\inc_cipher_twofish.cl
 
tools\hashcat-4.1.0\OpenCL\inc_common.cl
 
tools\hashcat-4.1.0\OpenCL\inc_comp_multi.cl
 
tools\hashcat-4.1.0\OpenCL\inc_comp_multi_bs.cl
 
tools\hashcat-4.1.0\OpenCL\inc_comp_single.cl
 
tools\hashcat-4.1.0\OpenCL\inc_comp_single_bs.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_constants.h
 
tools\hashcat-4.1.0\OpenCL\inc_hash_functions.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_md4.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_md5.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_ripemd160.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_sha1.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_sha224.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_sha256.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_sha384.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_sha512.cl
 
tools\hashcat-4.1.0\OpenCL\inc_hash_whirlpool.cl
 
tools\hashcat-4.1.0\OpenCL\inc_luks_aes.cl
 
tools\hashcat-4.1.0\OpenCL\inc_luks_af.cl
 
tools\hashcat-4.1.0\OpenCL\inc_luks_essiv.cl
 
tools\hashcat-4.1.0\OpenCL\inc_luks_serpent.cl
 
tools\hashcat-4.1.0\OpenCL\inc_luks_twofish.cl
 
tools\hashcat-4.1.0\OpenCL\inc_luks_xts.cl
 
tools\hashcat-4.1.0\OpenCL\inc_rp.cl
 
tools\hashcat-4.1.0\OpenCL\inc_rp.h
 
tools\hashcat-4.1.0\OpenCL\inc_rp_optimized.cl
 
tools\hashcat-4.1.0\OpenCL\inc_rp_optimized.h
 
tools\hashcat-4.1.0\OpenCL\inc_scalar.cl
 
tools\hashcat-4.1.0\OpenCL\inc_simd.cl
 
tools\hashcat-4.1.0\OpenCL\inc_truecrypt_crc32.cl
 
tools\hashcat-4.1.0\OpenCL\inc_truecrypt_xts.cl
 
tools\hashcat-4.1.0\OpenCL\inc_types.cl
 
tools\hashcat-4.1.0\OpenCL\inc_vendor.cl
 
tools\hashcat-4.1.0\OpenCL\m00000_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00000_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00000_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00010_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00010_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00010_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00010_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00010_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00010_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00020_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00020_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00020_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00020_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00020_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00020_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00030_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00030_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00030_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00030_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00030_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00030_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00040_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00040_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00040_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00040_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00040_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00040_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00050_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00050_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00050_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00050_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00050_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00050_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00060_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00060_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00060_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00060_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00060_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00060_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00100_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00100_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00100_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00110_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00110_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00110_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00110_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00110_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00110_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00120_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00120_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00120_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00120_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00120_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00120_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00130_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00130_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00130_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00130_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00130_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00130_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00140_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00140_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00140_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00140_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00140_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00140_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00150_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00150_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00150_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00150_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00150_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00150_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00160_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00160_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00160_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00160_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00160_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00160_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00200_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00200_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00200_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00300_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00300_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00300_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00300_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00300_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00300_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m00400-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00400.cl
 
tools\hashcat-4.1.0\OpenCL\m00500-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00500.cl
 
tools\hashcat-4.1.0\OpenCL\m00600_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00600_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00600_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00900_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00900_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m00900_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00900_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m00900_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m00900_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01000_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01000_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01000_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01100_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01100_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01100_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01300_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01300_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01300_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01300_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01300_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01300_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01400_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01400_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01400_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01400_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01400_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01400_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01410_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01410_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01410_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01410_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01410_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01410_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01420_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01420_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01420_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01420_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01420_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01420_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01430_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01430_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01430_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01430_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01430_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01430_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01440_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01440_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01440_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01440_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01440_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01440_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01450_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01450_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01450_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01450_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01450_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01450_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01460_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01460_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01460_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01460_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01460_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01460_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01500_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01500_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01500_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01600-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01600.cl
 
tools\hashcat-4.1.0\OpenCL\m01700_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01700_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01700_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01700_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01700_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01700_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01710_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01710_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01710_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01710_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01710_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01710_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01720_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01720_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01720_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01720_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01720_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01720_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01730_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01730_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01730_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01730_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01730_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01730_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01740_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01740_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01740_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01740_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01740_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01740_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01750_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01750_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01750_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01750_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01750_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01750_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01760_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01760_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m01760_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01760_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m01760_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01760_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m01800-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m01800.cl
 
tools\hashcat-4.1.0\OpenCL\m02000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m02000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m02000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m02100.cl
 
tools\hashcat-4.1.0\OpenCL\m02400_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02400_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02400_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02410_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02410_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02410_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02500.cl
 
tools\hashcat-4.1.0\OpenCL\m02501.cl
 
tools\hashcat-4.1.0\OpenCL\m02610_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02610_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m02610_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02610_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m02610_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02610_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m02710_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02710_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02710_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02810_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02810_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m02810_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02810_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m02810_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m02810_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m03000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m03000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m03000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m03100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03200.cl
 
tools\hashcat-4.1.0\OpenCL\m03710_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03710_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m03710_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03710_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m03710_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03710_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m03800_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03800_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m03800_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03800_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m03800_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03800_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m03910_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03910_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m03910_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03910_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m03910_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m03910_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m04010_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04010_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m04010_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04010_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m04010_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04010_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m04110_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04110_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m04110_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04110_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m04110_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04110_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m04310_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04310_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m04310_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04310_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m04310_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04310_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m04400_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04400_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m04400_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04400_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m04400_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04400_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m04500_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04500_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m04500_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04500_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m04500_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04500_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m04520_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04520_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m04520_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04520_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m04520_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04520_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m04700_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04700_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m04700_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04700_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m04700_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04700_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m04800_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04800_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m04800_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04800_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m04800_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04800_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m04900_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04900_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m04900_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04900_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m04900_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m04900_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m05000_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05000_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05000_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05100_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m05100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05100_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m05100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05100_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m05200.cl
 
tools\hashcat-4.1.0\OpenCL\m05300_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05300_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m05300_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05300_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m05300_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05300_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m05400_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05400_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m05400_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05400_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m05400_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05400_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m05500_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05500_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m05500_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05500_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m05500_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05500_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m05600_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05600_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m05600_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05600_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m05600_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05600_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m05800-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m05800.cl
 
tools\hashcat-4.1.0\OpenCL\m06000_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m06000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m06000_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m06000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m06000_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m06000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m06100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m06100_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m06100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m06100_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m06100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m06100_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m06211.cl
 
tools\hashcat-4.1.0\OpenCL\m06212.cl
 
tools\hashcat-4.1.0\OpenCL\m06213.cl
 
tools\hashcat-4.1.0\OpenCL\m06221.cl
 
tools\hashcat-4.1.0\OpenCL\m06222.cl
 
tools\hashcat-4.1.0\OpenCL\m06223.cl
 
tools\hashcat-4.1.0\OpenCL\m06231.cl
 
tools\hashcat-4.1.0\OpenCL\m06232.cl
 
tools\hashcat-4.1.0\OpenCL\m06233.cl
 
tools\hashcat-4.1.0\OpenCL\m06300-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m06300.cl
 
tools\hashcat-4.1.0\OpenCL\m06400.cl
 
tools\hashcat-4.1.0\OpenCL\m06500.cl
 
tools\hashcat-4.1.0\OpenCL\m06600.cl
 
tools\hashcat-4.1.0\OpenCL\m06700.cl
 
tools\hashcat-4.1.0\OpenCL\m06800.cl
 
tools\hashcat-4.1.0\OpenCL\m06900_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m06900_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m06900_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07000_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m07000_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m07000_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m07100.cl
 
tools\hashcat-4.1.0\OpenCL\m07300_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07300_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m07300_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07300_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m07300_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07300_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m07400-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07400.cl
 
tools\hashcat-4.1.0\OpenCL\m07500_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07500_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m07500_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07500_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m07500_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07500_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m07700_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07700_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07700_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07800_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07800_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07800_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m07900.cl
 
tools\hashcat-4.1.0\OpenCL\m08000_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08000_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08000_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08100_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m08100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08100_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m08100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08100_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m08200.cl
 
tools\hashcat-4.1.0\OpenCL\m08300_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08300_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m08300_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08300_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m08300_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08300_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m08400_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08400_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m08400_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08400_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m08400_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08400_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m08500_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m08500_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m08500_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m08600_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m08600_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m08600_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m08700_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08700_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08700_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m08800.cl
 
tools\hashcat-4.1.0\OpenCL\m08900.cl
 
tools\hashcat-4.1.0\OpenCL\m09000.cl
 
tools\hashcat-4.1.0\OpenCL\m09100.cl
 
tools\hashcat-4.1.0\OpenCL\m09400.cl
 
tools\hashcat-4.1.0\OpenCL\m09500.cl
 
tools\hashcat-4.1.0\OpenCL\m09600.cl
 
tools\hashcat-4.1.0\OpenCL\m09700_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09700_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09700_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09710_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09710_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09710_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09720_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09720_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09720_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09800_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09800_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09800_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09810_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09810_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09810_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09820_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09820_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09820_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09900_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09900_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m09900_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09900_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m09900_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m09900_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m10100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10300.cl
 
tools\hashcat-4.1.0\OpenCL\m10400_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10400_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10400_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10410_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10410_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10410_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10420_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10420_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10420_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10500.cl
 
tools\hashcat-4.1.0\OpenCL\m10700-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10700.cl
 
tools\hashcat-4.1.0\OpenCL\m10800_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10800_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m10800_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10800_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m10800_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m10800_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m10900.cl
 
tools\hashcat-4.1.0\OpenCL\m11000_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m11000_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m11000_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m11100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11100_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m11100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11100_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m11100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11100_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m11200_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11200_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m11200_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11200_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m11200_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11200_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m11300.cl
 
tools\hashcat-4.1.0\OpenCL\m11400_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m11400_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m11400_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m11500_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11500_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11500_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11600.cl
 
tools\hashcat-4.1.0\OpenCL\m11700_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11700_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11700_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11800_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11800_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11800_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m11900.cl
 
tools\hashcat-4.1.0\OpenCL\m12000.cl
 
tools\hashcat-4.1.0\OpenCL\m12200.cl
 
tools\hashcat-4.1.0\OpenCL\m12300.cl
 
tools\hashcat-4.1.0\OpenCL\m12400.cl
 
tools\hashcat-4.1.0\OpenCL\m12500.cl
 
tools\hashcat-4.1.0\OpenCL\m12600_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m12600_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m12600_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m12600_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m12600_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m12600_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m12700.cl
 
tools\hashcat-4.1.0\OpenCL\m12800.cl
 
tools\hashcat-4.1.0\OpenCL\m12900.cl
 
tools\hashcat-4.1.0\OpenCL\m13000.cl
 
tools\hashcat-4.1.0\OpenCL\m13100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13100_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m13100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13100_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m13100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13100_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m13200.cl
 
tools\hashcat-4.1.0\OpenCL\m13300_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13300_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m13300_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13300_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m13300_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13300_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m13400.cl
 
tools\hashcat-4.1.0\OpenCL\m13500_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13500_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m13500_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13500_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m13500_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13500_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m13600.cl
 
tools\hashcat-4.1.0\OpenCL\m13751.cl
 
tools\hashcat-4.1.0\OpenCL\m13752.cl
 
tools\hashcat-4.1.0\OpenCL\m13753.cl
 
tools\hashcat-4.1.0\OpenCL\m13800_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13800_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m13800_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13800_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m13800_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13800_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m13900_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13900_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m13900_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13900_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m13900_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m13900_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m14000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m14000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m14000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m14100_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m14100_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m14100_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m14400_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m14400_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m14400_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m14400_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m14400_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m14400_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m14611.cl
 
tools\hashcat-4.1.0\OpenCL\m14612.cl
 
tools\hashcat-4.1.0\OpenCL\m14613.cl
 
tools\hashcat-4.1.0\OpenCL\m14621.cl
 
tools\hashcat-4.1.0\OpenCL\m14622.cl
 
tools\hashcat-4.1.0\OpenCL\m14623.cl
 
tools\hashcat-4.1.0\OpenCL\m14631.cl
 
tools\hashcat-4.1.0\OpenCL\m14632.cl
 
tools\hashcat-4.1.0\OpenCL\m14633.cl
 
tools\hashcat-4.1.0\OpenCL\m14641.cl
 
tools\hashcat-4.1.0\OpenCL\m14642.cl
 
tools\hashcat-4.1.0\OpenCL\m14643.cl
 
tools\hashcat-4.1.0\OpenCL\m14700.cl
 
tools\hashcat-4.1.0\OpenCL\m14800.cl
 
tools\hashcat-4.1.0\OpenCL\m14900_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m14900_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m14900_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15000_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m15000_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m15000_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m15100.cl
 
tools\hashcat-4.1.0\OpenCL\m15300.cl
 
tools\hashcat-4.1.0\OpenCL\m15400_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15400_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15400_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15500_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15500_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m15500_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15500_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m15500_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m15500_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m15600.cl
 
tools\hashcat-4.1.0\OpenCL\m15700.cl
 
tools\hashcat-4.1.0\OpenCL\m15900.cl
 
tools\hashcat-4.1.0\OpenCL\m16000_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m16000_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m16000_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m16100_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m16100_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m16100_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m16100_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m16100_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m16100_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m16200.cl
 
tools\hashcat-4.1.0\OpenCL\m16300.cl
 
tools\hashcat-4.1.0\OpenCL\m16400_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m16400_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m16400_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m16400_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m16400_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m16400_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m16511_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m16511_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m16511_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m16512_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m16512_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m16512_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m16513_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m16513_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m16513_a3.cl
 
tools\hashcat-4.1.0\OpenCL\m16600_a0-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m16600_a0.cl
 
tools\hashcat-4.1.0\OpenCL\m16600_a1-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m16600_a1.cl
 
tools\hashcat-4.1.0\OpenCL\m16600_a3-optimized.cl
 
tools\hashcat-4.1.0\OpenCL\m16600_a3.cl
 
tools\hashcat-4.1.0\OpenCL\markov_be.cl
 
tools\hashcat-4.1.0\OpenCL\markov_le.cl
 
tools\hashcat-4.1.0\rules\best64.rule
 
tools\hashcat-4.1.0\rules\combinator.rule
 
tools\hashcat-4.1.0\rules\d3ad0ne.rule
 
tools\hashcat-4.1.0\rules\dive.rule
 
tools\hashcat-4.1.0\rules\generated.rule
 
tools\hashcat-4.1.0\rules\generated2.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_d.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_ds.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_du.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_dus.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_hl.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_hu.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_l.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_ld.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_lds.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_ldu.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_ldus.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_ls.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_lu.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_lus.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_s.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_u.rule
 
tools\hashcat-4.1.0\rules\hybrid\append_us.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_d.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_ds.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_du.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_dus.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_hl.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_hu.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_l.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_ld.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_lds.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_ldu.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_ldus.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_ls.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_lu.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_lus.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_s.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_u.rule
 
tools\hashcat-4.1.0\rules\hybrid\prepend_us.rule
 
tools\hashcat-4.1.0\rules\Incisive-leetspeak.rule
 
tools\hashcat-4.1.0\rules\InsidePro-HashManager.rule
 
tools\hashcat-4.1.0\rules\InsidePro-PasswordsPro.rule
 
tools\hashcat-4.1.0\rules\leetspeak.rule
 
tools\hashcat-4.1.0\rules\oscommerce.rule
 
tools\hashcat-4.1.0\rules\rockyou-30000.rule
 
tools\hashcat-4.1.0\rules\specific.rule
 
tools\hashcat-4.1.0\rules\T0XlC-insert_00-99_1950-2050_toprules_0_F.rule
 
tools\hashcat-4.1.0\rules\T0XlC-insert_space_and_special_0_F.rule
 
tools\hashcat-4.1.0\rules\T0XlC-insert_top_100_passwords_1_G.rule
 
tools\hashcat-4.1.0\rules\T0XlC.rule
 
tools\hashcat-4.1.0\rules\T0XlCv1.rule
 
tools\hashcat-4.1.0\rules\toggles1.rule
 
tools\hashcat-4.1.0\rules\toggles2.rule
 
tools\hashcat-4.1.0\rules\toggles3.rule
 
tools\hashcat-4.1.0\rules\toggles4.rule
 
tools\hashcat-4.1.0\rules\toggles5.rule
 
tools\hashcat-4.1.0\rules\unix-ninja-leetspeak.rule
 
tools\hashcat.ps1
$currentDir = Get-Location                                  # Store location

Set-Location "$env:ChocolateyToolsLocation\hashcat-4.1.0\"  # Change to install-dir

$argumentsString = $args -join ' '                          # Join arguments to a string

if([Environment]::Is64BitProcess) {                         # If 64-bit
  Invoke-Expression ".\hashcat64.exe $argumentsString"      # Invoke 64-bit executable with parameters
}
else {                                                      # If not 64-bit
  Invoke-Expression ".\hashcat32.exe $argumentsString"      # Invoke 32-bit executable with parameters
}

Set-Location "$currentDir"                                  # Change to the stored location
tools\LICENSE.txt
From: https://github.com/hashcat/hashcat/blob/d0e66bf1985e1325aa828be2059e7304b8b66312/docs/license.txt

LICENSE

The MIT License (MIT)

Copyright (c) 2015-2017 Jens Steube

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
tools\VERIFICATION.txt
VERIFICATION
1. Download Hashcat v4.1.0 from https://hashcat.net/hashcat/
2. Use 7zip to unpack the files
3. Remove the .sh and .bin files in the extracted folder.
4. Compute the checksum of the files in the extracted folder.
5. Compute the checksum of the files in the tools/hashcat-4.1.0-folder of this package. 
6. Compare checksums - They should match.

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
Discussion for the Hashcat (Install) Package

Ground Rules:

  • This discussion is only about Hashcat (Install) and the Hashcat (Install) package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Hashcat (Install), or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus