Splitting work to pass through the integer overflow error
#1
Hello there!
I am trying to crack a hash with a mask attack. I use this mask: ?a?a?a?a?a?a?a?a?a?a.
The thing is that I get this error: Integer overflow detected in keyspace of mask. Don't worry, I know what this error is even though I'm a noob Big Grin
So since my mask is too huge, I thought I could resolve the problem by splitting the work. I did some research and found -s and -l options. I calculated the number of combinations given by my mask (95^10), and then divided it in five so the result is lower than 2^64. I tried to run my command with -s 0 and -l <the result of (95^10) divided by 5>. But I still get the same overflow error... I even tried to put a very low number to -l, like 100 by example.
I think hashcat just set the error if the mask is too huge, without taking into account that I splitted the work and that what I'm asking it to calculate is below 2^64. Is it possible to make hashcat take into account the work I actually ask it to do, instead of the overall work that I didn't split yet?
Hope you understood my problem, have a good day!
Reply
#2
You could manually split the mask into multiple runs (if you have the hardware to complete the task before the heat death of the universe) by say fixing the first char of the mask.
a?a?a?a?a?a?a?a?a?a
b?a?a?a?a?a?a?a?a?a
c?a?a?a?a?a?a?a?a?a
d?a?a?a?a?a?a?a?a?a
...
Reply
#3
Hashcat is stopping you because your mask, 95^10 is unbelievably high. A RTX 4090 with MD5 would take 4,222 days to exhaust this so there's just not really much point trying to run it lol. There are definitely ways, it's just futile to try
Reply
#4
Yes I know it would be very long to crack. But I'm pretty sure there are a lot of malicious hackers in the world who brute force longer passwords than that. I think they have access to a lot of computers at a time, and make them work together by dividing the work. But here it seems impossible to divide it.
What's the explanation technically? Why hashcat block because of the mask, whereas I don't want it to test every combinations but just a reasonable part?
Reply
#5
Because it's over 64 bits and Hashcat stores the keyspace as a 64-bit unsigned integer. Also, hackers don't have that much hardware. Very, very, very few companies in the world even have that much hardware. They just use wordlists and rules to crack significantly longer passwords, significantly quicker instead of bruteforcing every possible character
Reply
#6
But why does the keyspace have the size of the mask? Shouldn't it have the size of the -l option?
Reply
#7
(04-26-2024, 09:14 AM)Yixraie Wrote: But why does the keyspace have the size of the mask? Shouldn't it have the size of the -l option?

No because Hashcat still has to calculate with it. It's just a safety feature. The easiest way is to just have the final 2 characters be static, so you do:
?a?a...00
?a?a...01
?a?a...02
etc

but my advice that this will still take probably tens of years to exhaust still exists. Just because you *can* run it, doesn't mean you *should*
Reply
#8
Ok I see. Thank you !
Reply