PrinceProcessor
#1
I have an older WPA2 hccap file with a known xkcd-style password. For sake of discussion, let's say password is barnrabbitstampfork. If I manually create .txt file with said password and run -a 0, cudaHashcat64.bin finds it fine.  

If I create a dictionary file with only:

barn
rabbit
stamp
fork

#./pp64.bin < dictionary.txt | grep ^barnrabbit
barnrabbit
barnrabbitbarn
barnrabbitfork
barnrabbitstamp
barnrabbitrabbit

It doesn't generate the barnrabbitstampfork combination.  I'm missing something, but don't know what.  Is there a length limitation?
#2
There is indeed a max length for princeprocessor.

https://github.com/hashcat/princeprocess...c/pp.c#L32

You'll need to modify the source, increase PW_MAX to at least 20 (in your case), and recompile.
~
#3
I am not sure prince processor is actually what you want. Checkout hashcat-utils, you may have some better luck there. Look at the combinators and combipow first. That's likely to get you closer to what you want.
#4
If we assume that the four words are Diceware-style, and truly chosen at random from a list, then for a four-word passphrase, princeprocessor would properly try "barnbarnbarnbarn', etc, but IIRC combipow will not.  Also, IIRC combipow is limited to a very short wordlist (like 64 words or something?). And getting the combinators to do four words is non-trivial. So I think recompiled princeprocessor is a pretty good fit here.

And you'll want to use "--elem-cnt-min=4" and "--elem-cnt-max=4" parameters to confine pp64 to exactly four words.

(And actually, if I had my druthers, if princeprocessor could be updated to accept a larger PW_MAX as a cmdline switch (even by significantly multiplying the size of the binary, by having multiple chunks of code, each optimized for a given PW_MAX), that would be cool, and make princeprocessor more suitable out of the box for this purpose)
~
#5
(05-23-2018, 04:27 PM)royce Wrote: There is indeed a max length for princeprocessor.

https://github.com/hashcat/princeprocess...c/pp.c#L32

You'll need to modify the source, increase PW_MAX to at least 20 (in your case), and recompile.


Worked like a champ.  Now time to go do some benchmarks with varying wordlists we use.  Thanks for the quick response.
#6
YW. Make sure that PW_MAX is 4x the length of your longest word. Enjoy!
~
#7
(05-23-2018, 05:20 PM)royce Wrote: YW. Make sure that PW_MAX is 4x the length of your longest word. Enjoy!

Will do.  What is the significance of 4x the longest word though?
#8
Assuming a dictionary whose longest word length is (for example) 12, and a four-word passphrase, then the maximum length of the entire passphrase is 12 x 4 = 48.
~