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

9793 Commits

Author SHA1 Message Date
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
Jens Steube
0a8793fe71
Merge pull request #4247 from Banaanhangwagen/master
Create cachedata2hashcat.py
2025-06-10 09:22:55 +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
Jens Steube
8143839d99
Merge pull request #4241 from matrix/update_gitignore
add .so/.dll from bridges directory in .gitignore
2025-06-09 13:35:53 +02:00
Jens Steube
c3ac9810c8
Merge pull request #4244 from matrix/fix_pythonBridge_cygwin
fix DEFAULT_SOURCE_FILENAME with CYGWIN
2025-06-09 13:29:52 +02:00
Jens Steube
c87a87f992 Improvements to SCRYPT autotuning strategy
General:

The logic for calculating the SCRYPT workload has been moved
from module_extra_buffer_size() to module_extra_tuningdb_block().
Previously, this function just returned values from a static
tuning file. Now, it actually computes tuning values on the fly
based on the device's resources and SCRYPT parameters. This
was always possible, it just wasn't used that way until now.

After running the calculation, the calculated kernel_accel value
is injected into the tuning database as if it had come from a
file. The tmto value is stored internally.

Users can still override kernel-threads, kernel-accel, and
scrypt-tmto via the command line or via tuningdb file.

module_extra_tuningdb_block():

This is now where kernel_accel and tmto are automatically
calculated.

The logic for accel and tmto is now separated and more
flexible. Whether the user is using defaults, tuningdb entries, or
manual command line overrides, the code logic will try to make
smart choices based on what's actually available on the device.

First, it tries to find a kernel_accel value that fits into
available memory. It starts with a base value and simulates
tmto=1 or 2 (which is typical good on GPU).

It also leaves room for other buffers (like pws[], tmps[], etc.).
If the result is close to the actual processor count,
it gets clamped.

This value is then added to the tuning database, so hashcat can pick
it up during startup.

Once that's set, it derives tmto using available memory, thread
count, and the actual SCRYPT parameters.

module_extra_buffer_size():

This function now just returns the size of the SCRYPT B[] buffer,
based on the tmto that was already calculated.

kernel_threads:

Defaults are now set to 32 threads in most cases. On AMD GPUs,
64 threads might give a slight performance bump, but 32 is more
consistent and reliable.

For very memory-heavy algorithms (like Ethereum Wallet), it
scales down the thread count.

Here's a rough reference for other SCRYPT-based modes:

- 64 MiB: 16 threads
- 256 MiB: 4 threads

Tuning files:

All built-in tuningdb entries have been removed, because they
shouldn’t be needed anymore. But you can still add custom entries
if needed. There’s even a commented-out example in the tuningdb
file for mode 22700.

Free memory handling:

Getting the actual amount of free GPU memory is critical for
this to work right. Unfortunately, none of the common GPGPU APIs
give reliable numbers. We now query low-level interfaces like
SYSFS (AMD) and NVML (NVIDIA). Support for those APIs is in
place already, except for ADL, which still needs to be added.

Because of this, hwmon support (which handles those low-level
queries) can no longer be disabled.
2025-06-09 11:02:34 +02:00
Jens Steube
c7d96b40e9
Merge pull request #4246 from matrix/MSONLINEACCOUNT
Added hash-mode: Microsoft Online Account (PBKDF2-HMAC-SHA256 + AES256)
2025-06-08 23:06:33 +02:00
Gabriele Gristina
86c8323ae2 Added hash-mode: Microsoft Online Account (PBKDF2-HMAC-SHA256 + AES256) 2025-06-08 21:39:29 +02:00
Gabriele Gristina
839ea7c2c4 fix for CYGWIN also on bridge_python_generic_hash_sp.c 2025-06-08 18:09:18 +02:00
Gabriele Gristina
ae2c0f2a31 show warning on single-threaded mode also with CYGWIN 2025-06-08 18:06:03 +02:00
Gabriele Gristina
c2dfc5f007 fix DEFAULT_SOURCE_FILENAME with CYGWIN 2025-06-08 17:29:05 +02:00
Gabriele Gristina
a06cf1bf7d update BUILD_CYGWIN: add python3.12 to dependencies 2025-06-08 17:08:11 +02:00
Gabriele Gristina
14db95aabd update BUILD_MSYS2: add python3 to dependencies 2025-06-08 14:10:22 +02:00
Jens Steube
ed6e967425 Add experimental SCRYPT N-parameter auto-discovery
Remove existing tuningdb entries due to salsa_r() core
refactor. Update tuningdb engine to prefer file entries,
when available, over automatic discovery.

Improve memory-free detection per device, default
--backend-device-keepfree is now set to 0.

