How to increase the speed of 23800 mode?
#1
There are two issues: one is the slow cracking speed, and the other is the slow loading speed of the dictionary.

Runtime Environment:
OS: windows 10 22H2
Mem:  128G
Disk: 2T SSD
GPU:  4090D * 4
CUDA version: 12.4
NVIDIA driver version: 551.78
hashcat version: v6.2.6

command line: hashcat.exe -m 23800 -w 4 -s 0 -a 0 fb9cd8fb-2e33-4128-a25b-3d347716b85e.hash BaseLetterSpecial.dict
* BaseLetterSpecific.dict is a dictionary text of approximately 1.8 billion lines (filesize 20GB) that I randomly generated.

Before running this command, a benchmark test was conducted, and the overall speed was around 1000H/s; This speed is too slow.
Code:
hashcat (v6.2.6) starting in benchmark mode

Benchmarking uses hand-optimized kernel code by default.
You can use it in your cracking session by setting the -O option.
Note: Using optimized kernel code limits the maximum supported password length.
To disable the optimized kernel code in benchmark mode, use the -w option.

* Device #1: WARNING! Kernel exec timeout is not disabled.
            This may cause "CL_OUT_OF_RESOURCES" or related errors.
            To disable the timeout, see: https://hashcat.net/q/timeoutpatch
* Device #2: WARNING! Kernel exec timeout is not disabled.
            This may cause "CL_OUT_OF_RESOURCES" or related errors.
            To disable the timeout, see: https://hashcat.net/q/timeoutpatch
* Device #3: WARNING! Kernel exec timeout is not disabled.
            This may cause "CL_OUT_OF_RESOURCES" or related errors.
            To disable the timeout, see: https://hashcat.net/q/timeoutpatch
* Device #4: WARNING! Kernel exec timeout is not disabled.
            This may cause "CL_OUT_OF_RESOURCES" or related errors.
            To disable the timeout, see: https://hashcat.net/q/timeoutpatch
* Device #5: WARNING! Kernel exec timeout is not disabled.
            This may cause "CL_OUT_OF_RESOURCES" or related errors.
            To disable the timeout, see: https://hashcat.net/q/timeoutpatch
* Device #6: WARNING! Kernel exec timeout is not disabled.
            This may cause "CL_OUT_OF_RESOURCES" or related errors.
            To disable the timeout, see: https://hashcat.net/q/timeoutpatch
* Device #7: WARNING! Kernel exec timeout is not disabled.
            This may cause "CL_OUT_OF_RESOURCES" or related errors.
            To disable the timeout, see: https://hashcat.net/q/timeoutpatch
* Device #8: WARNING! Kernel exec timeout is not disabled.
            This may cause "CL_OUT_OF_RESOURCES" or related errors.
            To disable the timeout, see: https://hashcat.net/q/timeoutpatch
CUDA API (CUDA 12.4)
====================
* Device #1: NVIDIA GeForce RTX 4090 D, 23042/24563 MB, 114MCU
* Device #2: NVIDIA GeForce RTX 4090 D, 23042/24563 MB, 114MCU
* Device #3: NVIDIA GeForce RTX 4090 D, 23042/24563 MB, 114MCU
* Device #4: NVIDIA GeForce RTX 4090 D, 23042/24563 MB, 114MCU

OpenCL API (OpenCL 3.0 CUDA 12.4.89) - Platform #1 [NVIDIA Corporation]
=======================================================================
* Device #5: NVIDIA GeForce RTX 4090 D, skipped
* Device #6: NVIDIA GeForce RTX 4090 D, skipped
* Device #7: NVIDIA GeForce RTX 4090 D, skipped
* Device #8: NVIDIA GeForce RTX 4090 D, skipped

Benchmark relevant options:
===========================
* --optimized-kernel-enable

------------------------------------------------------------
* Hash-Mode 23800 (RAR3-p (Compressed)) [Iterations: 262144]
------------------------------------------------------------

Speed.#1.........:      303 H/s (12.34ms) @ Accel:8 Loops:16384 Thr:512 Vec:1
Speed.#2.........:      266 H/s (12.44ms) @ Accel:8 Loops:16384 Thr:512 Vec:1
Speed.#3.........:      265 H/s (12.56ms) @ Accel:8 Loops:16384 Thr:512 Vec:1
Speed.#4.........:      286 H/s (12.60ms) @ Accel:8 Loops:16384 Thr:512 Vec:1
Speed.#*.........:    1119 H/s

Started: Tue Dec 03 17:48:33 2024
Stopped: Tue Dec 03 17:52:23 2024

Seeing this speed, I tested the speed of another rar3 12500 mode and found that the speed was 1077kH/s

In addition to the cracking speed, the dictionary loading speed is also quite slow. When executing the aforementioned command, you can view through the status that approximately 9 million (0.5%) dictionary records are loaded each time, and each loading process takes around 1 hour.

Dear experts, please help me.
Reply
#2
Just look at this line

* Hash-Mode 23800 (RAR3-p (Compressed)) [Iterations: 262144]

the magical word here is Iterations, to check for one candidate the hashalgorithm needs to be calculated over 250k times

so in fact your "normal" speed for one iteration would be 300 * 262144  = 78.643.200 hashes per second but due to iterations its slows massivly down

there is nothing you can do about it

for faster loading, you could try splitting up your wordlist into smaller chunks, put them into one directory and feed this directory as input
Reply
#3
add the -S flag
Reply
#4
(Yesterday, 01:17 PM)Snoopy Wrote: Just look at this line

* Hash-Mode 23800 (RAR3-p (Compressed)) [Iterations: 262144]

the magical word here is Iterations, to check for one candidate the hashalgorithm needs to be calculated over 250k times

so in fact your "normal" speed for one iteration would be 300 * 262144  = 78.643.200 hashes per second but due to iterations its slows massivly down

there is nothing you can do about it

for faster loading, you could try splitting up your wordlist into smaller chunks, put them into one directory and feed this directory as input

I tried splitting the dictionary file into smaller files, each containing 200,000 lines. Loading each file takes approximately 1 minute, yet the actual GPU computation ran for less than 2 seconds.
Then I rented a machine equipped with 3080x4 GPUs, and it took less than 1 second for each dictionary to be loaded and for GPU computations to finish.
Reply
#5
(Yesterday, 01:18 PM)zamgold Wrote: add the -S flag

Hmm... After adding this option and running the command, it doesn't seem to increase the speed either.
Reply
#6
(Yesterday, 02:01 PM)zxc583700871 Wrote:
(Yesterday, 01:18 PM)zamgold Wrote: add the -S flag

Hmm... After adding this option and running the command, it doesn't seem to increase the speed either.

the -S flag is for bruteforce and rule based attacks (i think so), not plain dictionary
Reply