1
0
mirror of https://github.com/hashcat/hashcat.git synced 2025-07-08 23:58:24 +00:00
Commit Graph

1152 Commits

Author SHA1 Message Date
Jens Steube
0c2ed0d199 Update plugins that benefit from an artificially limited register count (NVIDIA).
Update default hash settings to 64MiB:3:4 for Argon2 in -m 70000, following RFC 9106 recommendations.
Add option OPTS_TYPE_THREAD_MULTI_DISABLE: allows plugin developers to disable scaling the password candidate batch size based on device thread count. This can be useful for super slow hash algorithms that utilize threads differently, e.g., when the algorithm allows parallelization. Note: thread count for the device can still be set normally.
Add options OPTI_TYPE_SLOW_HASH_DIMY_INIT/LOOP/COMP: enable 2D launches for slow hash init/loop/comp kernel with dimensions X and Y. The Y value must be set via salt->salt_dimy attribute.
Change autotune kernel-loops start value to the lowest multiple of the target hash iteration count, if kernel_loops_min permits.
Fixed a bug in autotune where kernel_threads_max was not respected during initial init and loop-prepare kernel runs.
2025-06-29 14:39:14 +02:00
Gabriele Gristina
a3afca56b8
Merge remote-tracking branch 'upstream/master' into ripemd320 2025-06-26 21:37:40 +02:00
Jens Steube
3182af1bc9 - Renamed shuffle() in inc_hash_scrypt.cl to avoid name collision with
shuffle() present in some OpenCL runtimes
- Updated autotune logic: if the best kernel-loop is not yet found and
  the current kernel-loops setting resulting in a kernel runtime which
  is already above a certain threshold, do not skip to kernel-threads
  or kernel-accel section if no variance is possible
- Revised all plugin module_unstable_warning() checks for
  AMD Radeon Pro W5700X GPU on Metal: rechecked with the latest
  Metal version and removed those now fixed
- Inform the user on startup when backend runtimes and devices are
  initialized
