per dictionary rules, more dictionaries
#1
Essentially what I'm looking for is the ability to apply rules to dictionaries BEFORE they are combined in a combination/hybrid attack.

Something like this:

PHP Code:
hashcat-cli64 -a 1 test.hash dict1.dic dict2.dic -r1 rules\best64.rule -r1 rules\T0XlC.rule -r2 passwordspro.rule -r rules\lc.rule 

where -r1 only applies to dict1, -r2 only applies to dict2, and both are done "pre" join.

-r applies to post-joined outcome as normal

Ideally as above you'd be able to stack rules in combination as you do now with normal rules.

Finally, the ability to have more than two dictionaries (and thus -r3, -r4, etc...) would be extremely valuable, although perhaps I should have created this as a second feature request Smile.

I realize that achieving the same effect of the above can be done by creating new dictionaries with rules applied and combining them, but the space requirements can quickly become unreasonable.

Having the freedom to do this stuff on the fly would be hugely freeing and allow people to spend more time cracking and less time getting ready to crack.
#2
Too much.
CPU can't handle all this. And even if it does, it would require one ugly code.
#3
Hi pragmatic

Wow, that's a brutal request ! Big Grin

I'm not sure if that is possible but it is an interesting idea.
#4
FYI, combination in CPU's hashcat accepts as many dicts as you like. It works separately on each dict in the line (Combining it to itself).
#5
(09-17-2012, 07:02 PM)Hash-IT Wrote: Hi pragmatic

Wow, that's a brutal request ! Big Grin

I'm not sure if that is possible but it is an interesting idea.

Yeah, I knew it wouldn't be easy, but man would it be sweet. I will understand if its deemed unreasonable, just thought I'd throw out my ideal state and see how far from reality it is. Smile
#6
(09-17-2012, 07:09 PM)pragmatic Wrote: Yeah, I knew it wouldn't be easy, but man would it be sweet. I will understand if its deemed unreasonable, just thought I'd throw out my ideal state and see how far from reality it is. Smile

Ha ha ! Big Grin Thinking like that will get you a long way on this forum ! Smile

I have no idea if the following would work at all but just something for you to try or think about. I wonder if you could pipe hashcat (1 dictionary and rules) to hashcat-plus (second dictionary and rules) ?

I could be completely wrong about this so please don't get too hopeful !
#7
Wink 
(09-17-2012, 06:59 PM)M@LIK Wrote: Too much.
CPU can't handle all this. And even if it does, it would require one ugly code.

It seems like it should be possible as long as people are reasonable about the sizes of the dictionaries they use. Obviously exponential growth like this gets big fast so you'd have to be thoughtful about it.

My initial thought was using dictionaries like this:

hashcat-cli64 -a 1 test.hash top1000.dic joiners90.dic top1000.dic -r1 best64.rule -r2 joiners.rule -r2 leetspeak.rule -r3 best64.rule

Where joiners is a list of the top 90 conjunctions/prepositions and joiners-inconsistent.rule is something like:

PHP Code:
:
^ $ 
^- $-
^
_ $_
^! $!
^@ $@
^
# $#
^$ $$
^% $%
^^ $^
^& $&
^* $* 

Even using two rules for joiners90.dic like this should finish in reasonable time for a fast cipher and a reasonable system.

That said, I understand I can get there from here by expanding wordlists with rule processing and then combining them (assuming I have the space available to do that), I just wanted to explore the concept because I think having this kind of on-the-fly freedom would be very powerful.

Anyway, I'll shut up now Smile, I've put forward my idea and I understand if it doesn't fit in with where the project is currently going.

Besides, if I continue to spout on about ideals I'll be forced to change my nick.