|
Message-ID: <554E452E.6010902@gmail.com> Date: Sat, 09 May 2015 19:34:38 +0200 From: Marek Wrzosek <marek.wrzosek@...il.com> To: john-users@...ts.openwall.com Subject: Re: bleeding-jumbo - How case and alpha options of regex mode suppose to work? W dniu 08.05.2015 o 23:13, Marek Wrzosek pisze: > Hi > > How case and alpha options suppose to work? > In standalone regex mode command line: > ./john --regex=case="pass" --stdout > will print: > case=pass > To achieve what I wanted, I had to run something like this: > ./john --regex="(?i:pass)" --stdout > and output is: > pass > Pass > PAss > pAss > pASs > PASs > PaSs > paSs > paSS > PaSS > PASS > pASS > pAsS > PAsS > PasS > pasS > > As expected. But with wordlist or stdin mode these options work > differently, e.g.: > $ echo "pass"|./john --stdin --regex=case=alpha:case="\0" --stdout > buf=[pP][aA][sS][sS] > pass > Pass > pAss > PAss > paSs > PaSs > pASs > PASs > pasS > PasS > pAsS > PAsS > paSS > PaSS > pASS > PASS > 16p 0:00:00:00 0.00% 88.88p/s PASS > > but without =case option: > $ echo "pass"|./john --stdin --regex=alpha:case="\0" --stdout > buf=pass > pass > 1p 0:00:00:00 0.00% 4.166p/s pass > > the same is with: > $ echo "pass"|./john --stdin --regex=case="\0" --stdout > pass > 1p 0:00:00:00 0.00% 4.545p/s pass > > =alpha option for leet, leet2 and leet3 parameters is working as > expected, but need =case option to work with leet2_case and leet3_case > alphabets. With leet+c =alpha option does not need =case option. And of > course there is no leet_case alphabet in regex_alphabets.conf file. > > Maybe someone should revise README.librexgen file. > Undocumented - it's a bug, documented it'll be a feature ;-) > > Bests > There is another "trick" with librexgen enabled JtR. The combination of case and alpha options with something more than "\0" will cause this: $ echo "pass"|./john --stdin --regex=case=alpha:case="\0b" --stdout buf=[pP][aA][sS][sS] error: syntax error, unexpected $end, expecting T_END_CLASS Error, invalid regex expression. John exiting now base_word=pass Regex= [pP][aA][sS][sSb You need to add ] between \0 and your string. $ echo "pass"|./john --stdin --regex=case=alpha:case="\0]b" --stdout buf=[pP][aA][sS][sS] passb Passb pAssb PAssb paSsb PaSsb pASsb PASsb pasSb PasSb pAsSb PAsSb paSSb PaSSb pASSb PASSb 16p 0:00:00:00 0.00% 100.0p/s PASSb Strange thing is that "\0" and "\0]" are equivalents - there are no errors. The strangest things happen when you add something more complicated than simple string before \0: $ echo "pass"|./john --stdin --regex=case=alpha:case="(?i:r|d|t|f)\0" --stdout buf=[pP][aA][sS][sS] rpass Rpass dpass Dpass tpass Tpass fpass Fpass Pass dPass DPass tPass TPass fPass FPass pAss dpAss DpAss tpAss TpAss fpAss FpAss PAss dPAss DPAss tPAss TPAss fPAss FPAss paSs dpaSs DpaSs tpaSs TpaSs fpaSs FpaSs PaSs dPaSs DPaSs tPaSs TPaSs fPaSs FPaSs pASs dpASs DpASs tpASs TpASs fpASs FpASs PASs dPASs DPASs tPASs TPASs fPASs FPASs pasS dpasS DpasS tpasS TpasS fpasS FpasS PasS dPasS DPasS tPasS TPasS fPasS FPasS pAsS dpAsS DpAsS tpAsS TpAsS fpAsS FpAsS PAsS dPAsS DPAsS tPAsS TPAsS fPAsS FPAsS paSS dpaSS DpaSS tpaSS TpaSS fpaSS FpaSS PaSS dPaSS DPaSS tPaSS TPaSS fPaSS FPaSS pASS dpASS DpASS tpASS TpASS fpASS FpASS PASS dPASS DPASS tPASS TPASS fPASS FPASS 113p 0:00:00:00 0.00% 664.7p/s FPASS The first string (r in this example) is outputed only for the first combination of piped string, for every next combination the first string is empty. -- Marek Wrzosek marek.wrzosek@...il.com
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.