- Fixed some file permissions in the tools/ folder
2025-06-26 19:36:06 +02:00
Jens Steube
62a5a85dd6 Added 'next_power_of_two()' and moved both 'next_power_of_two()' and 'previous_power_of_two()' to 'shared.c'
Improved autotuner tweak logic and added boundary checks for accel and threads
Fixed available host memory detection on Windows
Fixed compilation error in MSYS2 native shell
Introduced an 8 GiB host memory usage limit per GPU, even if more is available
Replaced fixed-size host memory detection per GPU with a dynamic kernel-accel based method (similar to GPU memory detection)
Disabled hash-mode autodetection in the python bridge
Removed default invocation of 'rocm-smi' in 'benchmark_deep.pl' to avoid skewed initial results
Reduced default runtime in 'benchmark_deep.pl' scripts due to improved benchmark accuracy in hashcat in general
2025-06-25 11:21:51 +02:00
Jens Steube
13a7b56feb Improve the logic for when to use funnelshift and when not to. Some algorithms, such as SHA1-HMAC and DCC1, do not work well with it, so it has been disabled for them.
Fix the automatic reduction of the kernel-accel maximum based on available memory per device by accounting for the additional size needed to handle register spilling.
Fix the tools/benchmark_deep.pl script to recognize benchmark masks more reliably.
2025-06-23 12:30:12 +02:00
Jens Steube
b7c8fcf27c Removed shared-memory based optimization for SCRYPT on HIP, because the shared-memory buffer is incompatible with TMTO, which is limiting SCRYPT-R to a maximum of 8. This change also simplifies the code, allowing removal of large sections of duplicated code. Removed the section in scrypt_module_extra_tuningdb_block() that increased TMTO when there was insufficient shared memory, as this is no longer applicable.
Refactored inc_hash_scrypt.cl almost completely and improved macro names in inc_hash_scrypt.h. Adapted all existing SCRYPT-based plugins to the new standard. If you have custom SCRYPT based plugins use hash-mode 8900 as reference.
Fixed some compiler warnings in inc_platform.cl.
Cleaned up code paths in inc_vendor.h for finding values for HC_ATTR_SEQ and DECLSPEC.
Removed option --device-as-default-execution-space from nvrtc for hiprtc compatibility. As a result, added __device__ back to DECLSPEC.
Removed option --restrict from nvrtc compile options since we actually alias some buffers.
Added --gpu-max-threads-per-block to hiprtc options.
Added -D MAX_THREADS_PER_BLOCK to OpenCL options (currently unused).
Removed all OPTS_TYPE_MP_MULTI_DISABLE entries for SNMPv3-based plugins.
These plugins consume large amounts of memory and for this reason,limited kernel_accel max to 256. This may still be high, but hashcat will automatically tune down kernel_accel if insufficient memory is detected.
Removed command `rocm-smi --resetprofile --resetclocks --resetfans` from benchmark_deep.pl, since some AMD GPUs become artificially slow for a while after running these commands.
Replaced load_source() with file_to_buffer() from shared.c, which does the exact same operations.
Moved suppress_stderr() and restore_stderr() to shared.c and reused them in both Python bridges and opencl_test_instruction(), where the same type of code existed.
2025-06-21 07:09:20 +02:00
Jens Steube
13245b5563 Add HC_ATTR_SEQ macro to CUDA kernels. It is left empty so that users can optionally add __launch_bounds__ or other launch attributes if needed.
Add MAX_THREADS_PER_BLOCK macro to CUDA kernels. It defaults to 1024 or a lower value if limited by the plugin module or specified via the -T command line option.
For CUDA, lower the C++ dialect from C++17 to C++14 to reduce JIT compile time. Also add support for --split-compile and --minimal flags to further improve NVRTC compile performance.
Remove power-hungry NVIDIA settings and fix missing sudo calls in tools/benchmark_deep.pl.
Remove NEW_SIMD_CODE macro from kernels that do not support SIMD (no u32x).
2025-06-18 10:08:56 +02:00
Jens Steube
e134564a73 Increase default iteration count per kernel invocation from 1024 to 2048
Add support for lower iteration counts per kernel invocation than the default, enabling TMTO for low scrypt configurations, such as N=1024
Use TMTO 2 if it reaches 4 times the device processor count, instead of TMTO 1 always
Improve performance for low scrypt configurations (hash-mode 9300)
Fix unit test for 15700 with correct scrypt configurations
Disable CPU over subscription for SCRYPT based algorithms
2025-06-15 21:14:40 +02:00
Jens Steube
07395626fa Introduce hashes_init_stage5() and call module_extra_tmp_size() there. At this stage, the self-test hash is initialized and its values can be used.
Remove hard-coded SCRYPT N, R, and P values in modules, except where they are intentionally hardcoded.
Fix a bug that always caused a TMTO value of 1, even when it was not needed.
Respect device_available_mem and device_maxmem_alloc values even if a reliable low-level free memory API is present, and always select the lowest of all available limits.
Fix benchmark_deep.pl mask to avoid UTF-8 rejects.
Improve error messages when the check verifying that all SCRYPT configuration settings across all hashes are identical is triggered.
Also improve the error message shown when the SCRYPT configuration of the self-test hash does not match that of the target hash.
Fix a bug where a low-tuned SCRYPT hash combined with a TMTO could result in fewer than 1024 iterations, which breaks the hard-coded minimum of 1024 iterations in the SCRYPT kernel.
2025-06-15 14:13:48 +02:00
Jens Steube
8494116ded Added support for WBB4 (Woltlab Burning Board) Plugin [bcrypt(bcrypt($pass))]
Thanks for the contribution! You know who you are.
2025-06-13 12:38:06 +02:00
Jens Steube
2e640c4e9f Speed improvements for all QNX /etc/shadow
Speed improvements for all OpenSSH private key (by reducing max upported password length from 256 to 128)
2025-06-12 21:18:24 +02:00
Jens Steube
6aeb188b48 - Handle case where system does not offer any reliable method to query actual free memory
- Change package script source folder from $HOME/hashcat to .
- Revisited Apple OpenCL 2GiB Bug (still present)
2025-06-10 12:54:15 +02:00
Jens Steube
5ce7e9ec2a
Merge pull request #4248 from matrix/MSONLINEACCOUNT_v2
Module 33700: limit data len to 32 bytes, based on the extraction tool
2025-06-10 09:23:07 +02:00
Gabriele Gristina
2485c1fcb5 Module 33700: limit data len to 32 bytes, based on the extraction tool 2025-06-10 00:35:35 +02:00
Banaanhangwagen
ffa3626c60
Create cachedata2hashcat.py 2025-06-09 16:26:13 +02:00
Gabriele Gristina
86c8323ae2 Added hash-mode: Microsoft Online Account (PBKDF2-HMAC-SHA256 + AES256) 2025-06-08 21:39:29 +02:00
Jens Steube
ac2ed9f402 - Remove old iconv patches (replaced by cmake)
- Replace Queues in hcmp/hcsp and make code more pythonic
- Synchronize python thread in hcmp count with detected cores
- Move setting PYTHON_GIL to shared.c
- Fix allocating and freeing aligned memory
- Update BUILD guides for WSL and macOS
- Fix python plugin documentation for macOS
2025-06-05 06:56:38 +02:00
Jens Steube
73d817e74f The Assimilation Bridge (Python plugins -m 72000 and -m 73000) 2025-06-02 10:15:34 +02:00
Jens Steube
b02b1b5033 - Add code to recognize Microsofts OpenCL D3D12 platform
- Skip memory-free detection on MS OpenCL platform to avoid crashes
- Improve salt usage of 70100/70200, use decoder/kernels from 8900
- Add REPLACE bridge type support (eg. BRIDGE_TYPE_REPLACE_LOOP)
- Switch 70000, 70100 and 70200 to BRIDGE_TYPE_REPLACE_LOOP
- Add synchronization barriers on d2h copy when using bridges
- Improve speed status display updates when using bridges
- Set AMD_DIRECT_DISPATCH=0 to reduce CPU burning loop on AMD backends
- Set benchmark/selftest hash on 70100/70200 to 16:8:1
2025-06-02 06:59:36 +02:00
Jens Steube
ed71e41ae1 The Assimilation Bridge (Scrypt-Yescrypt GPU-CPU hybrid plugin -m 70200) 2025-06-01 07:10:00 +02:00
Jens Steube
a2a9941475 The Assimilation Bridge (Scrypt-Jane GPU-CPU hybrid plugin -m 70100) 2025-05-31 12:24:44 +02:00
Jens Steube
dc50bdbc72 The Assimilation Bridge (Argon2id plugin -m 70000) 2025-05-30 11:21:40 +02:00
Jens Steube
ceb5ff5641 The Assimilation Bridge (Framework) 2025-05-29 15:38:13 +02:00
Gabriele Gristina
5abef56ba8 Fix test.sh bugs with RC4, a6 and a7 multi 2025-05-27 18:54:35 +02:00
Gabriele Gristina
31a19b9acf Added hash-modes: RIPEMD-320, HMAC-RIPEMD320 (key = $pass), HMAC-RIPEMD320 (key = $salt) 2025-05-26 20:28:13 +02:00
Jens Steube
b293b47ad7
Merge pull request #4196 from matrix/test_unit_33300
add test unit for 33300 (HMAC-BLAKE2s-256)
2025-05-26 20:18:17 +02:00
Jens Steube
f70022b898
Merge pull request #4197 from matrix/test_unit_20730
add test unit for 20730 (sha256(sha256($pass.$salt)))
2025-05-22 07:38:57 +02:00
Jens Steube
686c2ac078
Merge pull request #4199 from matrix/resurrect_PR_2561
Added hash-mode: BestCrypt v4 Volume Encryption
2025-05-19 13:57:14 +02:00
Jens Steube
6782d78898 Rename -m 4500x to -m 3350x 2025-05-18 21:07:44 +02:00
Gabriele Gristina
ff6185e9b4 Added hash-modes: RC4 40-bit DropN, RC4 72-bit DropN, RC4 104-bit DropN 2025-05-06 20:44:50 +02:00
Gabriele Gristina
24fa627f2f Added hash-mode: BestCrypt v4 Volume Encryption 2025-04-27 20:57:43 +02:00
Gabriele Gristina
af6afc06ea add test unit for 20730 (sha256(sha256($pass.$salt))) 2025-04-26 13:15:28 +02:00
Gabriele Gristina
12bc11482b add test unit for 33300 (HMAC-BLAKE2s-256) 2025-04-26 13:07:08 +02:00
jsteube
32853374b9 Fix some file modes 2023-09-18 07:19:23 +00:00
Jens Steube
42f2286d16
Merge pull request #3742 from hans-vh/kremlin
Add support for Kremlin Encrypt (-m 32700)
2023-09-08 15:28:20 +02:00
Jens Steube
cc9ed0e24b
Merge pull request #3845 from philsmd/26610_verify_fix
verify test fix for -m 26610 = MetaMask Wallet (short)
2023-09-05 08:19:08 +02:00
Jens Steube
4d31e4d6ce
Merge pull request #3846 from philsmd/31900_verify_fix
verify test fix for -m 31900 = MetaMask Mobile Wallet
2023-09-04 15:31:33 +02:00
Jens Steube
8a3fa5c7d9
Merge pull request #3847 from philsmd/32100_verify_fix
verify fix for -m 32100=Kerberos 5,etype 17,AS-REP
2023-09-03 20:18:42 +02:00
Jens Steube
0dcd2a757b
Merge pull request #3848 from philsmd/32200_verify_fix
verify fix for -m 32200=Kerberos 5, etype 18, AS-REP
2023-09-02 20:00:25 +02:00
Jens Steube
9842041dd4
Merge pull request #3849 from philsmd/tests_module_deps
unit tests Crypt::Digest::BLAKE2s_256 dependency
2023-09-01 20:56:51 +02:00
red
61944481b9
Update m31900.pm
adapt mode's unit-test for longer CT sections
2023-08-29 21:50:12 +02:00
red
2cc49d2e87
Update metamask2hashcat.py
increase CT-length
2023-08-29 21:43:11 +02:00
Jens Steube
c2de4961a3
Merge pull request #3843 from philsmd/30700_verify_fix
verify test fix for -m 30700 = Anope IRC Services
2023-08-29 13:45:46 +02:00
Jens Steube
5752ad9ab6
Merge pull request #3842 from philsmd/3730_verify_fix
verify test fix for -m 3730 = md5($s1.uc(md5($s2.$p)))
2023-08-28 11:05:24 +02:00
Jens Steube
20682e55b1
Merge pull request #3841 from philsmd/6800_verify_fix
verify test fix for -m 6800 = LastPass sniffed
2023-08-26 22:06:08 +02:00
philsmd
212a7f3c6e
unit tests update perl module dependencies 2023-08-19 12:13:11 +02:00
philsmd
d462e61e55
verify fix for -m 32200=Kerberos 5,etype 18,AS-REP 2023-08-19 12:09:59 +02:00
philsmd
5b6eecd253
verify fix for -m 32100=Kerberos 5,etype 17,AS-REP 2023-08-19 12:05:49 +02:00
philsmd
b2fc157624
verify test fix for -m 31900 = MetaMask Mobile Wallet 2023-08-19 12:00:29 +02:00
philsmd
dd77925cdd
verify test fix for -m 2661- = MetaMask Wallet (short) 2023-08-19 11:54:49 +02:00