"Fossies" - the Fresh Open Source Software Archive 
Member "hashcat-6.2.6/docs/changes.txt" (2 Sep 2022, 112867 Bytes) of package /linux/privat/hashcat-6.2.6.tar.gz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
See also the latest
Fossies "Diffs" side-by-side code changes report for "changes.txt":
6.2.5_vs_6.2.6.
1 * changes v6.2.5 -> v6.2.6
2
3 ##
4 ## Algorithms
5 ##
6
7 - Added hash-mode: Amazon AWS4-HMAC-SHA256
8 - Added hash-mode: Bitcoin WIF private key (P2PKH)
9 - Added hash-mode: Bitcoin WIF private key (P2SH(P2WPKH))
10 - Added hash-mode: Bitcoin WIF private key (P2WPKH, Bech32)
11 - Added hash-mode: BLAKE2b-512($pass.$salt)
12 - Added hash-mode: BLAKE2b-512($salt.$pass)
13 - Added hash-mode: DPAPI masterkey file v1 (context 3)
14 - Added hash-mode: DPAPI masterkey file v2 (context 3)
15 - Added hash-mode: Exodus Desktop Wallet (scrypt)
16 - Added hash-mode: Flask session cookie
17 - Added hash-mode: KeePass 1 (AES/Twofish) and KeePass 2 (AES) - keyfile only mode
18 - Added hash-mode: Kerberos 5, etype 17, DB
19 - Added hash-mode: Kerberos 5, etype 18, DB
20 - Added hash-mode: PostgreSQL SCRAM-SHA-256
21 - Added hash-mode: Radmin3
22 - Added hash-mode: Teamspeak 3 (channel hash)
23 - Added hash-mode: Terra Station Wallet (AES256-CBC(PBKDF2($pass)))
24 - Added hash-mode: bcrypt(sha512($pass)) / bcryptsha512
25 - Added hash-mode: md5(sha1($pass).$salt)
26 - Added hash-mode: sha1($salt.sha1(utf16le($username).':'.utf16le($pass)))
27 - Added hash-mode: sha256($salt.sha256_bin($pass))
28
29 ##
30 ## Features
31 ##
32
33 - Added new backend support for Metal, the OpenCL replacement API on Apple
34 - Added support to building universal macOS binary on Apple Silicon
35 - Added support to use --debug-mode in attack-mode 9 (Association Attack)
36 - Added hex encoding format for --separator option
37 - Added password candidates range to --status-json output
38 - Added parameter to Bitwarden mode for second iteration count
39 - Added support to use 'John the Ripper' hash format with hash-type 13100
40 - Added support to use 'John the Ripper' hash format with hash-type 18200
41 - Added the hash extraction scripts from the tools folder also to beta/release versions
42 - Added user advice if a hash throws 'token length exception'
43 - Added tunings/ folder in order to replace hashcat.hctune. Configuration files with *.hctune suffix are automatically load on startup
44
45 ##
46 ## Bugs
47 ##
48
49 - Fixed accepted salt length by PKCS#8 Private Keys modules
50 - Fixed autodetect memory allocation for temporary hashes for LUKS v1 (legacy) in --identify mode
51 - Fixed backend active devices checks
52 - Fixed building error on Raspberry Pi
53 - Fixed display problem of incorrect negative values in case of large numbers
54 - Fixed display problem of the "Optimizers applied" list for algorithms using Register-Limit
55 - Fixed example password output of --hash-info: force uppercase if OPTS_TYPE_PT_UPPER is set
56 - Fixed false negative on hash-type 27800 if using vector width greater than 1 and -a 3
57 - Fixed false negative on hash-types 4510 and 4710 for hashes with long salts
58 - Fixed false negative on hash-types 8900, 15700, 22700, 27700 and 28200 if using the HIP backend
59 - Fixed false negative on Unit Test in case of out-of-memory with grep in single mode
60 - Fixed false negative on Unit Test with hash-type 25400
61 - Fixed functional error when nonce-error-corrections that were set on the command line in hash-mode 22000/22001 were not accepted
62 - Fixed handling of devices in benchmark mode for "kernel build error". Instead of canceling, skip the device and move on to the next
63 - Fixed handling of password candidates that are shorter than the minimum password length in Association Attack
64 - Fixed invalid handling of keyfiles in Keepass if transf_random_seed doesn't change
65 - Fixed memory leak in CPU rule engine
66 - Fixed method of how OPTS_TYPE_AUX* kernels are called in an association attack, for example in WPA/WPA2 kernel
67 - Fixed missing option flag OPTS_TYPE_SUGGEST_KG for hash-mode 11600 to inform the user about possible false positives in this mode
68 - Fixed optimized (-O) candidate generation with --stdout and -a 7
69 - Fixed password limit in optimized kernel for hash-mode 10700
70 - Fixed password reassembling function reporting an incorrect candidate in some cases when the correct candidate has zero length
71 - Fixed undefined function call to hc_byte_perm_S() in hash-mode 17010 on non-CUDA compute devices
72 - Fixed unit test early exit on luks test file download/extract failure
73 - Fixed unit test false negative if there are spaces in the filesystem path to hashcat
74 - Fixed unit test salt-max in case of optimized kernel, with hash-type 22 and 23
75 - Fixed usage of --rule-right (-k) in -a 7 with optimized (-O) kernels
76 - Fixed wordlist handling in -m 3000 when candidate passwords use the $HEX[...] syntax
77
78 ##
79 ## Technical
80 ##
81
82 - AMD Driver: Updated requirements for AMD Linux drivers to "AMDGPU" (21.50 or later) and "ROCm" (5.0 or later)
83 - AMD Driver: Updated requirements for AMD Windows drivers to "AMD Adrenalin Edition" (Adrenalin 22.5.1 exactly)
84 - Association Attack: Enable module specific pw_min and pw_max settings to avoid false positives in -a 9 attack-mode
85 - Autotune: Added error handling. By default skipping device on error, with --force using accel/loops/threads min values instead
86 - Backend: improved management of systems with multiple OpenCL platforms
87 - Backend Info: Added folder_config info to output
88 - Backend Info: Added generic system info to output (must be completed on Windows side)
89 - Backend Info: Added local memory size to output
90 - Backend: with kernel build options, switch from -I to -D INCLUDE_PATH, in order to support Apple Metal runtime
91 - Command Line: Disallow combinations of some options. for instance, using -t in -a 0 mode
92 - CUDA Backend: moved functions to ext_cuda.c/ext_nvrtc.c and includes to ext_cuda.h/ext_nvrtc.h
93 - Debug Rules: Set --debug-file to $session.debugfile if --debug-mode was set by the user and --debug-file was not set
94 - Hardware Monitor: Add support for GPU device utilization readings using iokit on Apple Silicon (OpenCL and Metal)
95 - Hash Info: show more information (Updated Hash-Format. Added Autodetect, Self-Test, Potfile and Plaintext encoding)
96 - HIP Backend: moved functions to ext_hip.c/ext_hiprtc.c and includes to ext_hip.h/ext_hiprtc.h
97 - HIP Backend: removed unused functions from hiprtc to workaroung missing function symbols on windows dll
98 - Kernels: Refactored standard kernel declaration to use a structure holding u32/u64 attributes to reduce the number of attributes
99 - Kernels: Refactored standard kernel includes, KERN_ATTR macros and RC4 cipher functions, in order to support Apple Metal runtime
100 - Kernels: Set the default Address Space Qualifier for any pointer, in order to support Apple Metal runtime
101 - Logfile: Write per-session "recovered new" value to logfile
102 - Makefile: updated MACOSX_DEPLOYMENT_TARGET to 10.15 and removed OpenCL framework from LFLAGS_NATIVE on MacOS
103 - Metal Runtime: added support for vectors up to 4
104 - Modules: Added suffix *legacy* to old TrueCrypt modules (6211-6243)
105 - Modules: Added suffix *legacy* to old VeraCrypt modules (13711-13783)
106 - Modules: Added support of a custom charset setting for benchmarks to the module interface
107 - Modules: New LUKS v1 modules (29511-29543) which do not use `module_hash_binary_parse` to get data from containers anymore (use new tool `tools/luks2hashcat.py`)
108 - Modules: New TrueCrypt modules (29311-29343) which do not use `module_hash_binary_parse` to get data from containers anymore (use new tool `tools/truecrypt2hashcat.py`)
109 - Modules: New VeraCrypt modules (29411-29483) which do not use `module_hash_binary_parse` to get data from containers anymore (use new tool `tools/veracrypt2hashcat.py`)
110 - Modules: Renamed old LUKS module into LUKS v1 and added suffix *legacy* (14600)
111 - OpenCL Backend: added workaround to make optimized kernels work on Apple Silicon
112 - OpenCL Backend: moved functions to ext_OpenCL.c and includes to ext_OpenCL.h
113 - OpenCL Backend: show device_type in device list info on Apple Silicon
114 - OpenCL Kernel: Set native_threads to 32 on Apple GPU's for various hash-modes
115 - OpenCL Runtime: Added support to use Apple Silicon compute devices
116 - OpenCL Runtime: Add some unstable warnings detected on macOS
117 - OpenCL Runtime: Set default device-type to GPU with Apple Silicon compute devices
118 - Restore: Restore timer is decreased from 60 seconds to 1 second, but only updates if there's actually a change compared to previous data written to restore file
119 - Rules: Add new rulesets from T0XlC: T0XlCv2, T0XlC_3_rule, T0XlC_insert_HTLM_entities_0_Z
120 - Rules: Add support to include source wordlist in debugging format
121 - Rules: Update hand-written rulesets to covers years up to 2029
122 - Status code: updated negative status code (added kernel create failure and resync)
123 - Status code: updated negative status code, usefull in Unit tests engine (test.sh)
124 - Terminal: Increased size of hash name column in `--help` and `--identify` options
125 - Terminal: Limit output length of example hash in --example-hash mode to 200. Use --mach to see full example hash
126 - Terminal: show empty OpenCL platforms only in backend information mode
127 - Tuning Database: Added a warning if a module implements module_extra_tuningdb_block but the installed computing device is not found
128 - Unit tests: added -r (--runtime) option
129 - Unit tests: handle negative status code, skip deprecated hash-types, skip hash-types with known perl modules issues, updated output
130 - Unit tests: Updated test.sh to set default device-type to CPU with Apple Intel and added -f (--force) option
131 - Usage Screen: On windows console, wait for any keypress if usage_mini_print() is used
132 - User Options: Add new module function module_hash_decode_postprocess() to override hash specific configurations from command line
133 - User Options: Change --backend-info/-I option type, from bool to uint
134 - Workflow: Added basic workflow for GitHub Actions
135
136 * changes v6.2.4 -> v6.2.5
137
138 ##
139 ## Algorithms
140 ##
141
142 - Added hash-mode: CRC32C
143 - Added hash-mode: CRC64Jones
144 - Added hash-mode: MultiBit Classic .wallet (scrypt)
145 - Added hash-mode: MurmurHash3
146 - Added hash-mode: Windows Hello PIN/Password
147
148 ##
149 ## Performance
150 ##
151
152 - PDF Kernel (10700): Improved performance on AMD GPUs by using shared memory for the scratch buffer and disabled inlining to save spilling
153
154 ##
155 ## Bugs
156 ##
157
158 - Fixed divide by zero error because backend_ctx->hardware_power_all was not re-inserted after refactoring device_param->hardware_power
159 - Fixed invalid handling of initialization value for -m 11500
160 - Fixed invalid progress counter initialization in attack-mode 9 when using --skip or --restore
161 - Fixed out-of-boundary reads in attack-mode 9 that were caused by a missing work item limit in the refactored autotune engine
162 - Fixed out-of-boundary reads in hash-mode 22400 (AES Crypt) kernel
163 - Fixed strategy for eliminating hashes with zero length in LM when multiple hashes contain a zero hash
164
165 ##
166 ## Technical
167 ##
168
169 - AMD Driver: Updated requirements for AMD Linux drivers to ROCm 4.5 or later due to new HIP interface
170 - Backend devices: In -S mode, limit the number of workitems so that no more than 2GB of host memory is required per backend device
171 - Backend devices: In non -S mode, limit the number of workitems so that no more than 4GB of host memory is required per backend device
172 - Backend types: The default filter for the device types is now set so that only the GPU is used, except for APPLE, where we set CPU
173 - Benchmark: Update benchmark_deep.pl with new hash modes added (also new hash modes which were added with v6.2.3)
174 - Electrum Wallet: Added new entropy-based check to test whether the decryption was successful or not
175 - Module Optimizers: Added OPTS_TYPE_MAXIMUM_THREADS to deactivate the else branch route in the section to find -T before compilation
176 - Makefile: Added wildcard include src/modules/module_*.mk directive so that plugin developers can add 3rd party libraries for their plugins
177 - Rejects: Disabled checking of the minimum and maximum length of the password candidate in attack-mode 9 because they are incompatible
178 - POCL: Added a workaround for an issue in POCL where a quote character is used as a part of the path itself which is passed as a path for the -I option
179 - Device Threads: The default maximum device thread number has been reduced from 1024 to 256, users can still overwrite with the -T option
180 - Tuning-DB: Add missing entries for -m 25600 and -m 25800 for CPU cracking
181 - OpenCL Backend: added workaround to support Apple Silicon (GPU: M1, M1 Pro, and M1 Max)
182 - MacOS v10.8+ (PBKDF2-SHA512): Added support for parsing new mac2john hash format directly in the module for -m 7100
183
184 * changes v6.2.3 -> v6.2.4
185
186 ##
187 ## Algorithms
188 ##
189
190 - Added hash-mode: SNMPv3 HMAC-MD5-96/HMAC-SHA1-96
191 - Added hash-mode: SNMPv3 HMAC-MD5-96
192 - Added hash-mode: SNMPv3 HMAC-SHA1-96
193 - Added hash-mode: SNMPv3 HMAC-SHA224-128
194 - Added hash-mode: SNMPv3 HMAC-SHA256-192
195 - Added hash-mode: SNMPv3 HMAC-SHA384-256
196 - Added hash-mode: SNMPv3 HMAC-SHA512-384
197 - Added hash-mode: VirtualBox (PBKDF2-HMAC-SHA256 & AES-128-XTS)
198 - Added hash-mode: VirtualBox (PBKDF2-HMAC-SHA256 & AES-256-XTS)
199
200 ##
201 ## Features
202 ##
203
204 - Added option --deprecated-check-disable to enable deprecated plugins
205 - Added option --generate-rules-func-sel to specify a pool of operators that the random rule generator is allowed to pick from
206 - Added option --multiply-accel-disable (short: -M) to disable multiplying of the kernel accel with the multiprocessor count
207 - Added rule function '3' to change the case of the first letter after the occurrence of N of character X
208 - Added support for auto tuning --kernel-threads (-T) at startup
209 - Added support for HIP version 4.3 or later and removed support for older HIP versions as they are not compatible
210
211 ##
212 ## Bugs
213 ##
214
215 - Fixed broken support for --generate-rules-func-min which was ignored under certain conditions
216 - Fixed buffer overflow in DPAPI masterkey file v1/v2 module in hash_encode() and hash_decode()
217 - Fixed buffer overflow in Stargazer Stellar Wallet XLM module in hash_encode() when a hash was cracked
218 - Fixed false negative in all VeraCrypt hash modes if both conditions are met: 1. Use CPU for cracking and 2. PIM area was used
219 - Fixed invalid data type in the sha384_hmac_init_vector_128() function that take effect if the vector data type was specified manually
220 - Fixed out-of-boundary read in input_tokenizer() if the signature in the hash is longer than the length of the plugin's signature constant
221 - Fixed out-of-boundary read in PKZIP masterkey kernel if the password candidate has length zero
222 - Fixed out-of-boundary read in the Stuffit5 module in hash_decode()
223 - Fixed random rule generator option --generate-rules-func-min by fixing switch() case to not select a not existing option group type
224 - Fixed segfault when a combination of the flags --user and --show is given and a hash was specified directly on the command line
225 - Fixed syntax check of HAS_VPERM macro in several kernel includes causing invalid error message for AMD GPUs on Windows
226 - Fixed uninitialized tmps variable in autotune for slow hashes by calling _init and _prepare kernel before calling _loop kernel
227 - Fixed unintentional overwriting of the --quiet option in benchmark and speed-only mode
228
229 ##
230 ## Performance
231 ##
232
233 - AMD GPUs: Add inline assembly code for md5crypt, sha256crypt, PDF 1.7, 7-Zip, RAR3, Samsung Android and Windows Phone 8+
234 - AMD GPUs: On the Apple OpenCL platform, we ask for the preferred kernel thread size rather than hard-coding 32
235 - Backend Interface: Replace most of the blocking Compute API functions with asynchronous ones to improve GPU utilization
236 - Blake Kernels: Optimize 3/4 BLAKE2B_ROUND() 64-bit rotations with inline assembly hc_byte_perm_S() calls
237 - Blowfish Kernels: Backport optimizations to reduce bank conflicts from bcrypt to Password Safe v2 and Open Document Format (ODF) 1.1
238 - ECC secp256k1: The inline assembly code for AMD GPUs has been removed as the latest JIT compilers optimize it with the same efficiency
239 - HIP Kernels: Enable vector data types for HIP kernels for functionality and performance
240 - Kernel threads: Use warp size / wavefront size query instead of hard-coded values as the basis for kernel threads
241 - SCRYPT Kernels: Improve Hashcat.hctune entries for many NV and AMD GPUs for hash mode 8900, 9300, 15700 and 22700
242 - STDIN: Reduce the performance gap between stdin and wordlist by disabling the --stdin-timeout-abort check after 1000 successful reads
243 - Tuning Database: Add new module function module_extra_tuningdb_block() to extend hashcat.hctune content from a module
244
245 ##
246 ## Technical
247 ##
248
249 - 7-Zip Hook: Increase the supported data length from 320kb to 8mb
250 - ADL: Updated support for AMD Display Library to 15.0, updated data types
251 - AMD Driver: Updated requirements for AMD Linux drivers to ROCm 4.3 or later due to new HIP interface
252 - AMD Driver: Updated requirements for AMD Windows drivers to Adrenalin 21.2.1 or later due to new ADL library
253 - Autotune: Add autotune event to inform the user about autotune is starting/stopping on startup
254 - Backend Interface: Implement gpu_bzero() as a gpu_memset() replacement, since all gpu_memset() operations used 0 as the value
255 - Backend Interface: Improve the query kernel's dynamic memory size based on DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN instead of BF
256 - Brain Session: Adds hashconfig-specific opti_type and opts_type parameters to the session calculation to enable cover functions like -O
257 - Commandline: Fix some memory leaks in case hashcat aborts due to command line parameter settings
258 - Commandline: Throw an error if the separator specified by the user with the -p option is not exactly 1 byte
259 - Community: Add link to new hashcat discord to docs/contact.txt
260 - Constants: Make const char * pointers actually const char * const pointers
261 - Deprecated Plugins: Add new module function module_deprecated_notice() to mark a plugin as deprecated and to return a free text user notice
262 - Deprecated Plugins: Marked plugins 2500/2501 and 16800/16801 as deprecated
263 - Encoding: Truncate password candidates in UTF8 -> UTF16 conversion if it contains an invalid UTF8 byte sequence
264 - Filehandling: Avoid direct access to some file handles and use internal structures instead
265 - Filehandling: Use const char for fopen mode to fix -Wwrite-strings warnings
266 - Hardware Monitor: Added support for OverDrive 7 and 8 based GPUs
267 - HIP Kernels: Dependency on hip/hip runtime.h has been removed to enable easier integration of the HIP backend under Windows
268 - Kernel cache: Add kernel threads for hash calculation, which will later be used in the file name of the kernel cache
269 - Memory Management: Check in OpenCL that CL_DEVICE_HOST_UNIFIED_MEMORY is true and if so, then half of the available memory
270 - Memory Management: Refactored the code responsible for limiting kernel accel with the goal to avoid low host memory situations
271 - MetaMask: Added special extraction tool for MetaMask wallets
272 - NEO driver: Activate the NEO driver (Intel GPU) after it passed several tests in hashcat using the latest NEO driver version
273 - OpenCL Runtime: The use of clUnloadPlatformCompiler () was disabled after some users received unexpected return codes
274 - OpenCL Runtime: Workaround for Intel OpenCL runtime: segmentation fault when compiling hc_enc_next() / hc_enc_next_global()
275 - Potfile: Fixed some leaks in potfile_*_open(), potfile_*_close(), potfile_destroy() and don't assume plain file
276 - RC4 Kernels: Use improved native thread derivation for RC4-based hash modes 7500, 13100, 18200, 25400
277 - Shared Memory: Calculate the dynamic memory size of the kernel based on CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN
278 - Slow kernels: Set some of the slowest kernels to OPTS_TYPE_MP_MULTI_DISABLE to make it easier to handle small word lists
279 - Status view: Add hash-mode (-m number) in addition to hash-name
280 - Vendor Discovery: Add "Intel" as a valid vendor name for GPUs on macOS
281 - MetaMask: Increase the supported data len from 784b to 3136b and set pw-min to 8
282
283 * changes v6.2.2 -> v6.2.3
284
285 ##
286 ## Algorithms
287 ##
288
289 - Added hash-mode: AES-128-ECB NOKDF (PT = $salt, key = $pass)
290 - Added hash-mode: AES-192-ECB NOKDF (PT = $salt, key = $pass)
291 - Added hash-mode: AES-256-ECB NOKDF (PT = $salt, key = $pass)
292 - Added hash-mode: iPhone passcode (UID key + System Keybag)
293 - Added hash-mode: MetaMask Wallet
294 - Added hash-mode: VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 512 bit + boot-mode
295 - Added hash-mode: VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1024 bit + boot-mode
296 - Added hash-mode: VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1536 bit + boot-mode
297
298 ##
299 ## Features
300 ##
301
302 - Added new backend support for HIP, an OpenCL alternative API for AMD GPUs (similar to CUDA for NVIDIA GPUs)
303 - Added option --markov-inverse to inverse markov statistics, with the idea of reversing the order of the password candidates
304 - Added temperature watchdog and fanspeed readings for CPU and GPU on macOS using iokit
305 - Added temperature watchdog and utilization for CPU on linux using sysfs and procfs
306
307 ##
308 ## Bugs
309 ##
310
311 - Fixed access violation in hashconfig_destroy if hashcat_ctx_t is only partially initialized
312 - Fixed 'E' rule in pure kernel mode which was ignoring letters that are in positions that are multiples of 4
313 - Fixed false negative in hash-mode 15900 (DPAPI masterkey file v2) if password was longer than 64 characters
314 - Fixed hashcat_ctx leak and refactor module and kernel existence checks
315 - Fixed integer overflow in Recovered/Time status view column caused by division > 0 but < 1
316 - Fixed invalid ETA if --limit was specified, several salts are in a hash list and some of them were found in a potfile
317 - Fixed memory leak in iconv_ctx and iconv_tmp in backend.c
318 - Fixed missing option to automatically disable kernel cache in -m 25600 and -m 25800
319 - Fixed out-of-boundary write in slow candidates mode in combinator attack
320
321 ##
322 ## Improvements
323 ##
324
325 - Alias Devices: Show a warning in case the user specifically listed a device to use which in a later step is skipped because it is an alias of another active device
326 - Backend Information: Added new column showing the PCI Address per CUDA/OpenCL device to easier identify broken cards
327 - Bcrypt-SHA1/MD5 Kernels: Get rid of local memory use for binary to hex conversion to avoid false negatives on several OpenCL runtimes
328 - CPU Affinity: Allow mask up to 64 processors in Windows and remove call to SetThreadAffinityMask as SetProcessAffinityMask limits all threads in process
329 - Debug Rules: HEX-ify rules debug non-rules outputs that contain colons
330 - KeePass: Increase supported size for KeePass 1 databases from 300kB to 16MB
331 - Potfile: Disable potfile for hash-mode 99999
332 - VeraCrypt: Increase password length support for non-boot volumes from 64 to 128
333 - WPA Kernels: Increased performance by 3.5% for backend devices controlled by CUDA backend
334
335 ##
336 ## Technical
337 ##
338
339 - Autodetect: Limit the number of errors per hash-mode try to 100 to avoid long startup time
340 - Brain: Add brain_ctx_t to hashcat_ctx_t to enable runtime check if hashcat was compiled with brain support
341 - File handling: Do not abort on seeing a BOM in input files, just warn and ignore the BOM
342 - Folders: Do not escape the variable cpath_real to prevent certain OpenCL runtimes from running into an error which do not support escape characters
343 - Java Object hashCode: Add OPTS_TYPE_SUGGEST_KG as a default option
344 - LM: Workaround JiT compiler bug in -m 3000 on NV leading to false negatives with large amount of hashes
345 - OpenCL Runtime: Workaround a problem of the AMD OpenCL GPU driver under macOS which results in false negatives due to changes in the kernel crypto library
346 - OpenCL Runtime: Workaround JiT crash (SC failed. No reason given.) on macOS by limiting local memory allocations to 32k
347 - Status View: Include time and duration info when pausing and resuming
348 - Tests: Changed tests for VeraCrypt from -a 0 to -a 3, because password extension is not available to all shells
349 - WinZip Kernel: Increase supported data length from 8k to 16mb
350
351 * changes v6.2.1 -> v6.2.2
352
353 ##
354 ## Algorithms
355 ##
356
357 - Added hash-mode: bcrypt(md5($pass)) / bcryptmd5
358 - Added hash-mode: bcrypt(sha1($pass)) / bcryptsha1
359 - Added hash-mode: FortiGate256 (FortiOS256)
360 - Added hash-mode: Linux Kernel Crypto API (2.4)
361 - Added hash-mode: MurmurHash
362 - Added hash-mode: OpenEdge Progress Encode
363 - Added hash-mode: md5(utf16le($pass))
364 - Added hash-mode: sha1(utf16le($pass))
365 - Added hash-mode: sha256(utf16le($pass))
366 - Added hash-mode: sha384(utf16le($pass))
367 - Added hash-mode: sha512(utf16le($pass))
368 - Added hash-mode: md5(md5(md5($pass)))
369 - Added hash-mode: sha1(sha1($salt.$pass.$salt))
370 - Added hash-mode: sha256($salt.sha256($pass))
371 - Added hash-mode: sha384($pass.$salt)
372 - Added hash-mode: sha384($salt.$pass)
373 - Added hash-mode: sha384($salt.utf16le($pass))
374 - Added hash-mode: sha384(utf16le($pass).$salt)
375
376 ##
377 ## Features
378 ##
379
380 - Autodetect hash-type: performs an automatic analysis of input hash(es), either listing compatible algorithms, or executing the attack (if only one compatible format is found)
381 - Autodetect hash-type: added option --identify to only perform autodetection of hash-type, without back-end device initialization
382
383 ##
384 ## Bugs
385 ##
386
387 - Fixed error message in -a 9 mode with rules when number of words from wordlist is not in sync with number of unique salts
388 - Fixed error-handling logic in monitor thread to not return in case of error (disk full, permission error, ...) but to retry instead
389 - Fixed false negatives with TrueCrypt/VeraCrypt when zip- or gzip-compressed files were used as keyfiles
390 - Fixed free memory-size output for skipped GPU (both automatic and manual) of --backend-info information screen
391
392 ##
393 ## Improvements
394 ##
395
396 - AES Crypt Plugin: Reduced max password length from 256 to 128 which improved performance by 22%
397 - CUDA Backend: If --stdout is used, do not warn about missing CUDA SDK
398 - Folder Management: Add support for XDG Base Directory specification when hashcat is installed using 'make install'
399 - Hardware Monitor: Add support for GPU device utilization readings from sysfs (AMD on Linux)
400 - OpenCL Backend: Use CL_DEVICE_BOARD_NAME_AMD instead of CL_DEVICE_NAME for device name (when supported by OpenCL runtime)
401 - Performance Monitor: Suggest -S to improve cracking performance in specific attack configurations
402 - RAR3-p (Compressed): Fix workaround in unrar library in AES constant table generation to enable multi-threading support
403 - RC4 Kernels: Improved performance by 20%+ with new RC4 code in hash-modes Kerberos 5 (etype 23), MS Office (<= 2003) and PDF (<= 1.6)
404 - Scrypt Kernels: Re-enable use of kernel cache in scrypt-based kernels
405 - Status Screen: Show currently-running kernel type (pure, optimized) and generator type (host, device)
406 - UTF8-to-UTF16: Replaced naive UTF8-to-UTF16 conversion with true conversion for RAR3, AES Crypt, MultiBit HD (scrypt) and Umbraco HMAC-SHA1
407
408 ##
409 ## Technical
410 ##
411
412 - Dependencies: Updated LZMA SDK from 19.00 to 21.02 alpha
413 - Dependencies: Updated xxHash from 0.1.0 to v0.8.0 - Stable XXH3
414 - Documentation: Update missing documentation in plugin developer guide for OPTS_TYPE_MP_MULTI_DISABLE and OPTS_TYPE_NATIVE_THREADS
415 - Hashrate: Update inner-loop hashrate prediction to handle new salt_repeats feature and also respect _loop2 kernel runtime
416 - Kernels: Add RC4 cipher to crypto library with optimized shared memory access pattern which will not cause any bank conflicts if -u <= 32
417 - Kernels: Add standalone true UTF8-to-UTF16 converter kernel that runs after amplifier. Use OPTS_TYPE_POST_AMP_UTF16LE from plugin
418 - Kernel Cache: Add module_jit_build_options() string from modules to kernel cache checksum calculation
419 - Modules: Recategorized HASH_CATEGORY option in various modules
420 - Modules: Added hash categories HASH_CATEGORY_IMS and HASH_CATEGORY_CRYPTOCURRENCY_WALLET
421 - Modules: Changed hash category of Python passlib from HASH_CATEGORY_GENERIC_KDF to HASH_CATEGORY_FRAMEWORK
422 - Unit-Tests: Added missing support for OPTS_TYPE_LOOP_PREPARE, OPTS_TYPE_LOOP_PREPARE2 and salt_repeats in self-test
423 - Unit-Tests: Added missing unit-test for Stargazer Stellar Wallet XLM
424
425 * changes v6.2.0 -> v6.2.1
426
427 ##
428 ## Technical
429 ##
430
431 - Dependencies: Updated unrar source from 5.9.4 to 6.0.5
432 - Dependencies: Make unrar dependencies optional and disable hash-mode 23800 if dependency is disabled
433
434 * changes v6.1.1 -> v6.2.0
435
436 ##
437 ## Algorithms
438 ##
439
440 - Added hash-mode: Apple iWork
441 - Added hash-mode: AxCrypt 2 AES-128
442 - Added hash-mode: AxCrypt 2 AES-256
443 - Added hash-mode: BestCrypt v3 Volume Encryption
444 - Added hash-mode: Bitwarden
445 - Added hash-mode: Dahua Authentication MD5
446 - Added hash-mode: KNX IP Secure - Device Authentication Code
447 - Added hash-mode: MongoDB ServerKey SCRAM-SHA-1
448 - Added hash-mode: MongoDB ServerKey SCRAM-SHA-256
449 - Added hash-mode: Mozilla key3.db
450 - Added hash-mode: Mozilla key4.db
451 - Added hash-mode: MS Office 2016 - SheetProtection
452 - Added hash-mode: PDF 1.4 - 1.6 (Acrobat 5 - 8) - edit password
453 - Added hash-mode: PKCS#8 Private Keys
454 - Added hash-mode: RAR3-p (Compressed)
455 - Added hash-mode: RAR3-p (Uncompressed)
456 - Added hash-mode: RSA/DSA/EC/OPENSSH Private Keys
457 - Added hash-mode: SolarWinds Orion v2
458 - Added hash-mode: SolarWinds Serv-U
459 - Added hash-mode: SQLCipher
460 - Added hash-mode: Stargazer Stellar Wallet XLM
461 - Added hash-mode: Stuffit5
462 - Added hash-mode: Telegram Desktop >= v2.1.14 (PBKDF2-HMAC-SHA512)
463 - Added hash-mode: Umbraco HMAC-SHA1
464 - Added hash-mode: sha1($salt.sha1($pass.$salt))
465 - Added hash-mode: sha1(sha1($pass).$salt)
466
467 ##
468 ## Features
469 ##
470
471 - Added new attack-mode: Association Attack (aka "Context Attack") to attack hashes from a hashlist with associated "hints"
472 - Added support for true UTF-8 to UTF-16 conversion in kernel crypto library
473 - Added option --hash-info to show generic information for each hash-mode
474 - Added command prompt [f]inish to tell hashcat to quit after finishing the current attack
475
476 ##
477 ## Bugs
478 ##
479
480 - Fixed access to filename which is a null-pointer in benchmark mode
481 - Fixed both false negative and false positive results in -m 3000 in -a 3 (affecting only NVIDIA GPU)
482 - Fixed buffer overflow in -m 1800 in -O mode which is optimized to handle only password candidates up to length 15
483 - Fixed buffer overflow in -m 4710 in -P mode and only in single hash mode if salt length is larger than 32 bytes
484 - Fixed hardware management sysfs readings in status screen (typically ROCm controlled GPUs)
485 - Fixed include guards in several header files
486 - Fixed incorrect maximum password length support for -m 400 in optimized mode (reduced from 55 to 39)
487 - Fixed internal access on module option attribute OPTS_TYPE_SUGGEST_KG with the result that it was unused
488 - Fixed invalid handling of outfile folder entries for -m 22000
489 - Fixed memory leak causing problems in sessions with many iterations - for instance, --benchmark-all or large mask files
490 - Fixed memory leaks in several cases of errors with access to temporary files
491 - Fixed NVML initialization in WSL2 environments
492 - Fixed out-of-boundary reads in cases where user activates -S for fast but pure hashes in -a 1 or -a 3 mode
493 - Fixed out-of-boundary reads in kernels using module_extra_buffer_size() if -n is set to 1
494 - Fixed password reassembling for cracked hashes on host for slow hashes in optimized mode that are longer than 32 characters
495 - Fixed race condition in potfile check during removal of empty hashes
496 - Fixed race condition resulting in out of memory error on startup if multiple hashcat instances are started at the same time
497 - Fixed rare case of misalignment of the status prompt when other user warnings are shown in the hashcat output
498 - Fixed search of tuning database - if a device was not assigned an alias, it couldn't be found in general
499 - Fixed test on gzip header in wordlists and hashlists
500 - Fixed too-early execution of some module functions that use non-final values opts_type and opti_type
501 - Fixed unexpected non-unique salts in multi-hash cracking in Bitcoin/Litecoin wallet.dat module which led to false negatives
502 - Fixed unit test for -m 3000 by preventing it to generate zero hashes
503 - Fixed unit tests using 'null' as padding method in Crypt::CBC but actually want to use 'none'
504 - Fixed unterminated salt buffer in -m 23400 module_hash_encode() in case salt was of length 256
505 - Fixed vector datatype support in -m 21100 only -P mode and only -a 3 mode were affected
506
507 ##
508 ## Improvements
509 ##
510
511 - Apple Keychain: Notify the user about the risk of collisions / false positives
512 - CUDA Backend: Do not warn about missing CUDA SDK installation if --backend-ignore-cuda is used
513 - CUDA Backend: Give detailed warning if either the NVIDIA CUDA or the NVIDIA RTC library cannot be initialized
514 - CUDA Backend: Use blocking events to avoid 100% CPU core usage (per GPU)
515 - OpenCL Runtime: Workaround JiT compiler deadlock on NVIDIA driver >= 465.89
516 - OpenCL Runtime: Workaround JiT compiler segfault on legacy AMDGPU driver compiling RAR3 OpenCL kernel
517 - RAR3 Kernels: Improved loop code, improving performance by 23%
518 - Scrypt Kernels: Added a number of GPU specific optimizations per hash modes to hashcat.hctune
519 - Scrypt Kernels: Added detailed documentation on device specific tunings in hashcat.hctune
520 - Scrypt Kernels: Optimized Salsa code portion by reducing register copies and removed unnecessary byte swaps
521 - Scrypt Kernels: Reduced kernel wait times by making it a true split kernel where iteration count = N value
522 - Scrypt Kernels: Refactored workload configuration strategy based on available resources
523 - Startup time: Improved startup time by avoiding some time-intensive operations for skipped devices
524
525 ##
526 ## Technical
527 ##
528
529 - Bcrypt: Make BCRYPT entry for CPU in hashcat.hctune after switch to OPTS_TYPE_MP_MULTI_DISABLE (basically set -n to 1)
530 - Benchmark: Update benchmark_deep.pl with new hash modes added (also new hash modes which were added with v6.1.0)
531 - Building: Declare phony targets in Makefile to avoid conflicts of a target name with a file of the same name
532 - Building: Fixed build warnings on macOS for unrar sources
533 - Building: Fixed test for DARWIN_VERSION in Makefile
534 - Commandline Options: Removed option --example-hashes, now an alias of --hash-info
535 - Compute API: Skipping devices instead of stop if error occured in initialization
536 - Documentation: Added 3rd party licenses to docs/license_libs
537 - Hash-Mode 8900 (Scrypt): Changed default benchmark scrypt parameters from 1k:1:1 to 16k:8:1 (default)
538 - Hash-Mode 11600 (7-Zip): Improved memory handling (alloc and free) for the hook function
539 - Hash-Mode 13200 (AxCrypt): Changed the name to AxCrypt 1 to avoid confusion
540 - Hash-Mode 13300 (AxCrypt in-memory SHA1): Changed the name to AxCrypt 1 in-memory SHA1
541 - Hash-Mode 16300 (Ethereum Pre-Sale Wallet, PBKDF2-HMAC-SHA256): Use correct buffer size allocation for AES key
542 - Hash-Mode 20710 (sha256(sha256($pass).$salt)): Removed unused code and fixed module_constraints
543 - Hash-Mode 22000 (WPA-PBKDF2-PMKID+EAPOL): Support loading a hash from command line
544 - Hash-Mode 23300 (Apple iWork): Use correct buffer size allocation for AES key
545 - Hash Parser: Output support for machine-readable hash lines in --show and --left and in error messages
546 - Kernel Development: Kernel cache is disabled automatically when hashcat is compiled with DEBUG=1
547 - Kernel Functions: Added generic AES-GCM interface see OpenCL/inc_cipher_aes-gcm.h
548 - Kernel Functions: Refactored OpenCL/inc_ecc_secp256k1.cl many functions, add constants and documentation
549 - Kernel Functions: Refactored OpenCL/inc_ecc_secp256k1.cl to improve usage in external programs
550 - Kernel Functions: Wrap atomic functions with hc_ prefix. Custom kernels need to rename "atomic_inc()" to "hc_atomic_inc()"
551 - Kernel Parameters: Added new parameter 'salt_repeat' to improve large buffer management
552 - Module Parameters: Add OPTS_TYPE_MP_MULTI_DISABLE for use by plugin developers to prevent multiply -n with the MCU count
553 - Module Parameters: Add OPTS_TYPE_NATIVE_THREADS for use by plugin developers to enforce native thread count
554 - Module Structure: Add 3rd party library hook management functions. This also requires an update to all existing module_init()
555 - OpenCL Runtime: Add support for clUnloadPlatformCompiler() to release some resources after JiT compilation
556 - OpenCL Runtime: Switched default OpenCL device type on macOS from GPU to CPU. Use -D 2 to enable GPU devices
557 - OpenCL Runtime: Update module_unstable_warnings() for all hash modes based on most recent versions of many OpenCL runtimes
558 - Unit tests: Added 'potthrough' (like passthrough, but hash:plain) to tools/test.pl
559 - Unit tests: Added Python 3 support for all of the Python code in our test framework
560 - Unit tests: Fixed the packaging of test (-p) feature
561 - Unit tests: Updated test.sh to show kernel type (pure or optimized) in output
562 - Unit tests: Use python3/pip3 instead of just python/pip in tools/install_modules.sh
563
564 * changes v6.1.0 -> v6.1.1
565
566 ##
567 ## Bugs
568 ##
569
570 - Fixed unresolvable relative paths in hashcat.log
571
572 * changes v6.0.0 -> v6.1.0
573
574 ##
575 ## Algorithms
576 ##
577
578 - Added hash-mode: Apple Keychain
579 - Added hash-mode: XMPP SCRAM
580
581 ##
582 ## Bugs
583 ##
584
585 - Fixed alias detection with additional processor core count check
586 - Fixed false negatives in hash-mode 10901 if hash-mode 9200, 10000, 10900 or 20300 was used to compile the kernel binary
587 - Fixed integer overflow for large masks in -a 6 attack mode
588 - Fixed maximum password length in modules of hash-modes 600, 7800, 7801 and 9900
589 - Fixed non-zero status code when using --stdout
590 - Fixed uninitialized value in bitsliced DES kernel (BF mode only) leading to false negatives
591
592 ##
593 ## Improvements
594 ##
595
596 - Compile macOS: Fixed makefile target 'clean' to correctly remove *.dSYM folders
597 - Compile ZLIB: Fixed makefile include paths in case USE_SYSTEM_ZLIB is used
598 - Hcchr Files: Renamed some .charset files into .hcchr files
599 - Hash-Mode 21200 (md5(sha1($salt).md5($pass))): Improved speed by using pre-computed SHA1
600 - OpenCL Devices: Utilize PCI domain to improve alias device detection
601 - OpenCL Kernels: Added datatypes to literals of enum costants
602 - OpenCL Kernels: Added pure kernels for hash-mode 600 (BLAKE2b-512)
603 - OpenCL Runtime: Add some unstable warnings for some SHA512 based algorithms on AMD GPU on macOS
604 - OpenCL Runtime: Reinterpret return code CL_DEVICE_NOT_FOUND from clGetDeviceIDs() as non-fatal
605
606 ##
607 ## Technical
608 ##
609
610 - Backend: Changed the maximum number of compute devices from 64 to 128
611 - Tests: Improved tests for hash-mode 11300 (Bitcoin/Litecoin wallet.dat)
612 - Tests: Improved tests for hash-mode 13200 (AxCrypt)
613 - Tests: Improved tests for hash-mode 13600 (WinZip)
614 - Tests: Improved tests for hash-mode 16400 (CRAM-MD5 Dovecot)
615 - Tests: Improved tests for hash-mode 16800 (WPA-PMKID-PBKDF2)
616
617 * changes v5.1.0 -> v6.0.0
618
619 ##
620 ## Features
621 ##
622
623 - Refactored hash-mode integration and replaced it with a fully modularized plugin interface
624 - Converted all existing hardwired hash-modes to hashcat plugins
625 - Added comprehensive plugin developer guide on adding new/custom hash-modes to hashcat
626 - Refactored compute backend interface to allow adding compute API other than OpenCL
627 - Added CUDA as a new compute backend (enables hashcat to run on NVIDIA Jetson, IBM POWER9 w/ Nvidia V100, etc.)
628 - Support automatic use of all available GPU memory when using CUDA backend
629 - Support automatic use of all available CPU cores for hash-mode-specific hooks
630 - Support on-the-fly loading of compressed wordlists in zip and gzip format
631 - Support deflate decompression for the 7-Zip hash-mode using zlib hook
632 - Added additional documentation on hashcat brain, slow-candidate interface and keyboard-layout mapping features
633 - Keep output of --show and --left in the original ordering of the input hash file
634 - Improved performance of many hash-modes
635
636 ##
637 ## Algorithms
638 ##
639
640 - Added hash-mode: AES Crypt (SHA256)
641 - Added hash-mode: Android Backup
642 - Added hash-mode: AuthMe sha256
643 - Added hash-mode: BitLocker
644 - Added hash-mode: BitShares v0.x
645 - Added hash-mode: Blockchain, My Wallet, Second Password (SHA256)
646 - Added hash-mode: Citrix NetScaler (SHA512)
647 - Added hash-mode: DiskCryptor
648 - Added hash-mode: Electrum Wallet (Salt-Type 3-5)
649 - Added hash-mode: Huawei Router sha1(md5($pass).$salt)
650 - Added hash-mode: Java Object hashCode()
651 - Added hash-mode: Kerberos 5 Pre-Auth etype 17 (AES128-CTS-HMAC-SHA1-96)
652 - Added hash-mode: Kerberos 5 Pre-Auth etype 18 (AES256-CTS-HMAC-SHA1-96)
653 - Added hash-mode: Kerberos 5 TGS-REP etype 17 (AES128-CTS-HMAC-SHA1-96)
654 - Added hash-mode: Kerberos 5 TGS-REP etype 18 (AES256-CTS-HMAC-SHA1-96)
655 - Added hash-mode: MultiBit Classic .key (MD5)
656 - Added hash-mode: MultiBit HD (scrypt)
657 - Added hash-mode: MySQL $A$ (sha256crypt)
658 - Added hash-mode: Open Document Format (ODF) 1.1 (SHA-1, Blowfish)
659 - Added hash-mode: Open Document Format (ODF) 1.2 (SHA-256, AES)
660 - Added hash-mode: Oracle Transportation Management (SHA256)
661 - Added hash-mode: PKZIP archive encryption
662 - Added hash-mode: PKZIP Master Key
663 - Added hash-mode: Python passlib pbkdf2-sha1
664 - Added hash-mode: Python passlib pbkdf2-sha256
665 - Added hash-mode: Python passlib pbkdf2-sha512
666 - Added hash-mode: QNX /etc/shadow (MD5)
667 - Added hash-mode: QNX /etc/shadow (SHA256)
668 - Added hash-mode: QNX /etc/shadow (SHA512)
669 - Added hash-mode: RedHat 389-DS LDAP (PBKDF2-HMAC-SHA256)
670 - Added hash-mode: Ruby on Rails Restful-Authentication
671 - Added hash-mode: SecureZIP AES-128
672 - Added hash-mode: SecureZIP AES-192
673 - Added hash-mode: SecureZIP AES-256
674 - Added hash-mode: SolarWinds Orion
675 - Added hash-mode: Telegram Desktop App Passcode (PBKDF2-HMAC-SHA1)
676 - Added hash-mode: Telegram Mobile App Passcode (SHA256)
677 - Added hash-mode: Web2py pbkdf2-sha512
678 - Added hash-mode: WPA-PBKDF2-PMKID+EAPOL
679 - Added hash-mode: WPA-PMK-PMKID+EAPOL
680 - Added hash-mode: md5($salt.sha1($salt.$pass))
681 - Added hash-mode: md5(sha1($pass).md5($pass).sha1($pass))
682 - Added hash-mode: md5(sha1($salt).md5($pass))
683 - Added hash-mode: sha1(md5(md5($pass)))
684 - Added hash-mode: sha1(md5($pass.$salt))
685 - Added hash-mode: sha1(md5($pass).$salt)
686 - Added hash-mode: sha1($salt1.$pass.$salt2)
687 - Added hash-mode: sha256(md5($pass))
688 - Added hash-mode: sha256($salt.$pass.$salt)
689 - Added hash-mode: sha256(sha256_bin($pass))
690 - Added hash-mode: sha256(sha256($pass).$salt)
691
692 ##
693 ## Bugs
694 ##
695
696 - Fixed buffer overflow in build_plain() function
697 - Fixed buffer overflow in mp_add_cs_buf() function
698 - Fixed calculation of brain-session ID - only the first hash of the hashset was taken into account
699 - Fixed cleanup of password candidate buffers on GPU as set from autotune when -n parameter was used
700 - Fixed copy/paste error leading to invalid "Integer overflow detected in keyspace of mask" in attack-mode 6 and 7
701 - Fixed cracking multiple Office hashes (modes 9500, 9600) if hashes shared the same salt
702 - Fixed cracking of Blockchain, My Wallet (V1 and V2) hashes when testing decrypted data in unexpected format
703 - Fixed cracking of Cisco-PIX and Cisco-ASA MD5 passwords in mask-attack mode when mask > length 16
704 - Fixed cracking of DNSSEC (NSEC3) hashes by replacing all dots in the passwords with lengths
705 - Fixed cracking of Electrum Wallet Salt-Type 2 hashes
706 - Fixed cracking of NetNTLMv1 passwords in mask-attack mode when mask > length 16 (optimized kernels only)
707 - Fixed cracking of RAR3-hp hashes with pure kernel for passwords longer than 28 bytes
708 - Fixed cracking of VeraCrypt Streebog-512 hashes (CPU only)
709 - Fixed cracking raw Streebog-HMAC 256 and 512 hashes for passwords of length >= 64
710 - Fixed cracking raw Whirlpool hashes cracking for passwords of length >= 32
711 - Fixed incorrect progress-only result in a special race condition
712 - Fixed invalid call of mp_css_utf16le_expand()/mp_css_utf16be_expand() in slow-candidate sessions
713 - Fixed invalid password truncation in attack-mode 1 when the final password is longer than 32 characters
714 - Fixed invalid use of --hex-wordlist if encoded wordlist string is larger than length 256
715 - Fixed maximum password length limit which was announced as 256 but was actually 255
716 - Fixed out-of-boundary read in pure kernel rule engine rule 'p' when parameter was set to 2 or higher
717 - Fixed out-of-boundary write to decrypted[] in DPAPI masterkey file v1 kernel
718 - Fixed output of IKE PSK (mode 5300 and 5400) hashes to use separators in the correct position
719 - Fixed output password of "e" rule in pure and CPU rule engine when separator character is also the first letter
720 - Fixed problem with usage of hexadecimal notation (\x00-\xff) within rules
721 - Fixed race condition in maskfile mode by using a dedicated flag for restore execution
722 - Fixed some memory leaks when hashcat is shutting down due to some file error
723 - Fixed some memory leaks when mask-files are used in optimized mode
724 - Fixed --status-json to correctly escape certain characters in hashes
725 - Fixed the 7-Zip parser to allow the entire supported range of encrypted and decrypted data lengths
726 - Fixed the validation of the --brain-client-features command line argument (only values 1, 2 or 3 are allowed)
727
728 ##
729 ## Improvements
730 ##
731
732 - Bitcoin Wallet: Be more user friendly by allowing a larger data range for ckey and public_key
733 - Brain: Added new parameter --brain-server-timer to specify seconds between scheduled backups
734 - Building: Fix for library compilation failure due to multiple defenition of sbob_xx64()
735 - Cracking bcrypt and Password Safe v2: Use feedback from the compute API backend to dynamically calculate optimal thread count
736 - Dictstat: On Windows, the st_ino attribute in the stat struct is not set, which can lead to invalid cache hits. Added the filename to the database entry.
737 - Documents: Added README on how to build hashcat on Cygwin, MSYS2 and WSL
738 - File handling: Print a truncation warning when an oversized line is detected
739 - My Wallet: Added additional plaintext pattern used in newer versions
740 - Office cracking: Support hash format with second block data for 40-bit oldoffice files (eliminates false positives)
741 - OpenCL Runtime: Added a warning if OpenCL runtime NEO, Beignet, POCL (v1.4 or older) or MESA is detected, and skip associated devices (override with --force)
742 - OpenCL Runtime: Allow the kernel to access post-48k shared memory region on CUDA. Requires both module and kernel preparation
743 - OpenCL Runtime: Disable OpenCL kernel cache on Apple for Intel CPU (throws CL_BUILD_PROGRAM_FAILURE for no reason)
744 - OpenCL Runtime: Do not run shared- or constant-memory size checks if their memory type is of type global memory (typically CPU)
745 - OpenCL Runtime: Improve ROCm detection and make sure to not confuse with recent AMDGPU drivers
746 - OpenCL Runtime: Not using amd_bytealign (amd_bitalign is fine) on AMDGPU driver drastically reduces JiT segfaults
747 - OpenCL Runtime: Unlocked maximum thread count for NVIDIA GPU
748 - OpenCL Runtime: Update unstable mode warnings for Apple and AMDGPU drivers
749 - OpenCL Runtime: Workaround JiT compiler error on AMDGPU driver compiling WPA-EAPOL-PBKDF2 OpenCL kernel
750 - OpenCL Runtime: Workaround JiT compiler error on ROCm 2.3 driver if the 'inline' keyword is used in function declaration
751 - OpenCL Runtime: Workaround memory allocation error on AMD driver on Windows leading to CL_MEM_OBJECT_ALLOCATION_FAILURE
752 - OpenCL Runtime: Removed some workarounds by calling chdir() to specific folders on startup
753 - Outfile: Added new system to specify the outfile format, the new --outfile-format now also supports timestamps
754 - Startup Checks: Improved the pidfile check: Do not just check for existing PID, but also check executable filename
755 - Startup Checks: Prevent the user from modifying options which are overwritten automatically in benchmark mode
756 - Startup Screen: Add extra warning when using --force
757 - Startup Screen: Add extra warning when using --keep-guessing
758 - Startup Screen: Provide an estimate of host memory required for the requested attack
759 - Status Screen: Added brain status for all compute devices
760 - Status Screen: Added remaining counts and changed recovered count logic
761 - Status Screen: Added --status-json flag for easier machine reading of hashcat status output
762 - Tab Completion: Allow using "make install" version of hashcat
763 - Tuning Database: Updated hashcat.hctune with new models and refreshed vector width values
764 - VeraCrypt: Added support for VeraCrypt PIM brute-force, replaced --veracrypt-pim with --veracrypt-pim-start and --veracrypt-pim-stop
765 - WipZip cracking: Added two byte early reject, resulting in higher cracking speed
766 - WPA/WPA2 cracking: In the potfile, replace password with PMK in order to detect already cracked networks across all WPA modes
767
768 ##
769 ## Technical
770 ##
771
772 - Backend Interface: Added new options --backend-ignore-cuda and --backend-ingore-opencl to prevent CUDA and/or OpenCL API from being used
773 - Binary Distribution: Removed 32-bit binary executables
774 - Building: On macOS, switch from ar to /usr/bin/ar to improve building compatibility
775 - Building: Skipping Travis/Appveyor build for non-code changes
776 - Codebase: Cleanup of many unused rc_* variables
777 - Codebase: Fixed some printf() format arguments
778 - Codebase: Fixed some type casting to avoid truncLongCastAssignment warnings
779 - Codebase: Moved hc_* file functions from shared.c to filehandling.c
780 - Codebase: Ran through a bunch of clang-tidy checkers and updated code accordingly
781 - Codebase: Remove redundant calls to fclose()
782 - Dependencies: Updated LZMA-Headers from 18.05 to 19.00
783 - Dependencies: Updated OpenCL-Headers to latest version from GitHub master repository
784 - Hash-Mode 12500 (RAR3-hp): Allow cracking of passwords up to length 64
785 - Hash-mode 1460 (HMAC-SHA256 (key = $salt)): Allow up to 64 byte of salt
786 - Hash-Mode 1680x (WPA-PMKID) specific: Changed separator character from '*' to ':'
787 - Hash-Mode 8300 (DNSSEC (NSEC3)) specific: Allow empty salt
788 - Keep Guessing: No longer automatically activate --keep-guessing for modes 9720, 9820, 14900 and 18100
789 - Keep Guessing: No longer mark hashes as cracked/removed when in potfile
790 - Kernel Cache: Reactivate OpenCL runtime specific kernel caches
791 - Kernel Compile: Removed -cl-std= from all kernel build options since we're compatible to all OpenCL versions
792 - OpenCL Kernels: Fix OpenCL compiler warning on double precision constants
793 - OpenCL Kernels: Moved "gpu_decompress", "gpu_memset" and "gpu_atinit" into shared.cl in order to reduce compile time
794 - OpenCL Options: Removed --opencl-platforms filter in order to force backend device numbers to stay constant
795 - OpenCL Options: Set --spin-damp to 0 (disabled) by default. With the CUDA backend this workaround became deprecated
796 - Parsers: switched from strtok() to strtok_r() for thread safety
797 - Requirements: Add new requirement for NVIDIA GPU: CUDA Toolkit (9.0 or later)
798 - Requirements: Update runtime check for minimum NVIDIA driver version from 367.x to 440.64 or later
799 - Test Script: Switched from /bin/bash to generic /bin/sh and updated code accordingly
800
801 * changes v5.0.0 -> v5.1.0
802
803 ##
804 ## Features
805 ##
806
807 - Added support for using --stdout in brain-client mode
808 - Added new option --stdin-timeout-abort, to set how long hashcat should wait for stdin input before aborting
809 - Added new option --kernel-threads to manually override the automatically-calculated number of threads
810 - Added new option --keyboard-layout-mapping to map users keyboard layout, required to crack TC/VC system boot volumes
811
812 ##
813 ## Algorithms
814 ##
815
816 - Added pure kernels for hash-mode 11700 (Streebog-256)
817 - Added pure kernels for hash-mode 11800 (Streebog-512)
818 - Added hash-mode 11750 (HMAC-Streebog-256 (key = $pass), big-endian)
819 - Added hash-mode 11760 (HMAC-Streebog-256 (key = $salt), big-endian)
820 - Added hash-mode 11850 (HMAC-Streebog-512 (key = $pass), big-endian)
821 - Added hash-mode 11860 (HMAC-Streebog-512 (key = $salt), big-endian)
822 - Added hash-mode 13771 (VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 512 bit)
823 - Added hash-mode 13772 (VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1024 bit)
824 - Added hash-mode 13773 (VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1536 bit)
825 - Added hash-mode 18200 (Kerberos 5 AS-REP etype 23)
826 - Added hash-mode 18300 (Apple File System (APFS))
827 - Added Kuznyechik cipher and cascades support for VeraCrypt kernels
828 - Added Camellia cipher and cascades support for VeraCrypt kernels
829
830 ##
831 ## Improvements
832 ##
833
834 - OpenCL Devices: Add support for up to 64 OpenCL devices per system
835 - OpenCL Platforms: Add support for up to 64 OpenCL platforms per system
836 - OpenCL Runtime: Use our own yielding technique for synchronizing rather than vendor specific
837 - Startup: Show OpenCL runtime initialization message (per device)
838 - xxHash: Added support for using the version provided by the OS/distribution
839
840 ##
841 ## Bugs
842 ##
843
844 - Fixed automated calculation of brain-session when not using all hashes in the hashlist
845 - Fixed calculation of brain-attack if a given wordlist has zero size
846 - Fixed checking the length of the last token in a hash if it was given the attribute TOKEN_ATTR_FIXED_LENGTH
847 - Fixed endianness and invalid separator character in outfile format for hash-mode 16801 (WPA-PMKID-PMK)
848 - Fixed ignoring --brain-client-features configuration when brain server has attack-position information from a previous run
849 - Fixed invalid hardware monitor detection in benchmark mode
850 - Fixed invalid warnings about throttling when --hwmon-disable was used
851 - Fixed missing call to WSACleanup() to cleanly shutdown windows sockets system
852 - Fixed missing call to WSAStartup() and client indexing in order to start the brain server on Windows
853 - Fixed out-of-boundary read in DPAPI masterkey file v2 OpenCL kernel
854 - Fixed out-of-bounds write in short-term memory of the brain server
855 - Fixed output of --speed-only and --progress-only when fast hashes are used in combination with --slow-candidates
856 - Fixed selection of OpenCL devices (-d) if there's more than 32 OpenCL devices installed
857 - Fixed status output of progress value when -S and -l are used in combination
858 - Fixed thread count maximum for pure kernels in straight attack mode
859
860 ##
861 ## Technical
862 ##
863
864 - Brain: Set --brain-client-features default from 3 to 2
865 - Dependencies: Added xxHash and OpenCL-Headers to deps/ in order to allow building hashcat from GitHub source release package
866 - Dependencies: Removed gitmodules xxHash and OpenCL-Headers
867 - Keymaps: Added hashcat keyboard mapping us.hckmap (can be used as template)
868 - Keymaps: Added hashcat keyboard mapping de.hckmap
869 - Hardware Monitor: Renamed --gpu-temp-abort to --hwmon-temp-abort
870 - Hardware Monitor: Renamed --gpu-temp-disable to --hwmon-disable
871 - Memory: Limit maximum host memory allocation depending on bitness
872 - Memory: Reduced default maximum bitmap size from 24 to 18 and give a notice to use --bitmap-max to restore
873 - Parameter: Rename --nvidia-spin-damp to --spin-damp (now accessible for all devices)
874 - Pidfile: Treat a corrupted pidfile like a not existing pidfile
875 - OpenCL Device: Do a real query on OpenCL local memory type instead of just assuming it
876 - OpenCL Runtime: Disable auto-vectorization for Intel OpenCL runtime to workaround hanging JiT since version 18.1.0.013
877 - Tests: Added hash-mode 11700 (Streebog-256)
878 - Tests: Added hash-mode 11750 (HMAC-Streebog-256 (key = $pass), big-endian)
879 - Tests: Added hash-mode 11760 (HMAC-Streebog-256 (key = $salt), big-endian)
880 - Tests: Added hash-mode 11800 (Streebog-512)
881 - Tests: Added hash-mode 11850 (HMAC-Streebog-512 (key = $pass), big-endian)
882 - Tests: Added hash-mode 11860 (HMAC-Streebog-512 (key = $salt), big-endian)
883 - Tests: Added hash-mode 13711 (VeraCrypt PBKDF2-HMAC-RIPEMD160 + XTS 512 bit)
884 - Tests: Added hash-mode 13712 (VeraCrypt PBKDF2-HMAC-RIPEMD160 + XTS 1024 bit)
885 - Tests: Added hash-mode 13713 (VeraCrypt PBKDF2-HMAC-RIPEMD160 + XTS 1536 bit)
886 - Tests: Added hash-mode 13721 (VeraCrypt PBKDF2-HMAC-SHA512 + XTS 512 bit)
887 - Tests: Added hash-mode 13722 (VeraCrypt PBKDF2-HMAC-SHA512 + XTS 1024 bit)
888 - Tests: Added hash-mode 13723 (VeraCrypt PBKDF2-HMAC-SHA512 + XTS 1536 bit)
889 - Tests: Added hash-mode 13731 (VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 512 bit)
890 - Tests: Added hash-mode 13732 (VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 1024 bit)
891 - Tests: Added hash-mode 13733 (VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 1536 bit)
892 - Tests: Added hash-mode 13751 (VeraCrypt PBKDF2-HMAC-SHA256 + XTS 512 bit)
893 - Tests: Added hash-mode 13752 (VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1024 bit)
894 - Tests: Added hash-mode 13753 (VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1536 bit)
895 - Tests: Added hash-mode 13771 (VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 512 bit)
896 - Tests: Added hash-mode 13772 (VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1024 bit)
897 - Tests: Added hash-mode 13773 (VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1536 bit)
898 - Tests: Added VeraCrypt containers for Kuznyechik cipher and cascades
899 - Tests: Added VeraCrypt containers for Camellia cipher and cascades
900
901 * changes v4.2.1 -> v5.0.0
902
903 ##
904 ## Features
905 ##
906
907 - Added new option --slow-candidates which allows hashcat to generate passwords on-host
908 - Added new option --brain-server to start a hashcat brain server
909 - Added new option --brain-client to start a hashcat brain client, automatically activates --slow-candidates
910 - Added new option --brain-host and --brain-port to specify ip and port of brain server, both listening and connecting
911 - Added new option --brain-session to override automatically calculated brain session ID
912 - Added new option --brain-session-whitelist to allow only explicit written session ID on brain server
913 - Added new option --brain-password to specify the brain server authentication password
914 - Added new option --brain-client-features which allows enable and disable certain features of the hashcat brain
915
916 ##
917 ## Algorithms
918 ##
919
920 - Added hash-mode 17300 = SHA3-224
921 - Added hash-mode 17400 = SHA3-256
922 - Added hash-mode 17500 = SHA3-384
923 - Added hash-mode 17600 = SHA3-512
924 - Added hash-mode 17700 = Keccak-224
925 - Added hash-mode 17800 = Keccak-256
926 - Added hash-mode 17900 = Keccak-384
927 - Added hash-mode 18000 = Keccak-512
928 - Added hash-mode 18100 = TOTP (HMAC-SHA1)
929 - Removed hash-mode 5000 = SHA-3 (Keccak)
930
931 ##
932 ## Improvements
933 ##
934
935 - Added additional hybrid "passthrough" rules, to enable variable-length append/prepend attacks
936 - Added a periodic check for read timeouts in stdin/pipe mode, and abort if no input was provided
937 - Added a tracker for salts, amplifier and iterations to the status screen
938 - Added option --markov-hcstat2 to make it clear that the new hcstat2 format (compressed hcstat2gen output) must be used
939 - Allow bitcoin master key lengths other than 96 bytes (but they must be always multiples of 16)
940 - Allow hashfile for -m 16800 to be used with -m 16801
941 - Allow keepass iteration count to be larger than 999999
942 - Changed algorithms using colon as separators in the hash to not use the hashconfig separator on parsing
943 - Do not allocate memory segments for bitmap tables if we don't need it - for example, in benchmark mode
944 - Got rid of OPTS_TYPE_HASH_COPY for Ansible Vault
945 - Improved the speed of the outfile folder scan when using many hashes/salts
946 - Increased the maximum size of edata2 in Kerberos 5 TGS-REP etype 23
947 - Make the masks parser more restrictive by rejecting a single '?' at the end of the mask (use ?? instead)
948 - Override --quiet and show final status screen in case --status is used
949 - Removed duplicate words in the dictionary file example.dict
950 - Updated Intel OpenCL runtime version check
951 - Work around some AMD OpenCL runtime segmentation faults
952 - Work around some padding issues with host compilers and OpenCL JiT on 32 and 64-bit systems
953
954 ##
955 ## Bugs
956 ##
957
958 - Fixed a invalid scalar datatype return value in hc_bytealign() where it should be a vector datatype return value
959 - Fixed a problem with attack mode -a 7 together with stdout mode where the mask bytes were missing in the output
960 - Fixed a problem with tab completion where --self-test-disable incorrectly expected a further parameter/value
961 - Fixed a race condition in status view that lead to out-of-bound reads
962 - Fixed detection of unique ESSID in WPA-PMKID-* parser
963 - Fixed missing wordlist encoding in combinator mode
964 - Fixed speed/delay problem when quitting while the outfile folder is being scanned
965 - Fixed the ciphertext max length in Ansible Vault parser
966 - Fixed the tokenizer configuration in Postgres hash parser
967 - Fixed the byte order of digest output for hash-mode 11800 (Streebog-512)
968
969 * changes v4.2.0 -> v4.2.1
970
971 ##
972 ## Improvements
973 ##
974
975 - Try to evaluate available OpenCL device memory and use this information instead of total available OpenCL device memory for autotune
976
977 ##
978 ## Bugs
979 ##
980
981 - Fixed a buffer overflow in precompute_salt_md5() in case salt was longer than 64 characters
982
983 * changes v4.1.0 -> v4.2.0
984
985 ##
986 ## Algorithms
987 ##
988
989 - Added hash-mode 16700 = FileVault 2
990 - Added hash-mode 16800 = WPA-PMKID-PBKDF2
991 - Added hash-mode 16801 = WPA-PMKID-PMK
992 - Added hash-mode 16900 = Ansible Vault
993
994 ##
995 ## Improvements
996 ##
997
998 - Added JtR-compatible support for hex notation in rules engine
999 - Added OpenCL device utilization to the status information in machine-readable output
1000 - Added missing NV Tesla and Titan GPU details to tuning database
1001 - General file handling: Abort if a byte order mark (BOM) was detected in a wordlist, hashlist, maskfile or rulefile
1002 - HCCAPX management: Use advanced hints in message_pair stored by hcxtools about endian bitness of replay counter
1003 - OpenCL kernels: Abort session if kernel self-test fails
1004 - OpenCL kernels: Add '-pure' prefix to kernel filenames to avoid problems caused by reusing existing hashcat installation folder
1005 - OpenCL kernels: Removed the use of 'volatile' in inline assembly instructions where it is not needed
1006 - OpenCL kernels: Switched array pointer types in function declarations in order to be compatible with OpenCL 2.0
1007 - Refactored code for --progress-only and --speed-only calculation
1008 - SIP cracking: Increased the nonce field to allow a salt of 1024 bytes
1009 - TrueCrypt/VeraCrypt cracking: Do an entropy check on the TC/VC header on start
1010
1011 ##
1012 ## Bugs
1013 ##
1014
1015 - Fixed a function declaration attribute in -m 8900 kernel leading to unusable -m 9300 which shares kernel code with -m 8900
1016 - Fixed a miscalculation in --progress-only mode output for extremely slow kernels like -m 14800
1017 - Fixed a missing check for errors on OpenCL devices leading to invalid removal of restore file
1018 - Fixed a missing kernel in -m 5600 in combination with -a 3 and -O if mask is >= 16 characters
1019 - Fixed detection of AMD_GCN version in case the rocm driver is used
1020 - Fixed missing code section in -m 2500 and -m 2501 to crack corrupted handshakes with a LE endian bitness base
1021 - Fixed a missing check for hashmodes using OPTS_TYPE_PT_UPPER causing the self-test to fail when using combinator- and hybrid-mode
1022
1023 * changes v4.0.1 -> v4.1.0
1024
1025 ##
1026 ## Features
1027 ##
1028
1029 - Added option --benchmark-all to benchmark all hash-modes (not just the default selection)
1030 - Removed option --gpu-temp-retain that tried to retain GPU temperature at X degrees celsius - please use driver-specific tools
1031 - Removed option --powertune-enable to enable power tuning - please use driver specific tools
1032
1033 ##
1034 ## Algorithms
1035 ##
1036
1037 - Added hash-mode 16000 = Tripcode
1038 - Added hash-mode 16100 = TACACS+
1039 - Added hash-mode 16200 = Apple Secure Notes
1040 - Added hash-mode 16300 = Ethereum Pre-Sale Wallet, PBKDF2-SHA256
1041 - Added hash-mode 16400 = CRAM-MD5 Dovecot
1042 - Added hash-mode 16500 = JWT (JSON Web Token)
1043 - Added hash-mode 16600 = Electrum Wallet (Salt-Type 1-2)
1044
1045 ##
1046 ## Bugs
1047 ##
1048
1049 - Fixed a configuration setting for -m 400 in pure kernel mode which said it was capable of doing SIMD when it is not
1050 - Fixed a hash parsing problem for 7-Zip hashes: allow a longer CRC32 data length field within the hash format
1051 - Fixed a hash parsing problem when using --show/--left with hashes with long salts that required pure kernels
1052 - Fixed a logic error in storing temporary progress for slow hashes, leading to invalid speeds in status view
1053 - Fixed a mask-length check issue: return -1 in case the mask length is not within the password-length range
1054 - Fixed a missing check for return code in case hashcat.hcstat2 was not found
1055 - Fixed a race condition in combinator- and hybrid-mode where the same scratch buffer was used by multiple threads
1056 - Fixed a restore issue leading to "Restore value is greater than keyspace" when mask files or wordlist folders were used
1057 - Fixed a uninitialized value in OpenCL kernels 9720, 9820 and 10420 leading to absurd benchmark performance
1058 - Fixed the maximum password length check in password-reassembling function
1059 - Fixed the output of --show when $HEX[] passwords were present within the potfile
1060
1061 ##
1062 ## Improvements
1063 ##
1064
1065 - OpenCL Kernels: Add a decompressing kernel and a compressing host code in order to reduce PCIe transfer time
1066 - OpenCL Kernels: Improve performance preview accuracy in --benchmark, --speed-only and --progress-only mode
1067 - OpenCL Kernels: Remove password length restriction of 16 for Cisco-PIX and Cisco-ASA hashes
1068 - Terminal: Display set cost/rounds during benchmarking
1069 - Terminal: Show [r]esume in prompt only in pause mode, and show [p]ause in prompt only in resume mode
1070
1071 ##
1072 ## Technical
1073 ##
1074
1075 - Autotune: Improve autotune engine logic and synchronize results on same OpenCL devices
1076 - Documents: Added docs/limits.txt
1077 - Files: Copy include/ folder and its content when SHARED is set to 1 in Makefile
1078 - Files: Switched back to relative current working directory on windows to work around problems with Unicode characters
1079 - Hashcat Context: Fixed a memory leak in shutdown phase
1080 - Hash Parser: Changed the way large strings are handled/truncated within the event buffer if they are too large to fit
1081 - Hash Parser: Fixed a memory leak in shutdown phase
1082 - Hash Parser: Fixed the use of strtok_r () calls
1083 - OpenCL Devices: Fixed several memory leaks in shutdown phase
1084 - OpenCL Kernels: Add general function declaration keyword (inline) and some OpenCL runtime specific exceptions for NV and CPU devices
1085 - OpenCL Kernels: Replace variables from uXX to uXXa if used in __constant space
1086 - OpenCL Kernels: Use a special kernel to initialize the password buffer used during autotune measurements, to reduce startup time
1087 - OpenCL Kernels: Refactored kernel thread management from native to maximum per kernel
1088 - OpenCL Kernels: Use three separate comparison kernels (depending on keyver) for WPA instead of one
1089 - OpenCL Runtime: Add current timestamp to OpenCL kernel source in order to force OpenCL JiT compiler to recompile and not use the cache
1090 - OpenCL Runtime: Enforce use of OpenCL version 1.2 to restrain OpenCL runtimes to make use of the __generic address space qualifier
1091 - OpenCL Runtime: Updated rocm detection
1092 - Returncode: Enforce return code 0 when the user selects --speed-only or --progress-only and no other error occurs
1093 - Rules: Fixed some default rule-files after changing rule meaning of 'x' to 'O'
1094 - Self Test: Skip self-test for mode 8900 - user-configurable scrypt settings are incompatible with fixed settings in the self-test hash
1095 - Self Test: Skip self-test for mode 15700 because the settings are too high and cause startup times that are too long
1096 - Terminal: Add workitem settings to status display (can be handy for debugging)
1097 - Terminal: Send clear-line code to the same output stream as the message immediately following
1098 - Timer: Switch from gettimeofday() to clock_gettime() to work around problems on cygwin
1099 - User Options: According to getopts manpage, the last element of the option array has to be filled with zeros
1100
1101 * changes v4.0.0 -> v4.0.1:
1102
1103 ##
1104 ## Improvements
1105 ##
1106
1107 - Changed the maximum length of the substring of a hash shown whenever the parser found a problem while parsing the hash
1108
1109 ##
1110 ## Bugs
1111 ##
1112
1113 - Fixed a memory leak while parsing a wordlist
1114 - Fixed compile of kernels on AMD systems on windows due to invalid detection of ROCm
1115 - Fixed compile of sources using clang under MSYS2
1116 - Fixed overlapping memory segment copy in CPU rule engine if using a specific rule function
1117 - Fixed a parallel build problem when using the "install" Makefile target
1118 - Fixed the version number extraction for github releases which do not including the .git directory
1119
1120 * changes v3.6.0 -> v4.0.0:
1121
1122 ##
1123 ## Features
1124 ##
1125
1126 - Added support to crack passwords and salts up to length 256
1127 - Added option --optimized-kernel-enable to use faster kernels but limit the maximum supported password- and salt-length
1128 - Added self-test functionality to detect broken OpenCL runtimes on startup
1129 - Added option --self-test-disable to disable self-test functionality on startup
1130 - Added option --wordlist-autohex-disable to disable the automatical conversion of $HEX[] words from the word list
1131 - Added option --example-hashes to show an example hash for each hash-mode
1132 - Removed option --weak-hash-check (zero-length password check) to increase startup time, it also causes many Trap 6 error on macOS
1133
1134 ##
1135 ## Algorithms
1136 ##
1137
1138 - Added hash-mode 2500 = WPA/WPA2 (SHA256-AES-CMAC)
1139 - Added hash-mode 2501 = WPA/WPA2 PMK
1140
1141 ##
1142 ## Bugs
1143 ##
1144
1145 - Fixed a buffer overflow in mangle_dupechar_last function
1146 - Fixed a calculation error in get_power() leading to errors of type "BUG pw_add()!!"
1147 - Fixed a memory problem that occured when the OpenCL folder was not found and e.g. the shared and session folder were the same
1148 - Fixed a missing barrier() call in the RACF OpenCL kernel
1149 - Fixed a missing salt length value in benchmark mode for SIP
1150 - Fixed an integer overflow in hash buffer size calculation
1151 - Fixed an integer overflow in innerloop_step and innerloop_cnt variables
1152 - Fixed an integer overflow in masks not skipped when loaded from file
1153 - Fixed an invalid optimization code in kernel 7700 depending on the input hash, causing the kernel to loop forever
1154 - Fixed an invalid progress value in status view if words from the base wordlist get rejected because of length
1155 - Fixed a parser error for mode -m 9820 = MS Office <= 2003 $3, SHA1 + RC4, collider #2
1156 - Fixed a parser error in multiple modes not checking for return code, resulting in negative memory index writes
1157 - Fixed a problem with changed current working directory, for instance by using --restore together with --remove
1158 - Fixed a problem with the conversion to the $HEX[] format: convert/hexify also all passwords of the format $HEX[]
1159 - Fixed the calculation of device_name_chksum; should be done for each iteration
1160 - Fixed the dictstat lookup if nanoseconds are used in timestamps for the cached files
1161 - Fixed the estimated time value whenever the value is very large and overflows
1162 - Fixed the output of --show when used together with the collider modes -m 9710, 9810 or 10410
1163 - Fixed the parsing of command line options. It doesn't show two times the same error about an invalid option anymore
1164 - Fixed the parsing of DCC2 hashes by allowing the "#" character within the user name
1165 - Fixed the parsing of descrypt hashes if the hashes do have non-standard characters within the salt
1166 - Fixed the use of --veracrypt-pim option. It was completely ignored without showing an error
1167 - Fixed the version number used in the restore file header
1168
1169 ##
1170 ## Improvements
1171 ##
1172
1173 - Autotune: Do a pre-autotune test run to find out if kernel runtime is above some TDR limit
1174 - Charset: Add additional DES charsets with corrected parity
1175 - OpenCL Buffers: Do not allocate memory for amplifiers for fast hashes, it's simply not needed
1176 - OpenCL Kernels: Improved performance of SHA-3 Kernel (keccak) by hardcoding the 0x80 stopbit
1177 - OpenCL Kernels: Improved rule engine performance by 6% on for NVidia
1178 - OpenCL Kernels: Move from ld.global.v4.u32 to ld.const.v4.u32 in _a3 kernels
1179 - OpenCL Kernels: Replace bitwise swaps with rotate() versions for AMD
1180 - OpenCL Kernels: Rewritten Keccak kernel to run fully on registers and partially reversed last round
1181 - OpenCL Kernels: Rewritten SIP kernel from scratch
1182 - OpenCL Kernels: Thread-count is set to hardware native count except if -w 4 is used then OpenCL maximum is used
1183 - OpenCL Kernels: Updated default scrypt TMTO to be ideal for latest NVidia and AMD top models
1184 - OpenCL Kernels: Vectorized tons of slow kernels to improve CPU cracking speed
1185 - OpenCL Runtime: Improved detection for AMD and NV devices on macOS
1186 - OpenCL Runtime: Improved performance on Intel MIC devices (Xeon PHI) on runtime level (300MH/s to 2000MH/s)
1187 - OpenCL Runtime: Updated AMD ROCm driver version check, warn if version < 1.1
1188 - Show cracks: Improved the performance of --show/--left if used together with --username
1189 - Startup: Add visual indicator of active options when benchmarking
1190 - Startup: Check and abort session if outfile and wordlist point to the same file
1191 - Startup: Show some attack-specific optimizer constraints on start, eg: minimum and maximum support password- and salt-length
1192 - WPA cracking: Improved nonce-error-corrections mode to use a both positive and negative corrections
1193
1194 ##
1195 ## Technical
1196 ##
1197
1198 - General: Update C standard from c99 to gnu99
1199 - Hash Parser: Improved salt-length checks for generic hash modes
1200 - HCdict File: Renamed file from hashcat.hcdict to hashcat.hcdict2 and add header because versions are incompatible
1201 - HCstat File: Add code to read LZMA compressed hashcat.hcstat2
1202 - HCstat File: Add hcstat2 support to enable masks of length up to 256, also adds a filetype header
1203 - HCstat File: Renamed file from hashcat.hcstat to hashcat.hcstat2 and add header because versions are incompatible
1204 - HCtune File: Remove apple related GPU entries to workaround Trap 6 error
1205 - OpenCL Kernels: Added code generator for most of the switch_* functions and replaced existing code
1206 - OpenCL Kernels: Declared all include functions as static to reduce binary kernel cache size
1207 - OpenCL Kernels: On AMD GPU, optimized kernels for use with AMD ROCm driver
1208 - OpenCL Kernels: Removed some include functions that are no longer needed to reduce compile time
1209 - OpenCL Runtime: Fall back to 64 threads default (from 256) on AMD GPU to prevent creating too many workitems
1210 - OpenCL Runtime: Forcing OpenCL 1.2 no longer needed. Option removed from build options
1211 - OpenCL Runtime: On AMD GPU, recommend AMD ROCm driver for Linux
1212 - Restore: Fixed the version number used in the restore file header
1213 - Time: added new type for time measurements hc_time_t and related functions to force the use of 64 bit times
1214
1215 * changes v3.5.0 -> v3.6.0:
1216
1217 ##
1218 ## Algorithms
1219 ##
1220
1221 - Added hash-mode 600 = BLAKE2-512
1222 - Added hash-mode 15200 = Blockchain, My Wallet, V2
1223 - Added hash-mode 15300 = DPAPI masterkey file v1 and v2
1224 - Added hash-mode 15400 = ChaCha20
1225 - Added hash-mode 15500 = JKS Java Key Store Private Keys (SHA1)
1226 - Added hash-mode 15600 = Ethereum Wallet, PBKDF2-HMAC-SHA256
1227 - Added hash-mode 15700 = Ethereum Wallet, PBKDF2-SCRYPT
1228
1229 ##
1230 ## Features
1231 ##
1232
1233 - 7-Zip cracking: increased max. data length to 320k and removed AES padding attack to avoid false negatives
1234 - Dictionary cache: Show time spent on dictionary cache building at startup
1235 - Rules: Support added for position 'p' (Nth instance of a character) in host mode (using -j or -k)
1236 - Rules: Support added for rejection rule '_N' (reject plains of length not equal to N) in host mode
1237 - Rules: Support added for rule 'eX'
1238 - Wordlist encoding: Added parameters --encoding-from and --encoding-to to configure wordlist encoding handling
1239 - Wordlist encoding: Support added for internal conversion between user-defined encodings during runtime
1240
1241 ##
1242 ## Workarounds
1243 ##
1244
1245 - Workaround added for NVIDIA NVML library: If libnvidia-ml.so couldn't be loaded, try again using libnvidia-ml.so.1
1246
1247 ##
1248 ## Improvements
1249 ##
1250
1251 - WPA cracking: Improved nonce-error-corrections mode to fix corrupt nonces generated on big-endian devices
1252
1253 ##
1254 ## Bugs
1255 ##
1256
1257 - Fixed a condition that caused hybrid attacks using a maskfile to not select all wordlists from a wordlist folder
1258 - Fixed a memory leak that was present when a user periodically prints hashcat status (using --status-timer)
1259 - Fixed a missing type specifier in a function declaration of the RACF kernel
1260
1261 ##
1262 ## Technical
1263 ##
1264
1265 - Building: In the binary release packages, link libiconv static for Windows binaries
1266 - Dictstat: Structure for dictstat file changed to include --encoding-from and --encoding-to parameters
1267 - OpenCL Runtime: Updated AMDGPU-PRO driver version check, warn if version 17.10 (known to be broken) is detected
1268 - WPA cracking: Reduced --nonce-error-corrections default from 16 to 8 to compensate for speed drop caused by big-endian fixes
1269
1270 * changes v3.40 -> v3.5.0:
1271
1272 ##
1273 ## Features
1274 ##
1275
1276 - WPA cracking: Added support for WPA/WPA2 handshake AP nonce automatic error correction
1277 - WPA cracking: Added parameter --nonce-error-corrections to configure range of error correction
1278
1279 ##
1280 ## Algorithms
1281 ##
1282
1283 - Added hash-mode 15100 = Juniper/NetBSD sha1crypt
1284
1285 ##
1286 ## Improvements
1287 ##
1288
1289 - Abbreviate long hashes to display the Hash.Target status line within 80 characters
1290 - Refactored internal use of esalt to sync with the number of digests instead of the number of salts
1291 - Refactored other output to display within 80 characters without wrapping
1292
1293 ##
1294 ## Bugs
1295 ##
1296
1297 - Fixed a hash validation error when trying to load Android FDE < 4.3 hashes
1298 - Fixed a problem where --keyspace combined with custom charsets incorrectly displayed an error message
1299 - Fixed a problem where --stdout combined with custom charsets incorrectly displayed an error message
1300 - Fixed a problem with parsing and displaying -m 7000 = Fortigate (FortiOS) hashes
1301 - Fixed a race condition after sessions finish, where the input-base was freed but accessed afterwards
1302 - Fixed a typo that resulted in the minimum password length not being correctly initialized
1303 - Fixed --outfile-format formats 11 through 15 to show the correct crack position
1304 - Fixed --remove to apply even when all hashes are either found in the potfile or detected in weak-hash checks
1305
1306 ##
1307 ## Technical
1308 ##
1309
1310 - Building: Added missing prototypes for atlassian_parse_hash function
1311 - Dictionary Cache: Split long status line into multiple lines to stay < 80 chars
1312 - Files: Detect and error when users try to use -r with a parameter which is not a file
1313 - HCCAPX Parser: Added support for a special bit (bit 8) of the message_pair that indicates if replay counters match
1314 - Parameter: Detect and error when users try to use an empty string (length 0) for parameters like --session=
1315 - Parameter: Detect and error when users try to use non-digit input when only digits are expected
1316 - Sessions: Improved string comparison in case user sets --session to "hashcat"
1317 - Status View: Add rejected counter to machine-readable output
1318 - Status View: Rename labels Input.Mode, Input.Base, ... to Guess.Mode, Guess.Base, ...
1319 - Status View: Added a visual indicator to the status screen when checkpoint quit has been requested
1320 - Versions: Changed version naming convention from x.yz to x.y.z
1321
1322 * changes v3.30 -> v3.40:
1323
1324 ##
1325 ## Features
1326 ##
1327
1328 - Added support for loading hccapx files
1329 - Added support for filtering hccapx message pairs using --hccapx-message-pair
1330 - Added support for parsing 7-Zip hashes with LZMA/LZMA2 compression indicator set to a non-zero value
1331 - Added support for decompressing LZMA1/LZMA2 data for -m 11600 = 7-Zip to validate the CRC
1332 - Added support for automatic merge of LM halfes in case --show and --left is used
1333 - Added support for showing all user names with --show and --left if --username was specified
1334 - Added support for GPU temperature management on cygwin build
1335
1336 ##
1337 ## Algorithms
1338 ##
1339
1340 - Added hash-mode 1411 = SSHA-256(Base64), LDAP {SSHA256}
1341 - Added hash-mode 3910 = md5(md5($pass).md5($salt))
1342 - Added hash-mode 4010 = md5($salt.md5($salt.$pass))
1343 - Added hash-mode 4110 = md5($salt.md5($pass.$salt))
1344 - Added hash-mode 4520 = sha1($salt.sha1($pass))
1345 - Added hash-mode 4522 = PunBB
1346 - Added hash-mode 7000 = Fortigate (FortiOS)
1347 - Added hash-mode 12001 = Atlassian (PBKDF2-HMAC-SHA1)
1348 - Added hash-mode 14600 = LUKS
1349 - Added hash-mode 14700 = iTunes Backup < 10.0
1350 - Added hash-mode 14800 = iTunes Backup >= 10.0
1351 - Added hash-mode 14900 = Skip32
1352 - Added hash-mode 15000 = FileZilla Server >= 0.9.55
1353
1354 ##
1355 ## Workarounds
1356 ##
1357
1358 - Workaround added for AMDGPU-Pro OpenCL runtime: AES encrypt and decrypt Invertkey function was calculated wrong in certain cases
1359 - Workaround added for AMDGPU-Pro OpenCL runtime: RAR3 kernel require a volatile variable to work correctly
1360 - Workaround added for Apple OpenCL runtime: bcrypt kernel requires a volatile variable because of a compiler optimization bug
1361 - Workaround added for Apple OpenCL runtime: LUKS kernel requires some volatile variables because of a compiler optimization bug
1362 - Workaround added for Apple OpenCL runtime: TrueCrypt kernel requires some volatile variables because of a compiler optimization bug
1363 - Workaround added for NVidia OpenCL runtime: RACF kernel requires EBCDIC lookup to be done on shared memory
1364
1365 ##
1366 ## Bugs
1367 ##
1368
1369 - Fixed a problem within the Kerberos 5 TGS-REP (-m 13100) hash parser
1370 - Fixed clEnqueueNDRangeKernel(): CL_UNKNOWN_ERROR caused by an invalid work-item count during weak-hash-check
1371 - Fixed cracking of PeopleSoft Token (-m 13500) if salt length + password length is >= 128 byte
1372 - Fixed cracking of Plaintext (-m 99999) in case MD4 was used in a previous session
1373 - Fixed DEScrypt cracking in BF mode in case the hashlist contains more than 16 times the same salt
1374 - Fixed duplicate detection for WPA handshakes with the same ESSID
1375 - Fixed nvapi datatype definition for NvS32 and NvU32
1376 - Fixed overflow in bcrypt kernel in expand_key() function
1377 - Fixed pointer to local variable outside scope in case -j or -k is used
1378 - Fixed pointer to local variable outside scope in case --markov-hcstat is not used
1379 - Fixed recursion in loopback handling when session was aborted by the user
1380 - Fixed rule 'O' (RULE_OP_MANGLE_OMIT) in host mode in case the offset + length parameter equals the length of the input word
1381 - Fixed rule 'i' (RULE_OP_MANGLE_INSERT) in host mode in case the offset parameter equals the length of the input word
1382 - Fixed string not null terminated inside workaround for checking drm driver path
1383 - Fixed string not null terminated while reading maskfiles
1384 - Fixed truncation of password after position 32 with the combinator attack
1385 - Fixed use of option --keyspace in combination with -m 2500 (WPA)
1386 - Fixed WPA/WPA2 cracking in case eapol frame is >= 248 byte
1387
1388 ##
1389 ## Technical
1390 ##
1391
1392 - Building: Add SHARED variable to Makefile to choose if hashcat is build as static or shared binary (using libhashcat.so/hashcat.dll)
1393 - Building: Removed compiler option -march=native as this created problems for maintainers on various distributions
1394 - Building: Removed the use of RPATH on linker level
1395 - Building: Replaced linking of CRT_glob.o with the use of int _dowildcard
1396 - Commandline: Do some checks related to custom-charset options if user specifies them
1397 - CPU Affinity: Fixed memory leak in case invalid cpu Id was specified
1398 - Dispatcher: Fixed several memory leaks in case an OpenCL error occurs
1399 - Events: Improved the maximum event message handling. event_log () will now also internally make sure that the message is properly terminated
1400 - File Locking: Improved error detection on file locks
1401 - File Reads: Fixed memory leak in case outfile or hashfile was not accessible
1402 - File Reads: Improved error detection on file reads, especially when getting the file stats
1403 - Files: Do several file and folder checks on startup rather than when they are actually used to avoid related error after eventual intense operations
1404 - Hardware Management: Bring back kernel exec timeout detection for NVidia on user request
1405 - Hardware Monitor: Fixed several memory leaks in case hash-file writing (caused by --remove) failed
1406 - Hardware Monitor: Fixed several memory leaks in case no hardware monitor sensor is found
1407 - Hardware Monitor: In case NVML initialization failed, do not try to initialiaze NVAPI or XNVCTRL because they both depend on NVML
1408 - Hash Parsing: Added additional bound checks for the SIP digest authentication (MD5) parser (-m 11400)
1409 - Hash Parsing: Make sure that all files are correctly closed whenever a hash file parsing error occurs
1410 - Helper: Added functions to check existence, type, read- and write-permissions and rewrite sources to use them instead of stat()
1411 - Keyfile handling: Make sure that the memory is cleanly freed whenever a VeraCrypt/TrueCrypt keyfile fails to load
1412 - Mask Checks: Added additional memory cleanups after parsing/verifying masks
1413 - Mask Checks: Added integer overflow detection for a keyspace of a mask provided by user
1414 - Mask Increment: Fixed memory leak in case mask_append() fails
1415 - OpenCL Device: Do a check on available constant memory size and abort if it's less than 64kB
1416 - OpenCL Device Management: Fixed several memory leaks in case initialization of an OpenCL device or platform failed
1417 - OpenCL Header: Updated CL_* errorcode to OpenCL 1.2 standard
1418 - OpenCL Kernel: Move kernel binary buffer from heap to stack memory
1419 - OpenCL Kernel: Refactored read_kernel_binary to load only a single kernel for a single device
1420 - OpenCL Kernel: Remove "static" keyword from function declarations; Causes older Intel OpenCL runtimes to fail compiling
1421 - OpenCL Kernel: Renumbered hash-mode 7600 to 4521
1422 - OpenCL Runtime: Added a warning about using Mesa OpenCL runtime
1423 - OpenCL Runtime: Updated AMDGPU-Pro driver version check, do warn if version 16.60 is detected which is known to be broken
1424 - Outfile Check: Fixed a memory leak for failed outfile reads
1425 - Restore: Add some checks on the rd->cwd variable in restore case
1426 - Rule Engine: Fixed several memory leaks in case loading of rules failed
1427 - Session Management: Automatically set dedicated session names for non-cracking parameters, for example: --stdout
1428 - Session Management: Fixed several memory leaks in case profile- or install-folder setup failed
1429 - Sessions: Move out handling of multiple instance from restore file into separate pidfile
1430 - Status screen: Do not try to clear prompt in --quiet mode
1431 - Tests: Fixed the timeout status code value and increased the runtime to 400 seconds
1432 - Threads: Restored strerror as %m is unsupported by the BSDs
1433 - Wordlists: Disable dictstat handling for hash-mode 3000 as it virtually creates words in the wordlist which is not the case for other modes
1434 - Wordlists: Fixed memory leak in case access a file in a wordlist folder fails
1435 - WPA: Changed format for outfile and potfile from essid:mac1:mac2 to hash:mac_ap:mac_sta:essid
1436 - WPA: Changed format for outfile_check from essid:mac1:mac2 to hash
1437
1438 * changes v3.20 -> v3.30:
1439
1440 ##
1441 ## Features
1442 ##
1443
1444 - Files: Use $HEX[...] in case the password includes the separater character, increases potfile reading performance
1445 - Files: If the user specifies a folder to scan for wordlists instead of directly a wordlist, then ignore the hidden files
1446 - Loopback: Include passwords for removed hashes present in the potfile to next loopback iteration
1447 - New option --progress-only: Quickly provides ideal progress step size and time to process on the user hashes and selected options, then quit
1448 - Status screen: Reenabled automatic status screen display in case of stdin used
1449 - Truecrypt/Veracrypt: Use CRC32 to verify headers instead of fuzzy logic, greatly reduces false positives from 18:2^48 to 3:2^64
1450 - WPA cracking: Reuse PBKDF2 intermediate keys if duplicate essid is detected
1451
1452 ##
1453 ## Algorithms
1454 ##
1455
1456 - Added hash-mode 1300 = SHA-224
1457
1458 ##
1459 ## Bugs
1460 ##
1461
1462 - Fixed buffer overflow in status screen display in case of long non-utf8 string
1463 - Fixed buffer overflow in plaintext parsing code: Leading to segfault
1464 - Fixed custom char parsing code in maskfiles in --increment mode: Custom charset wasn't used
1465 - Fixed display screen to show input queue when using custom charset or rules
1466 - Fixed double fclose() using AMDGPU-Pro on sysfs compatible platform: Leading to segfault
1467 - Fixed hash-mode 11400 = SIP digest authentication (MD5): Cracking of hashes which did not include *auth* or *auth-int* was broken
1468 - Fixed hex output of plaintext in case --outfile-format 4, 5, 6 or 7 was used
1469 - Fixed infinite loop when using --loopback in case all hashes have been cracked
1470 - Fixed kernel loops in --increment mode leading to slower performance
1471 - Fixed mask length check in hybrid attack-modes: Do not include hash-mode dependant mask length checks
1472 - Fixed parsing of hashes in case the last line did not include a linefeed character
1473 - Fixed potfile loading to accept blank passwords
1474 - Fixed runtime limit: No longer required so sample startup time after refactorization
1475
1476 ##
1477 ## Workarounds
1478 ##
1479
1480 - Workaround added for Intel OpenCL runtime: GPU support is broken, skip the device unless user forces to enable it
1481
1482 ##
1483 ## Technical
1484 ##
1485
1486 - Building: Added hashcat32.dll and hashcat64.dll makefile targets for building hashcat windows libraries
1487 - Building: Added production flag in Makefile to disable all the GCC compiler options needed only for development
1488 - Building: Removed access to readlink() on FreeBSD
1489 - Building: For CYGWIN prefer to use "opencl.dll" (installed by drivers) instead of optional "cygOpenCL-1.dll"
1490 - Events: Added new event EVENT_WEAK_HASH_ALL_CRACKED if all hashes have been cracked during weak hash check
1491 - Hardware management: Switched matching ADL device with OpenCL device by using PCI bus, device and function
1492 - Hardware management: Switched matching NvAPI device with OpenCL device by using PCI bus, device and function
1493 - Hardware management: Switched matching NVML device with OpenCL device by using PCI bus, device and function
1494 - Hardware management: Switched matching xnvctrl device with OpenCL device by using PCI bus, device and function
1495 - Hardware management: Removed *throttled* message from NVML as this created more confusion than it helped
1496 - Hash Parser: Improved error detection of invalid hex characters where hex character are expected
1497 - OpenCL Runtime: Updated AMDGPU-Pro driver version check, do warn if version 16.50 is detected which is known to be broken
1498 - OpenCL Runtime: Updated hashcat.hctune for Iris Pro GPU on macOS
1499 - Potfile: In v3.10 already, the default potfile suffix changed but the note about was missing. The "hashcat.pot" became "hashcat.potfile"
1500 - Potfile: Added old potfile detection, show warning message
1501 - Returncode: Added dedicated returncode (see docs/status_codes.txt) for shutdowns caused by --runtime and checkpoint keypress
1502 - Sanity: Added sanity check to disallow --speed-only in combination with -i
1503 - Sanity: Added sanity check to disallow --loopback in combination with --runtime
1504 - Threads: Replaced all calls to ctime() with ctime_r() to ensure thread safety
1505 - Threads: Replaced all calls to strerror() with %m printf() GNU extension to ensure thread safety
1506
1507 * changes v3.10 -> v3.20:
1508
1509 The hashcat core was completely refactored to be a MT-safe library (libhashcat).
1510 The goal was to help developers include hashcat into distributed clients or GUI frontends.
1511 The CLI (hashcat.bin or hashcat.exe) works as before but from a technical perspective it's a library frontend.
1512
1513 ##
1514 ## Features
1515 ##
1516
1517 - New option --speed-only: Quickly provides cracking speed per device based on the user hashes and selected options, then quit
1518 - New option --keep-guessing: Continue cracking hashes even after they have been cracked (to find collisions)
1519 - New option --restore-file-path: Manually override the path to the restore file (useful if we want all session files in the same folder)
1520 - New option --opencl-info: Show details about OpenCL compatible devices like an embedded clinfo tool (useful for bug reports)
1521 - Documents: Added colors for warnings (yellow) and errors (red) instead of WARNING: and ERROR: prefix
1522 - Documents: Added hints presented to the user about optimizing performance while hashcat is running
1523 - Hardware management: Support --gpu-temp-retain for AMDGPU-Pro driver
1524 - Hardware management: Support --powertune-enable for AMDGPU-Pro driver
1525 - Password candidates: Allow words of length > 31 in wordlists for -a 0 for some slow hashes if no rules are in use
1526 - Password candidates: Do not use $HEX[] if the password candidate is a valid UTF-8 string and print out as-is
1527 - Pause mode: Allow quit program also if in pause mode
1528 - Pause mode: Ignore runtime limit in pause mode
1529 - Status view: Show core-clock, memory-clock and execution time in benchmark-mode in case --machine-readable is activated
1530 - Status view: Show temperature, coreclock, memoryclock, fanspeed and pci-lanes for devices using AMDGPU-Pro driver
1531 - Status view: Show the current first and last password candidate test queued for execution per device (as in JtR)
1532 - Status view: Show the current position in the queue for both base and modifier (Example: Wordlist 2/5)
1533 - Markov statistics: Update hashcat.hcstat which is used as reference whenever the user defines a mask
1534 - Charsets: Added lowercase ascii hex (?h) and uppercase ascii hex (?H) as predefined charsets
1535
1536 ##
1537 ## Algorithms
1538 ##
1539
1540 - Added hash-mode 14000 = DES (PT = $salt, key = $pass)
1541 - Added hash-mode 14100 = 3DES (PT = $salt, key = $pass)
1542 - Added hash-mode 14400 = SHA1(CX)
1543 - Added hash-mode 99999 = Plaintext
1544 - Extended hash-mode 3200 = bcrypt: Accept signature $2b$ (February 2014)
1545 - Improved hash-mode 8300 = DNSSEC: Additional parsing error detection
1546
1547 ##
1548 ## Bugs
1549 ##
1550
1551 - Custom charset from file parsing code did not return an error if an error occured
1552 - Fix some clSetKernelArg() size error that caused slow modes to not work anymore in -a 1 mode
1553 - Hash-mode 11600 = (7-Zip): Depending on input hash a clEnqueueReadBuffer(): CL_INVALID_VALUE error occured
1554 - Hash-mode 22 = Juniper Netscreen/SSG (ScreenOS): Fix salt length for -m 22 in benchmark mode
1555 - Hash-Mode 5500 = NetNTLMv1 + ESS: Fix loading of NetNTLMv1 + SSP hash
1556 - Hash-mode 6000 = RipeMD160: Fix typo in array index number
1557 - If cracking a hash-mode using unicode passwords, length check of a mask was not taking into account
1558 - If cracking a large salted hashlist the wordlist reject code was too slow to handle it, leading to 0H/s
1559 - Null-pointer dereference in outfile-check shutdown code when using --outfile-check-dir, leading to segfault
1560 - On startup hashcat tried to access the folder defined in INSTALL_FOLDER, leading to segfault if that folder was not existing
1561 - Random rules generator code used invalid parameter for memory copy function (M), leading to use of invalid rule
1562 - Sanity check for --outfile-format was broken if used in combination with --show or --left
1563
1564 ##
1565 ## Workarounds
1566 ##
1567
1568 - Workaround added for AMDGPU-Pro OpenCL runtime: Failed to compile hash-mode 10700 = PDF 1.7 Level 8
1569 - Workaround added for AMDGPU-Pro OpenCL runtime: Failed to compile hash-mode 1800 = sha512crypt
1570 - Workaround added for NVidia OpenCL runtime: Failed to compile hash-mode 6400 = AIX {ssha256}
1571 - Workaround added for NVidia OpenCL runtime: Failed to compile hash-mode 6800 = Lastpass + Lastpass sniffed
1572 - Workaround added for macOS OpenCL runtime: Failed to compile hash-mode 10420 = PDF 1.1 - 1.3 (Acrobat 2 - 4)
1573 - Workaround added for macOS OpenCL runtime: Failed to compile hash-mode 1100 = Domain Cached Credentials (DCC), MS Cache
1574 - Workaround added for macOS OpenCL runtime: Failed to compile hash-mode 13800 = Windows 8+ phone PIN/Password
1575 - Workaround added for pocl OpenCL runtime: Failed to compile hash-mode 5800 = Android PIN
1576
1577 ##
1578 ## Performance
1579 ##
1580
1581 - Improved performance for rule-based attacks for _very_ fast hashes like MD5 and NTLM by 30% or higher
1582 - Improved performance for DEScrypt on AMD, from 373MH/s to 525MH/s
1583 - Improved performance for raw DES-based algorithms (like LM) on AMD, from 1.6GH/s to 12.5GH/s
1584 - Improved performance for raw SHA256-based algorithms using meet-in-the-middle optimization, reduces 7/64 steps
1585 - Improved performance for SAP CODVN B (BCODE) and SAP CODVN F/G (PASSCODE) due to register handling optimization, gives 3% and 25%
1586 - Improved performance by reducing maximum number of allowed function calls per rule from 255 to 31
1587 - Improved performance by update the selection when to use #pragma unroll depending on OpenCL runtime vendor
1588
1589 - Full performance comparison sheet v3.10 vs. v3.20: https://docs.google.com/spreadsheets/d/1B1S_t1Z0KsqByH3pNkYUM-RCFMu860nlfSsYEqOoqco/edit#gid=1591672380
1590
1591 ##
1592 ## Technical
1593 ##
1594
1595 - Autotune: Do not run any caching rounds in autotune in DEBUG mode if -n and -u are specified
1596 - Bash completion: Removed some v2.01 leftovers in the bash completion configuration
1597 - Benchmark: Do not control fan speed in benchmark mode
1598 - Benchmark: On macOS, some hash-modes can't compile because of macOS OpenCL runtime. Skip them and move on to the next
1599 - Building: Added Makefile target "main_shared", a small how-to-use libhashcat example
1600 - Building: Added many additional compiler warning flags in Makefile to improve static code error detection
1601 - Building: Added missing includes for FreeBSD
1602 - Building: Added some types for windows only in case _BASETSD_H was not set
1603 - Building: Changed Makefile to strip symbols in the linker instead of the compiler
1604 - Building: Defined NOMINMAX macro to prevent definition min and max macros in stdlib header files
1605 - Building: Enabled ASLR and DEP for Windows builds
1606 - Building: Fixed almost all errors reported by cppcheck and scan-build
1607 - Building: On macOS, move '-framework OpenCL' from CFLAGS to LDFLAGS
1608 - Building: On macOS, use clang as default compiler
1609 - Building: Support building on Msys2 environment
1610 - Building: Use .gitmodules to simplify the OpenCL header dependency handling process
1611 - Charsets: Added DES_full.charset
1612 - Data Types: Replaced all integer macros with enumerator types
1613 - Data Types: Replaced all integer variables with true bool variables in case they are used as a bool
1614 - Data Types: Replaced all string macros with static const char types
1615 - Data Types: Replaced all uint and uint32_t to u32
1616 - Data Types: Replaced atoi() with atoll(). Eliminates sign conversion warnings
1617 - Documents: Added docs/credits.txt
1618 - Documents: Added docs/team.txt
1619 - Documents: Changed rules.txt to match v3.20 limitations
1620 - Error handling (file handling): Fixed a couple of filepointer leaks
1621 - Error handling (format strings): Fixed a few printf() formats, ex: use %u instead of %d for uint32_t
1622 - Error handling (memory allocation): Removed memory allocation checks, just print to stderr instead
1623 - Error handling (startup): Added some missing returncode checks to get_exec_path()
1624 - Fanspeed: Check both fanpolicy and fanspeed returncode and disable retain support if any of them fail
1625 - Fanspeed: Minimum fanspeed for retain support increased to 33%, same as NV uses as default on windows
1626 - Fanspeed: Reset PID controler settings to what they were initially
1627 - Fanspeed: Set fan speed to default on quit
1628 - File handling: Do a single write test (for files to be written later) directly on startup
1629 - File locking: Use same locking mechanism in potfile as in outfile
1630 - Hardware management: Fixed calling conventions for ADL, NvAPI and NVML on windows
1631 - Hardware management: Improved checking for successfull load of the NVML API
1632 - Hardware management: In case fanspeed can not be set, disable --gpu-temp-retain automatically
1633 - Hardware management: In case of initialization error show it only once to the user on startup
1634 - Hardware management: Refactored all code to return returncode (0 or -1) instead of data for more easy error handling
1635 - Hardware management: Refactored macros to real functions
1636 - Hardware management: Removed kernel exec timeout detection on NVIDIA, should no longer occur due to autotune
1637 - Hardware management: Replaced NVML registry functions macros with their ascii versions (Adds NVML support for XP)
1638 - Hashlist loading: Do not load data from hashfile if hashfile changed during runtime
1639 - Kernel cache: Fixed checksum building on oversized device version or driver version strings
1640 - Logging: Improved variable names in hashcat.log
1641 - Loopback: Refactored --loopback support completely, no longer a recursive function
1642 - Memory management: Fixed some memory leaks on shutdown
1643 - Memory management: Got rid of all global variables
1644 - Memory management: Got rid of local_free() and global_free(), no longer required
1645 - Memory management: Refactored all variables with HCBUFSIZ_LARGE size from stack to heap, macOS doesn't like that
1646 - OpenCL Headers: Select OpenCL headers tagged for OpenCL 1.2, since we use -cl-std=CL1.2
1647 - OpenCL Kernels: Added const qualifier to variable declaration of matching global memory objects
1648 - OpenCL Kernels: Got rid of one global kernel_threads variable
1649 - OpenCL Kernels: Moved OpenCL requirement from v1.1 to v1.2
1650 - OpenCL Kernels: Recognize reqd_work_group_size() values from OpenCL kernels and use them in the host if possible
1651 - OpenCL Kernels: Refactored common function append_0x01()
1652 - OpenCL Kernels: Refactored common function append_0x02()
1653 - OpenCL Kernels: Refactored common function append_0x80()
1654 - OpenCL Kernels: Refactored rule function append_block1()
1655 - OpenCL Kernels: Refactored rule function rule_op_mangle_delete_last()
1656 - OpenCL Kernels: Refactored rule function rule_op_mangle_dupechar_last()
1657 - OpenCL Kernels: Refactored rule function rule_op_mangle_rotate_left()
1658 - OpenCL Kernels: Refactored rule function rule_op_mangle_rotate_right()
1659 - OpenCL Kernels: Support mixed kernel thread count for mixed kernels in the same source file
1660 - OpenCL Kernels: Switch from clz() to ffz() for bitsliced algorithms
1661 - OpenCL Kernels: Using platform vendor name is better than using device vendor name for function detection
1662 - OpenCL Runtime: Updated AMDGPU-Pro and AMD Radeon driver version check
1663 - OpenCL Runtime: Updated Intel OpenCL runtime version check
1664 - OpenCL Runtime: Updated NVIDIA driver version check
1665 - Password candidates: The maximum word length in a wordlist is 31 not 32, because 0x80 will eventually be appended
1666 - Potfile: Base logic switched; Assuming the potfile is larger than the hashlist it's better to load hashlist instead of potfile entries
1667 - Potfile: In case all hashes were cracking using potfile abort and inform user
1668 - Restore: Automatically unlink restore file if all hashes have been cracked
1669 - Restore: Do not unlink restore file if restore is disabled
1670 - Rules: Refactored macros to real functions
1671 - Status: Added Input.Queue.Base and Input.Queue.Mod to help the user better understand this concept
1672 - Status: Do not wait for the progress mutex to read and store speed timer
1673 - Status: Do not show Recovered/Time when cracking < 1000 hashes
1674 - Status: Do not show Recovered/Time as floats but as integers to reduce over-information
1675 - Tests: Removed rules_test/ subproject: Would require total rewrite but not used in a long time
1676 - Threads: Replaced all calls to getpwuid() with getpwuid_r() to ensure thread safety
1677 - Threads: Replaced all calls to gmtime() with gmtime_r() to ensure thread safety
1678 - Threads: Replaced all calls to strtok() with strtok_r() to ensure thread safety
1679 - Wordlists: Use larger counter variable to handle larger wordlists (that is > 2^32 words)
1680 - X11: Detect missing coolbits and added some help text for the user how to fix it
1681
1682 * changes v3.00 -> v3.10:
1683
1684 ##
1685 ## Improvements
1686 ##
1687
1688 - Added mask display to modes 3, 6, and 7. Allows the user to see the custom character set used during the run
1689 - Make Linux build POSIX compatible; Also allow it to actually compile on musl-libc systems
1690 - Add support to compile on FreeBSD
1691 - Make use of cl_context_properties[] to clCreateContext(), even if OpenCL specification allow the use of NULL, some runtimes fail without
1692 - The Time.Estimated attribute in status display should also show --runtime limit if user set it
1693 - Fix some strict aliasing rule violation on older compilers
1694 - Fix some variable initializers on older compilers
1695 - Replace DARWIN macro with compiler predefined macro __APPLE__
1696 - Replace LINUX macro with compiler predefined macro __linux__
1697 - Allow the use of enc_id == 0 in hash-mode 10600 and 10700 as it takes no part in the actual computation
1698 - 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
1699 - Do not error and exit if an OpenCL platform has no devices, just print a warning and continue with the next platform
1700 - Workaround for OpenCL runtimes which do not accept -I parameter in the OpenCL kernel build options even if this is an OpenCL standard option
1701 - Workaround for OpenCL runtimes which do accept -I parameter in the OpenCL kernel build options, but do not allow quotes
1702 - Output cracked hashes on Windows using \r\n and not \n
1703 - Replace RegGetValue() with RegQueryValueEx() to enable Windows XP 32 bit compatibility
1704 - Slightly increased NVidias rule-processing performance by using generic instructions instead of byte_perm()
1705 - Add support for @ rule (RULE_OP_MANGLE_PURGECHAR) to use on GPU
1706 - Add support for --outfile (short -o) to be used together with --stdout
1707 - Skip periodic status output whenever --stdout is used together with stdin mode, but no outfile was specified
1708 - Show error message if --show is used together with --outfile-autohex-disable (this is currently not supported)
1709 - Show error message if --skip/--limit is used together with mask files or --increment
1710 - Workaround for NVidia OpenCL runtime bug causing -m 6223 to not crack any hashes even with the correct password candidate
1711
1712 ##
1713 ## Bugs
1714 ##
1715
1716 - Fixed a bug where CRAM MD5 checked salt length instead of hash length
1717 - Fixed a bug where hashcat is suppressing --machine-readable output in the final status update
1718 - Fixed a bug where hashcat did not check the return of realpath() and crashes uncontrolled if the path does not exist
1719 - Fixed a bug where hashcat crashes for accessing deallocated buffer if user spams "s" shortly before hashcat shuts down
1720 - Fixed a bug where hashcat crashes in case of a scrypt P setting > 1
1721 - Fixed a bug where hashcat did not correctly use the newly cracked plains whenever --loopback or the induction folder was used
1722 - Fixed a bug where hashcat did not correctly remove hashes of type WPA/WPA2 even if present in potfile
1723 - Fixed a bug where hashcat reported an invalid password for a zero-length password in LM
1724 - 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
1725 - Fixed a bug where some kernels used COMPARE_M_SIMD instead of COMPARE_S_SIMD in singlehash mode
1726
1727 ##
1728 ## Algorithms
1729 ##
1730
1731 - Added new hash-mode 13900 = OpenCart
1732
1733 * changes v2.01 -> v3.00:
1734
1735 This release markes the fusion of "hashcat" and "oclHashcat" into "hashcat".
1736 It combines all features of all hashcat projects in one project.
1737
1738 ##
1739 ## Features
1740 ##
1741
1742 - Support for Apple OpenCL runtime
1743 - Support for NVidia OpenCL runtime (replaces CUDA)
1744 - Support for Mesa (Gallium) OpenCL runtime
1745 - Support for pocl OpenCL runtime
1746 - Support for Khronos' OSS OpenCL reference implementation for building
1747 - Support to utilize OpenCL devices-types other than GPU, ex: CPU and FPGA
1748 - Support to utilize multiple different OpenCL platforms in parallel, ex: AMD + NV
1749 - Support to utilize multiple different OpenCL device-types in parallel, ex: GPU + CPU
1750 - Added option --opencl-platform to select a specific OpenCL platform
1751 - Added option --opencl-device-types select specific OpenCL device types
1752 - Added option --opencl-vector-width to override automatically selected vector-width size
1753 - Added makefile native compilation target
1754 - Added makefile install and uninstall targets
1755 - Added autotuning engine and user-configurable tuning database
1756 - Added current engine clock, current memory clock and pci-e lanes to the status display
1757 - Added support for --gpu-temp-retain for NVidia GPU, both Linux and Windows
1758 - Added execution timer of the running kernel to the status display
1759 - Added command prompt to quit at next restore checkpoint
1760 - Added human-readable error message for the OpenCL error codes
1761 - Added option --potfile-path to override potfile path
1762 - Added option --veracrypt-keyfile to set Keyfiles used, can be multiple
1763 - Added option --veracrypt-pim to set the VeraCrypt personal iterations multiplier
1764 - Added option --machine-readable for easier parsing of output
1765 - Added option --powertune-enable to work with NVidia devices as well, not just AMD
1766 - Added option --stdout to print candidates instead of trying to crack a hash
1767
1768 ##
1769 ## Algorithms
1770 ##
1771
1772 - Added new hash-mode 125 = ArubaOS
1773 - Added new hash-mode 12900 = Android FDE (Samsung DEK)
1774 - Added new hash-mode 13000 = RAR5
1775 - Added new hash-mode 13100 = Kerberos 5 TGS-REP etype 23
1776 - Added new hash-mode 13200 = AxCrypt
1777 - Added new hash-mode 13300 = AxCrypt in memory SHA1
1778 - Added new hash-mode 13400 = Keepass 1 (AES/Twofish) and Keepass 2 (AES)
1779 - Added new hash-mode 13500 = PeopleSoft PS_TOKEN
1780 - Added new hash-mode 13600 = WinZip
1781 - Added new hash-mode 137** = VeraCrypt
1782 - Added new hash-mode 13800 = Windows 8+ phone PIN/Password
1783
1784 ##
1785 ## Performance
1786 ##
1787
1788 - Full Table: https://docs.google.com/spreadsheets/d/1B1S_t1Z0KsqByH3pNkYUM-RCFMu860nlfSsYEqOoqco/edit#gid=0
1789
1790 ##
1791 ## Improvements
1792 ##
1793
1794 - Reordering of files to help integration into linux distributions ~/.hashcat etc
1795 - Use a profile directory to write temporary files (session, potfile etc.)
1796 - Workaround dependencies on AMD APP-SDK AMD ADL, NV CUDA-SDK, NV ForceWare, NVML and NVAPI; they are no longer required
1797 - Load external libraries dynamic at runtime instead of link them static at compile-time
1798 - Benchmark accuracy improved; Is now on par to: singlehash -a 3 -w 3 ?b?b?b?b?b?b?b
1799 - Benchmark no longer depends on a fixed time
1800 - Removed option --benchmark-mode, therefore support --workload-profile in benchmark-mode
1801 - Enabled support of --machine-readable in combination with --benchmark for automated benchmark processing
1802 - Replaced --status-automat entirely with --machine-readable to make it more consistent among benchmark and non-benchmark mode
1803 - Extended support from 14 to 255 functions calls per rule
1804 - Extended password length up to 32 for 7zip
1805 - Extended salt length up to 55 for raw hash types, eg: md5($pass.$salt)
1806 - Extended version information
1807 - Removed some duplicate rules in T0XlCv1, d3ad0ne and dive
1808 - Redesigned changes.txt layout
1809 - Redesigned --help menu layout
1810
1811 ##
1812 ## Bugs
1813 ##
1814
1815 - Fixed a bug in speed display: In some situation, especially with slow hashes or lots of salts, it showed a speed of 0H/s
1816 - Fixed a bug in restore handling: user immediately aborting after restart broke the restore file
1817 - Fixed a bug in line counter: conditional jump or move depends on an uninitialised value
1818 - Fixed a bug in rule-engine for NVidia devices: code for left- and right-shift were switched
1819 - Fixed a bug in dive.rule: rules were not updated after the function 'x' was renamed to 'O'
1820 - Fixed a bug in memory allocation "OpenCL -4 error": used unitialized value in a special situation
1821 - Fixed a bug in memory handling: heap buffer overflow
1822 - Fixed a bug in memory handling: out of bounds access
1823 - Fixed a bug in implementation of DCC2: forced default iteration count for hashes to 10240
1824 - Fixed a bug in implementation of WPA/WPA2: MAC and nonce stay one their original position as in the hccap file
1825 - Fixed a bug in implementation of GOST R 34.11-94: zero length passwords were not cracked
1826 - Fixed a bug in implementation of BLAKE2-512 kernels: incorrect access of the esalt buffer
1827
1828 ##
1829 ## Technical
1830 ##
1831
1832 - Removed deprecated GCC version check requirement
1833 - Removed NPROCS from Makefile, let make automatically detect the optimal number of parallel threads
1834 - Dropped all C++ overloading functions to normal function which helps support more OpenCL platforms
1835 - Renamed functions in common.h to emphasize their purpose
1836 - Refactorized fast-hash kernels to enable SIMD on all OpenCL platforms
1837 - Refactorized SIMD handling: SIMD the inner-loop not the outer-loop to save registers
1838 - Workaround missing clEnqueueFillBuffer() support in certain OpenCL runtimes
1839 - Added amd_bytealign() support in non-AMD OpenCL runtimes
1840 - Added amd_bfe() support in non-AMD OpenCL runtimes
1841 - Added several macros to allow writing optimized code for the different OpenCL platforms
1842 - Replaced typedef for bool with stdbool.h
1843 - Added special DEBUG environment variables to the makefile
1844 - Hashcat now acquires an exclusive lock before writing to any file
1845 - Changed buffers to not use same buffer for both input and output at the same time with snprintf()
1846 - Check for allocatable device-memory depending on kernel_accel amplifier before trying to allocate
1847 - Added additional check for max. ESSID length to prevent possible crashes
1848 - Use a GCC equivalent for __stdcall where applicable
1849 - Synchronize maximum output line size with input line size
1850 - Increased maximum hash line size to 0x50000
1851 - Run weak-hash checks only in straight-attack mode, this greatly reduces code complexity
1852 - Restrict loopback option to straight attack-mode
1853 - Moved rules_optimize to hashcat-utils
1854 - Stick to older libOpenCL in binary package to avoid errors like this: version `OPENCL_2.0' not found
1855 - Tightened hash parser for several algorithms
1856 - Updated old RC4 code in Kerberos 5
1857 - Limited the salt length of Juniper Netscreen/SSG (ScreenOS) hashes to 10
1858 - Updated algorithm used to automatically select an ideal --scrypt-tmto value
1859 - Renamed option --gpu-accel to --kernel-accel
1860 - Renamed option --gpu-loops to --kernel-loops
1861 - Renamed option --gpu-devices to --opencl-devices
1862 - Added inline declaration to functions from simd.c, common.c, rp.c and types_ocl.c to increase performance
1863 - Dropped static declaration from functions in all kernel to achieve OpenCL 1.1 compatibility
1864 - Added -cl-std=CL1.1 to all kernel build options
1865 - Created environment variable to inform NVidia OpenCL runtime to not create its own kernel cache
1866 - Created environment variable to inform pocl OpenCL runtime to not create its own kernel cache
1867 - Dropped special 64-bit rotate() handling for NV, it seems that they've added it to their OpenCL runtime
1868 - Completely get rid of HAVE_ADL, HAVE_NVML and HAVE_NVAPI in sources
1869 - Replaced NVAPI with NVML on windows