"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