- Hardware Monitor: Add support for GPU device utilization readings using iokit on Apple Silicon (OpenCL and Metal)
- Hash Info: show more information (Updated Hash-Format. Added Autodetect, Self-Test, Potfile and Plaintext encoding)
- HIP Backend: moved functions to ext_hip.c/ext_hiprtc.c and includes to ext_hip.h/ext_hiprtc.h
- HIP Backend: removed unused functions from hiprtc to workaroung missing function symbols on windows dll
- HIP Backend: removed unused functions from hiprtc to workaround missing function symbols on windows dll
- Kernels: Refactored standard kernel declaration to use a structure holding u32/u64 attributes to reduce the number of attributes
- Kernels: Refactored standard kernel includes, KERN_ATTR macros and RC4 cipher functions, in order to support Apple Metal runtime
- Kernels: Set the default Address Space Qualifier for any pointer, in order to support Apple Metal runtime
@ -254,7 +254,7 @@
- Rules: Add support to include source wordlist in debugging format
- Rules: Update hand-written rulesets to covers years up to 2029
- Status code: updated negative status code (added kernel create failure and resync)
- Status code: updated negative status code, usefull in Unit tests engine (test.sh)
- Status code: updated negative status code, useful in Unit tests engine (test.sh)
- Terminal: Increased size of hash name column in `--help` and `--identify` options
- Terminal: Limit output length of example hash in --example-hash mode to 200. Use --mach to see full example hash
- Terminal: show empty OpenCL platforms only in backend information mode
@ -666,7 +666,7 @@
- Building: Fixed build warnings on macOS for unrar sources
- Building: Fixed test for DARWIN_VERSION in Makefile
- Commandline Options: Removed option --example-hashes, now an alias of --hash-info
- Compute API: Skipping devices instead of stop if error occured in initialization
- Compute API: Skipping devices instead of stop if error occurred in initialization
- Documentation: Added 3rd party licenses to docs/license_libs
- Hash-Mode 8900 (Scrypt): Changed default benchmark scrypt parameters from 1k:1:1 to 16k:8:1 (default)
- Hash-Mode 11600 (7-Zip): Improved memory handling (alloc and free) for the hook function
@ -732,7 +732,7 @@
- Hcchr Files: Renamed some .charset files into .hcchr files
- Hash-Mode 21200 (md5(sha1($salt).md5($pass))): Improved speed by using pre-computed SHA1
- OpenCL Devices: Utilize PCI domain to improve alias device detection
- OpenCL Kernels: Added datatypes to literals of enum costants
- OpenCL Kernels: Added datatypes to literals of enum constants
- OpenCL Kernels: Added pure kernels for hash-mode 600 (BLAKE2b-512)
- OpenCL Runtime: Add some unstable warnings for some SHA512 based algorithms on AMD GPU on macOS
- OpenCL Runtime: Reinterpret return code CL_DEVICE_NOT_FOUND from clGetDeviceIDs() as non-fatal
@ -865,7 +865,7 @@
- Bitcoin Wallet: Be more user friendly by allowing a larger data range for ckey and public_key
- Brain: Added new parameter --brain-server-timer to specify seconds between scheduled backups
- Building: Fix for library compilation failure due to multiple defenition of sbob_xx64()
- Building: Fix for library compilation failure due to multiple definition of sbob_xx64()
- Cracking bcrypt and Password Safe v2: Use feedback from the compute API backend to dynamically calculate optimal thread count
- 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.
- Documents: Added README on how to build hashcat on Cygwin, MSYS2 and WSL
@ -903,7 +903,7 @@
## Technical
##
- Backend Interface: Added new options --backend-ignore-cuda and --backend-ingore-opencl to prevent CUDA and/or OpenCL API from being used
- Backend Interface: Added new options --backend-ignore-cuda and --backend-ignore-opencl to prevent CUDA and/or OpenCL API from being used
@ -203,7 +203,7 @@ Each password candidate creates a hash of 8 bytes that has to be transferred, lo
So let's assume a candidate list size of 8,000,000,000. That doesn't sound like too much - especially if you want to work with rules and masks. It should be clear that using the hashcat brain against a raw MD5 is not very efficient. But now things become interesting, because of some unexpected effects that kick in.
Imagine you have a salted MD5 list, let's say VBULL which is a fast hash (not a slow hash) - and you have many of them. In thise case, each of the salts starts to work for us.
Imagine you have a salted MD5 list, let's say VBULL which is a fast hash (not a slow hash) - and you have many of them. In this case, each of the salts starts to work for us.
Yes, you read that right - the more salts, the better!!
staticconstchar*CONFIGPASSPHRASEV2_SIGNATURE="S:\"Config Passphrase\"=02:";//The whole line is part of the format to prevent confusion with other similiar tokens also prefixed with 02: in the config files
staticconstchar*CONFIGPASSPHRASEV2_SIGNATURE="S:\"Config Passphrase\"=02:";//The whole line is part of the format to prevent confusion with other similar tokens also prefixed with 02: in the config files
@ -13,12 +13,12 @@ During `verify` tests the `module_verify_hash` function must parse the hash:pass
**Important**: You have to call `pack_if_HEX_notation` as soon as you have parsed the password, or your tests will fail on passwords in the `$HEX[...]` format.
If the algorithm has ambiguous hashes (e.g. partial case-insensetivity), the test module can provide an optional function `module_preprocess_hashlist`. It recieves a reference to the hashlist array and can unify the hashes in a way that guarantees the match with the output of `module_verify_hash`.
If the algorithm has ambiguous hashes (e.g. partial case-insensitivity), the test module can provide an optional function `module_preprocess_hashlist`. It receives a reference to the hashlist array and can unify the hashes in a way that guarantees the match with the output of `module_verify_hash`.
#### Examples ####
* For the most basic test modules, see [m00000.pm](m00000.pm) and [m00100.pm](m00100.pm)
* For the basic salted hash tests, see [m00110.pm](m00110.pm) and [m00120.pm](m00120.pm)
* For some sligthly more complex modules with PBKDF2 and encryption, see [m18400.pm](m18400.pm) and [m18600.pm](m18600.pm)
* For some slightly more complex modules with PBKDF2 and encryption, see [m18400.pm](m18400.pm) and [m18600.pm](m18600.pm)
* For a test module with hashlist preprocessing and a custom salt generation algorithm, see [m05600.pm](m05600.pm)
@ -99,7 +99,7 @@ sub pdf_compute_encryption_key_owner
my$o_key;
if($R==2)
{
$o_key=substr($o_digest,0,8);# rc4 key is always 5 for revision 2, but for 3 or greather is dependent on the value of the encryption dictionaries length entry
$o_key=substr($o_digest,0,8);# rc4 key is always 5 for revision 2, but for 3 or greater is dependent on the value of the encryption dictionaries length entry