1
0
mirror of https://github.com/hashcat/hashcat.git synced 2025-08-01 19:38:26 +00:00
Commit Graph

31 Commits

Author SHA1 Message Date
Jens Steube
e6ed9f5050 Revert to manually unrolled SHA256/224/512/384 transform() steps
This affects the inner core of nearly all kernels and thus impacts
almost all hash modes. The only functional change is that we now
manually unroll the individual steps of the transform() functions,
saving a small amount of constant memory.

In most cases, JIT compilers would likely detect the unused constant
buffer and remove it automatically, but this makes it explicit.

Tested on newer NVIDIA devices: no speed change observed.
Tested on older NVIDIA devices: visible speed increase.
Tested on AMD devices: visible speed increase across all tested GPUs.

Not yet tested: CPUs, Intel iGPUs, Intel dGPUs.
2025-07-21 16:18:26 +02:00
Jens Steube
15ada5124e Further simplified the use of inc_hash_scrypt.cl without any speed regression, and updated all affected plugin kernels. Use m08900-pure.cl as a template.
Updated kernel declarations from "KERNEL_FQ void HC_ATTR_SEQ" to "KERNEL_FQ KERNEL_FA void". Please update your custom plugin kernels accordingly.
Added spilling size as a factor in calculating usable memory per device. This is based on undocumented variables and may not be 100% accurate, but it works well in practice.
Added a compiler hint to scrypt-based kernels indicating the guaranteed maximum thread count per kernel invocation.
Removed redundant kernel code 29800, as it is identical to 27700, and updated the plugin.
2025-06-21 17:41:26 +02:00
Jens Steube
4e0a728f8f Add HC_ATTR_SEQ as a workaround, since HIP no longer
supports compiler option --gpu-max-threads-per-block
2025-06-12 09:17:02 +02:00
Jens Steube
be75e4b4ea Rename STR() to M2S() to avoid future collisions and move from kernel source to command line parameter 2022-02-07 09:57:08 +01:00
Gabriele Gristina
9d36245d51 Kernels: Set the default Address Space Qualifier for any pointer, refactored / updated KERN_ATTR macros and rc4 cipher functions, in order to support Apple Metal runtime 2022-02-04 19:54:00 +01:00
Gabriele Gristina
2e4a136758 Refactored standard kernel includes in order to support Apple Metal runtime, updated backend, test units and status code 2022-01-18 22:52:14 +01:00
Jens Steube
0abdcb1ae5 Rename GID_MAX to GID_CNT to avoid naming conflict with existing macro 2022-01-04 22:57:26 +01:00
Jens Steube
668d2179cd Kernels: Refactored standard kernel declaration to use a structure holding u32/u64 attributes to reduce the number of attributes 2022-01-04 18:07:18 +01:00
Jens Steube
45e65dd05a Backport more ROCm based optimizations to HIP 2021-07-15 23:34:27 +02:00
Jens Steube
a22f8149fc
Merge branch 'HIP' into hip 2021-07-10 21:34:09 +02:00
reger-men
ea7b74389f First draft HIP Version 2021-07-09 03:50:40 +00:00
Jens Steube
04d5e5a119 New Attack-Mode: Association Attack. Like JtR's single mode. Very early
stage. See hashcat Forum for detailed writeup.
2020-09-29 15:56:32 +02:00
Jens Steube
fa9d073f9a Manually unroll sha2 hashes 2019-05-11 23:15:58 +02:00
Jens Steube
89119bf24a Add missing inc_platform.h include 2019-04-26 13:59:43 +02:00
jsteube
7c6970dbdd Remove hard-coded static keyword from OpenCL kernels 2019-04-13 18:46:19 +02:00
Jens Steube
0fb3b3c83e Declare internal functions in OpenCL kernels as static 2019-03-26 11:03:25 +01:00
jsteube
e80b1838e8 Rename some functions in inc_common.cl to avoid conflicts with bitops.c 2019-03-23 22:15:38 +01:00
jsteube
adeeaee84a Replace __kernel, __constant, __global and __local qualifiers with macro for better control 2019-03-22 22:27:58 +01:00
jsteube
c9d60c079f Prepare OpenCL kernels for non-static compilation 2019-03-22 15:16:25 +01:00
jsteube
7d4bea41a0 Get rid of OpenCL/inc_hash_constants.h and OpenCL/inc_hash_functions.cl 2019-03-21 23:00:38 +01:00
Jens Steube
64dfd40113 Give the compiler a hint for automatic optimizations based on password length 2018-11-20 15:44:24 +01:00
Jens Steube
6d39fb1feb Make all kernel parameter macro helper a function 2018-11-16 14:17:01 +01:00
R. Yushaev
5de004103a Replace kernel parameter lists with macros
Substitute long parameter lists in ~2900 kernel function declarations
with macros. This cleans up the code, reduces probability of copy-paste
errors and highlights the differences between kernel functions. Also
reduces the size of the OpenCL folder by ~3 MB.
2018-11-16 11:44:33 +01:00
Jens Steube
02a2495349 Switched array pointer types in function declarations in order to be compatible with OpenCL 2.0 2018-07-22 11:47:42 +02:00
jsteube
e4e1c1d515 We can't mix inline functions with static constants 2018-02-07 14:16:27 +01:00
jsteube
3e08750900 OpenCL Kernels: Add general function declaration keyword (static inline) 2018-02-06 19:12:24 +01:00
jsteube
53f3da9f63 OpenCL Kernels: Use static declaraction for uXXa variables used in __constant space 2018-01-18 23:19:31 +01:00
jsteube
1aa76eac15 Refactor use of __constant to match up with the user selected attack mode 2017-08-25 17:52:55 +02:00
jsteube
1d04de3a8e Limit kernel-loops in straight-mode to 256, therefore allow rules to be stored in constant memory 2017-08-23 12:43:59 +02:00
jsteube
319799bbbf Switch the datatypes of the variables responsible for work-item count and work-item size from u32 to u64 2017-08-19 16:39:22 +02:00
jsteube
fbea72ebd6 Renamed default kernels to optimized kernels
Renamed pure kernels to default kernels
Replaced long option --length-limit-disable with --optimized-kernel-enable
Replaced short option -L with -O
Set --optimized-kernel-enable to unset by default
2017-07-18 13:23:42 +02:00