lakiw / pcfg_cracker

Probabilistic Context Free Grammar (PCFG) password guess generator
318 stars 71 forks source link

Please make possible to disable features #12

Open matlink opened 5 years ago

matlink commented 5 years ago

As a researcher and analyzer of your tool, I would like you to make it possible to easily disable each feature added since your original publication in 2009. For example:

lakiw commented 5 years ago

Thanks for opening that issue, and I apologize in advance since I'm currently attending Defcon/Blackhat so my ability to respond will be spotty over the course of this week. I'm going to address each feature independently:

1) There are currently two ways to disable Markov related tunings. The first is during the training session you can set the --coverage flag to be '1.0'. While the trainer will still extract OMEN ngrams, it won't include them in the actual grammar. The other way is to select --skip_brute when running the pcfg_guesser.py which will do the same thing but at runtime using a grammar that may or may not have OMEN included in it.

2) CorrectStaple optimization: I'll look into this. I'm hopeful it'll be fairly straightforward and I can include a flag in the trainer to disable this feature. By default it will be enabled.

3) Probability Queue optimization: Hah, I'm actually not doing this right now. Eventually I may want to add this back in, but for now I'm just letting the queue grow. It added a lot of complexity and I'd rather address that by switching to a different next algorithm when the probabilities of individual guesses gets low. When I add that "gear" feature (that's what I'm calling it), I do plan on allowing people to disable it and stick to a pure probability order guess generation if they want to.

4) Website/date/e-mail/date detection: I can look into providing a flag to disable these options.

5) L33t speek: When I finally get this working I can add a flag to disable it ;p

6) Prince support will be included in the trainer but it will have no impact on the generated grammar. Aka I'm just storing some of the intermediate values that are already being created in a way that a different program can create optimized PRINCE wordlists.

lakiw commented 5 years ago

Playing around with task lists so please excuse any spamming as I try to figure this out