1
0
mirror of https://github.com/hashcat/hashcat.git synced 2025-07-24 15:38:47 +00:00
Commit Graph

46 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
Jens Steube
ed10e6a913 Autotune and Benchmark refactoring
This change affects three key areas, each improving autotuning:

- Autotune refactoring itself

The main autotune algorithm had become too complex to maintain and has
now been rewritten from scratch. The engine is now closer to the old
v6.0.0 version, using a much more straightforward approach.

Additionally, the backend is now informed when the autotune engine runs
its operations and runs an extra invisible kernel invocation. This
significantly improves runtime accuracy because the same caching
mechanisms which kick in normal cracking sessions now also apply during
autotuning. This leads to more consistent and reliable automatic
workload tuning.

- Benchmarking and '--speed-only' accuracy bugs fixed

Benchmark runtimes had become too short, especially since the default
benchmark mask changed from '?b?b?b?b?b?b?b' to '?a?a?a?a?a?a?a?a'. For
very fast hashes like NTLM, benchmarks often stopped immediately when
base words needed to be regenerated, producing highly inaccurate
results.

This issue also misled users tuning '-n' values, as manually
oversubscribing kernels could mask the problem, creating the impression
that increasing '-n' had a larger impact on performance than it truly
does. While '-n' still has an effect, it’s not as significant. With this
fix, users achieve the same speed without needing to tune '-n' manually.

The bug was fixed by enforcing a minimum benchmark runtime of 4 seconds,
regardless of kernel runtime or kernel type. This ensures more stable
and realistic benchmark results, but typically increasing the benchmark
duration by up to 4 seconds.

- Kernel-Threads set to 32 and plugin configuration cleanup

Some plugin configurations existed solely to work around the old
benchmarking bug and can now be removed. For example,
'OPTS_TYPE_MAXIMUM_THREADS' is no longer required and has been removed
from all plugins, although the parameter itself remains to avoid
breaking custom plugins.