Old brute-force OpenCL behavior can be restored using
--backend-device-keepfree 100.
2025-06-08 07:32:32 +02:00
Jens Steube
6b29911431
Merge pull request #4240 from matrix/hip_cuda_device_available_memory
OpenCL Backend: added workaround to set device_available_memory from CUDA/HIP alias device
2025-06-08 07:28:44 +02:00
Gabriele Gristina
48d405d9aa add .so/.dll from bridges directory in .gitignore 2025-06-07 22:52:11 +02:00
Gabriele Gristina
12f1fe56aa OpenCL Backend: added workaround to set device_available_memory from CUDA/HIP alias device 2025-06-07 20:22:01 +02:00
Jens Steube
2af580b448
Merge pull request #4238 from matrix/update_BUILD.md
Update BUILD.md
2025-06-07 18:47:42 +02:00
Jens Steube
547f06caab
Merge pull request #4239 from matrix/metal_processors_workaround
Metal Backend: added workaround to set the true Processor value in Metal devices on Apple Intel
2025-06-07 18:41:04 +02:00
Gabriele Gristina
378abf6957 Metal Backend: added workaround to set the true Processor value in Metal devices on Apple Intel 2025-06-07 17:52:34 +02:00
Gabriele Gristina
27d6816e09
Update BUILD.md
graphic improvement
2025-06-07 13:21:31 +02:00
Gabriele Gristina
92360868e9
Update BUILD.md
Updated build procedure
2025-06-07 12:20:25 +02:00
Jens Steube
5dd91af03d
Merge pull request #4237 from matrix/salsa_r_metal
fix salsa_r() for Apple Metal
2025-06-07 06:43:38 +02:00
Gabriele Gristina
23ab78f333 fix salsa_r() for Apple Metal 2025-06-07 02:29:44 +02:00
Jens Steube
c231b2ec5c Refactored salsa_r() core code in all SCRYPT kernels
Fantastic results on AMD GPUs via HIP
Small improvements on NV GPUs as well
2025-06-06 21:49:49 +02:00
Jens Steube
d5934f9e3d - Fix memory leak in python bridge
- Fix Python header validation in Makefile
- Improve some tunings
2025-06-05 21:15:49 +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
c8d81016ca Fix compile error on apple silicon 2025-06-04 10:41:24 +02:00
Jens Steube
d60658102b Added option --backend-devices-keepfree to configure X percentage of device memory available to keep free 2025-06-04 10:13:29 +02:00
Jens Steube
3d4901a60c - Add CPU SIMD detection at runtime, relevant for bridge plugins
- Update BUILD_WSL.md document, add preparation for python bridge
2025-06-04 10:09:44 +02:00
Jens Steube
ad38c92530
Merge pull request #4126 from codecuriously/asahi-fix
Fix RAM usage bug for Linux Apple Silicon #4125
2025-06-03 15:01:21 +02:00
Jens Steube
bf110ee10f
Merge branch 'master' into asahi-fix 2025-06-03 14:59:04 +02:00
Jens Steube
2962b9d52e - Improved strategy to detect pyenv managed python libraries
- Improved documents on python bridge
2025-06-03 07:10:50 +02:00
Jens Steube
e8052a004b - Replace naive 32 bit rotate with funnelshift on CUDA/HIP
- Replace V_ALIGNBIT_B32 with funnelshift on HIP
- Improve RC4 performance by preventing inlineing
- Fix leftover code in yescrypt-platform.c
- Update docs/hashcat-assimilation-bridge-development.md
- Only initialize hwmon on host for virtualized backends
- Improve SCRYPT tunings on AMD RX6900XT
2025-06-02 11:50:08 +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
1a49b6c81e The Assimilation Bridge (comprehensive python plugin documentation) 2025-06-01 08:40:26 +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
22c25b3ea1 Fix cross-compiler target in makefiles
Do not show timeout patch warnings in virtualized mode
2025-06-01 06:39:55 +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
aad670a543
Merge pull request #4228 from matrix/master
Added sse2neon to fix compile errors on macOS for custom hashcat codes on phc-winner-argon2
2025-05-31 09:10:46 +02:00
Jens Steube
c56199f06b Fix bridge_argon2id_reference.mk to compile on MSYS 2025-05-31 08:59:18 +02:00
Gabriele Gristina
70825ebac4 Added sse2neon to fix compile errors on macOS for custom hashcat codes on phc-winner-argon2 2025-05-30 21:57:05 +02:00
Jens Steube
dc50bdbc72 The Assimilation Bridge (Argon2id plugin -m 70000) 2025-05-30 11:21:40 +02:00
Gabriele Gristina
a9cbc975dc porting modules 33600, 33650, 33660 to v7 2025-05-30 08:04:29 +02:00
Gabriele Gristina
4788e6d869
Merge branch 'master' into makefile-clangIdentification 2025-05-30 07:58:19 +02:00
Jens Steube
b28fa54dc6 Add build Dockerfiles for binary compilation.
Compiles both Linux and Windows binaries.
Used to produce official releases for hashcat.net.
Includes Dockerfiles for Ubuntu 20.04 or Arch-based environments.
Supports optional user custom patches via docker/patches/.
2025-05-30 07:37:19 +02:00
Jens Steube
e811e8e1ae
Merge pull request #4225 from matrix/master
add -std=c++14 for UNRAR only on MacOS
2025-05-30 07:23:14 +02:00
Gabriele Gristina
daa41a0ab8 add -std=c++14 for UNRAR only on MacOS 2025-05-29 22:05:03 +02:00