Because increasing threads beyond 32 no longer offers meaningful
performance gains, the default is now capped at 32 (unless overridden
with '-T'). This simplifies GPU memory management. Currently, work-item
counts are indirectly limited by buffer sizes (e.g., 'pws_buf[]'), which
must not exceed 4 GiB (a hard-coded limit). This buffer size depends on
the product of 'kernel-accel', 'kernel-threads', and the device’s
compute units. By reducing the default threads from 1024 to 32, there is
now more space available for base words.
2025-06-22 20:17:52 +02:00
Jens Steube
ceb5ff5641 The Assimilation Bridge (Framework) 2025-05-29 15:38:13 +02:00
Gabriele Gristina
003579d21b Modules: Updated module_unstable_warning 2025-05-11 15:40:52 +02:00
Gabriele Gristina
2adf735e51 Fixed bug in input_tokenizer when TOKEN_ATTR_FIXED_LENGTH is used and refactor modules 2023-04-11 19:34:01 +02:00
Jens Steube
1f4d8dd0fd Remove OPTS_TYPE_MAXIMUM_THREADS flag where no longer required by AMD HIP jit compiler 2022-11-14 17:41:22 +01:00
Jens Steube
6aa3e0882d Mark some hash-modes for Apple Metal as unstable 2022-11-12 10:47:58 +01:00
philsmd
d9749e8799
change interface, add module_benchmark_charset () 2022-07-15 17:17:57 +02:00
Jens Steube
6fce6fb3ff Update all existing modules to use the stock module marker 2022-04-08 14:11:50 +02:00
Jens Steube
5015bc0d2e Module Parser: Renamed struct token_t to hc_token_t to avoid naming conflict with token_t on MacOS 2021-12-20 13:19:40 +01:00
Jens Steube
5b4ac09e91 User Options: Add new module function module_hash_decode_postprocess() to override hash specific configurations from command line 2021-11-28 13:58:27 +01:00
Jens Steube
21f91c5bb8 Module Optimizaters: Added OPTS_TYPE_MAXIMUM_THREADS to deactivate the else branch route in the section to find -T before compilation
Set the new flag based on some testings with RX6900XT
2021-11-13 17:27:06 +01:00
Jens Steube
01738fafa0 Deprecated Plugins: Add new module function module_deprecated_notice() to mark a plugin as deprecated and to return a free text user notice
Added option --deprecated-check-disable to enable deprecated plugins
2021-08-10 17:59:52 +02:00
Jens Steube
20a7b9f992 Tuning-Database: Add new module function module_extra_tuningdb_block() to extend hashcat.hctune content from a plugin
See src/modules/module_08900.c as an example
2021-08-01 16:25:37 +02:00
Jens Steube
c990e252d3 Added option --multiply-accel-disable (short: -M) to disable multiply the kernel-accel with the multiprocessor count automatism 2021-07-21 15:47:05 +02:00
Jens Steube
7faf6859d6 Backport hand-optimized compiler settings in modules from ROCM to HIP
Backport DECLSPEC settings from ROCM to HIP
2021-07-13 20:45:01 +02:00
Jens Steube
4535695e0a Update some module_unstable_warning() on macOS after the workaround that was added before 2021-07-07 10:36:52 +02:00
Jens Steube
bb402b784a Update module_unstable_warning for benchmark short selection on macOS for CPU and GPU; Allow use of GPU without --force testwise 2021-05-10 14:36:41 +02:00
Jens Steube
78a053800f Remove module_unstable_warning() entries for AMD (legacy) driver after workaround with zero check on context length is in use 2021-05-09 10:33:05 +00:00
Jens Steube
95489b0473 Update module_unstable_warning() for amdgpu-pro-20.50-1234664-ubuntu-20.04 (legacy) 2021-05-02 18:18:50 +00:00
Jens Steube
98aef2ae92 Module Structure: Add 3rd party library hook management functions. This also requires an update to all existing module_init() 2020-08-29 16:12:15 +02:00
Jens Steube
b9f6777f1b OpenCL Runtime: Add some unstable warnings for some SHA512 based algorithms on AMD GPU on macOS 2020-07-15 11:27:46 +02:00
Jens Steube
193aa77cdf Update unroll and unstable configuration for ROCM OpenCL runtime after unroll whitelisting change 2020-02-15 16:09:37 +01:00
Jens Steube
c90d83c3eb Prepare for UNROLL whitelisting 2020-02-15 12:44:12 +01:00
Jens Steube
d315f61414 Fix -m 1800 speed on ROCM 2019-11-24 08:50:31 +01:00
Jens Steube
f1632b933e Add support to configure hash-mode specific range of number of hashes supported 2019-05-19 14:46:05 +02:00
Jens Steube
aa8e000d31 Flag OPTS_TYPE_PREFERED_THREAD no longer needed 2019-05-11 14:22:44 +02:00
Jens Steube
a6bc1d3cc0 Experimental kernel-thread autotuner 2019-05-11 11:58:18 +02:00
Jens Steube
2b0f657564 Limit some modules to 64 threads in order to get additional L1 cache 2019-05-10 23:51:09 +02:00
jsteube
926e99811c Add some more NO_UNROLL to avoid module_unstable_warnings 2019-04-20 16:36:43 +02:00
jsteube
6d21c1633b Fix loop_step value in selftest.c, this also workarounds Trap 6 errors 2019-04-18 14:29:39 +02:00
jsteube
8008d65499 Allow -m 1800 in optimized mode on AMDGPU drivers 2019-04-04 22:06:12 +02:00
jsteube
b8d609ba16 WPA/WPA2 cracking: In the potfile, replace password with PMK in order to detect already cracked networks across all WPA modes 2019-04-02 11:24:22 +02:00
jsteube
c0a31b3239 Prepare potfile specific module_hash_decode and module_hash_encode hooks 2019-04-01 12:32:11 +02:00
jsteube
555bd84b4c Some module specific trap 6 markers 2019-03-10 15:33:25 +01:00
Jens Steube
cace799187 Move more no unrolling exceptions from inc_vendor.cl to specific modules 2019-03-07 18:57:04 +00:00
jsteube
dc9279c95c New Strategy: Instead of using volatile, mark the mode as unstable. Remove all volatiles 2019-03-03 19:18:56 +01:00
jsteube
88a051629c Support module specific JiT compiler build options 2019-03-02 11:12:13 +01:00
jsteube
a5336ceb72 Allocate always MAX_SALT * 2 bytes for temporary buffers going into generic_salt_encode() 2019-02-16 14:07:53 +01:00
jsteube
5ef0de45df Where generic_salt_decode() is used, the generic_salt_encode() should be used, too 2019-02-14 13:05:14 +01:00
jsteube
6f4b72bcd3 Rename parse_and_store_generic_salt to generic_salt_decode 2019-02-14 09:53:29 +01:00
jsteube
bab735b367 Get rid of hash_type variable. This hopefully reduces some confusion for new hashcat kernel developers 2019-02-12 16:02:27 +01:00
jsteube
62c660afe2 Add -m 14600 module 2019-02-02 11:11:27 +01:00
jsteube
78d2706038 Add -m 8900 module and module_extra_tmp_size() 2019-01-28 14:05:58 +01:00
jsteube
2bd55bca74 Add missing hook_salt buffer parameter to decoder/encoder function declaration 2019-01-25 11:14:04 +01:00
jsteube
fcebe9fadb Add module and unit test for hash-mode 1800 2019-01-23 15:05:22 +01:00