#################################################################### # KoreLogic Custom John the Ripper Rules: #################################################################### # Use this rule with 2EVERYTHING.dic or 3EVERYTHING.dic [List.Rules:KoreLogicRulesPrependSeason] A0"[Ss$][uU][mM][mM][eE3][rR]" A0"[Ww][iI|][nN][tT+][eE3][rR]" A0"[Ff][aA][lL][lL]" A0"[Ss][pP][rR][iI][nN][gG]" A0"[Aa][uU][tT][uU][mM][nN]" # Use this rule with 2EVERYTHING.dic or 3EVERYTHING.dic [List.Rules:KoreLogicRulesAppendSeason] <* Az"[Ss$][uU][mM][mM][eE3][rR]" <* Az"[Ww][iI|][nN][tT+][eE3][rR]" <* Az"[Ff][aA][lL][lL]" <* Az"[Ss][pP][rR][iI][nN][gG]" <* Az"[Aa][uU][tT][uU][mM][nN]" [List.Rules:KoreLogicRulesPrependHello] A0"[hH][eE][lL][lL][oO0]" [List.Rules:KoreLogicRulesPrependYears] A0"20[0-1][0-9]" A0"19[3-9][0-9]" # Notice: Your wordlist should likely be all lowercase - or you are wasting work [List.Rules:KoreLogicRulesAppendYears] -[c:] \p[c:] Az"19[0-9][0-9]" <+ -[c:] \p[c:] Az"20[01][0-9]" <+ # Notice how we # 1) do caps first b/c they are more common in 'complex' environments # 2) Do !$@#%. first b/c they are the most common special chars [List.Rules:KoreLogicRulesAppendCurrentYearSpecial] -[c:] \p[c:] Az"201[0-9][!$@#%.]" <+ -[c:] \p[c:] Azq201[0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ [List.Rules:KoreLogicRulesAppend4Num] -[c:] \p[c:] Az"[0-9][0-9][0-9][0-9]" <+ [List.Rules:KoreLogicRulesAppend5Num] -[c:] \p[c:] Az"[0-9][0-9][0-9][0-9][0-9]" <+ [List.Rules:KoreLogicRulesAppend6Num] -[c:] \p[c:] Az"[0-9][0-9][0-9][0-9][0-9][0-9]" <+ [List.Rules:KoreLogicRulesAppendSpecial3num] -[c:] \p[c:] Az"[!$@#%.][0-9][0-9][0-9]" <+ -[c:] \p[c:] Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9][0-9]q <+ [List.Rules:KoreLogicRulesAppendSpecial4num] -[c:] \p[c:] Az"[!$@#%.][0-9][0-9][0-9][0-9]" <+ -[c:] \p[c:] Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9][0-9][0-9]q <+ [List.Rules:KoreLogicRulesPrependCAPCAPAppendSpecial] A0"[A-Z][A-Z]" <* $[!$@#%.] A0"[A-Z][A-Z]" <* $[^&()_+\-={}|[\]\\;'":,/<>?`~*] [List.Rules:KoreLogicRulesPrependNumNumAppendSpecial] -[c:] \p[c:] A0"[0-9][0-9]" <* $[!$@#%.] -[c:] \p[c:] A0"[0-9][0-9]" <* $[^&()_+\-={}|[\]\\;'":,/<>?`~*] [List.Rules:KoreLogicRulesPrependNumNum] -[c:] \p[c:] A0"[0-9][0-9]" [List.Rules:KoreLogicRulesPrependNumNumNum] -[c:] \p[c:] A0"[0-9][0-9][0-9]" [List.Rules:KoreLogicRulesPrependNumNumNumNum] -[c:] \p[c:] A0"[0-9][0-9][0-9][0-9]" [List.Rules:KoreLogicRulesPrependNumNumSpecial] -[c:] \p[c:] A0"[0-9][0-9][!$@#%.]" -[c:] \p[c:] A0q[0-9][0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q [List.Rules:KoreLogicRulesPrepend2NumbersAppend2Numbers] -[c:] \p[c:] A0"[0-9][0-9]" <- Az"[0-9][0-9]" [List.Rules:KoreLogicRulesPrependSpecialSpecial] -[c:] \p[c:] A0q[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q [List.Rules:KoreLogicRulesAppendSpecialNumberNumber] -[c:] \p[c:] Az"[!$@#%.][0-9][0-9]" <+ -[c:] \p[c:] Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9]q <+ [List.Rules:KoreLogicRulesAppendSpecialNumberNumberNumber] -[c:] \p[c:] Az"[!$@#%.][0-9][0-9][0-9]" <+ -[c:] \p[c:] Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9][0-9]q <+ [List.Rules:KoreLogicRulesPrependSpecialSpecialAppendNumber] -[c:] \p[c:] A0"[!$@#%.][!$@#%.]" <* $[0-9] -[c:] \p[c:] A0q[^&()_+\-={}|[\]\\;'":,/<>?`~*][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <* $[0-9] [List.Rules:KoreLogicRulesPrependSpecialSpecialAppendNumbersNumber] -[c:] \p[c:] A0"[!$@#%.][!$@#%.]" <- Az"[0-9][0-9]" -[c:] \p[c:] A0q[^&()_+\-={}|[\]\\;'":,/<>?`~*][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <- Az"[0-9][0-9]" [List.Rules:KoreLogicRulesPrependSpecialSpecialAppendNumbersNumberNumber] -[c:] \p[c:] A0"[!$@#%.][!$@#%.]" Az"[0-9][0-9][0-9]" <+ -[c:] \p[c:] A0q[^&()_+\-={}|[\]\\;'":,/<>?`~*][^&()_+\-={}|[\]\\;'":,/<>?`~*]q Az"[0-9][0-9][0-9]" <+ [List.Rules:KoreLogicRulesAppend2Letters] <- Az"[a-z][a-z]" -c <- Az"[A-Z][A-Z]" -c <- Az"[a-z][A-Z]" -c <- Az"[A-Z][a-z]" [List.Rules:KoreLogicRulesPrepend4NumAppendSpecial] -[c:] \p[c:] A0"[0-9][0-9][0-9][0-9]" <- $[!$@#%.] -[c:] \p[c:] A0"[0-9][0-9][0-9][0-9]" <- Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*]q [List.Rules:KoreLogicRulesAppend4NumSpecial] -[c:] \p[c:] Az"[0-9][0-9][0-9][0-9][!$@#%.]" <+ -[c:] \p[c:] Azq[0-9][0-9][0-9][0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ [List.Rules:KoreLogicRulesAppend3NumSpecial] -[c:] \p[c:] Az"[0-9][0-9][0-9][!$@#%.]" <+ -[c:] \p[c:] Azq[0-9][0-9][0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ [List.Rules:KoreLogicRulesAppend2NumSpecial] -[c:] \p[c:] Az"[0-9][0-9][!$@#%.]" <+ -[c:] \p[c:] Azq[0-9][0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ # Append numbers - but limit the total length. [List.Rules:KoreLogicRulesAddJustNumbers] -[c:] <* >1 \p[c:] $[0-9] -[c:] <* >1 \p[c:] ^[0-9] -[c:] <- >1 \p[c:] Az"[0-9][0-9]" -[c:] <- >1 \p[c:] A0"[0-9][0-9]" -[c:] >1 \p[c:] Az"[0-9][0-9][0-9]" <+ -[c:] >1 \p[c:] Az"[0-9][0-9][0-9][0-9]" <+ [List.Rules:KoreLogicRulesDevProdTestUAT] -\r[::cc] <* A\p\r[0l0l]"dev" \p\r[::TT]\p\r[::0l] -\r[::cc] <* A\p\r[0l0l]"uat" \p\r[::TT]\p\r[::0l] -\r[::cc] <* A\p\r[0l0l]"prod" \p\r[::TT]\p\r[::0l] -\r[::cc] <* A\p\r[0l0l]"test" \p\r[::TT]\p\r[::0l] [List.Rules:KoreLogicRulesPrependAndAppendSpecial] -[c:] <- \p[c:] ^[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] [List.Rules:KoreLogicRulesAppendJustNumbers] -[c:] <* \p[c:] $[0-9] -[c:] <- \p[c:] Az"[0-9][0-9]" -[c:] \p[c:] Az"[0-9][0-9][0-9]" <+ -[c:] \p[c:] Az"[0-9][0-9][0-9][0-9]" <+ [List.Rules:KoreLogicRulesAppendNumbers_and_Specials_Simple] # cap first letter then add a 0 2 6 9 ! * to the end -[c:] <* \p[c:] $[0-9!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] # cap first letter then add a special char - THEN a number !0 %9 !9 etc -[c:] <- \p[c:] Azq[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9]q # Cap the first letter - then add 0? 0! 5_ .. 9! ## add NUMBER then SPECIAL 1! .. 9? -[c:] <- \p[c:] Azq[0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q ## Add Number Number Special -[c:] \p[c:] Azq[0-9][0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ## Add Special Number Number -[c:] \p[c:] Azq[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9]q <+ # Add 100! ... 999! to the end -[c:] \p[c:] Azq[0-9][0-9][0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ [List.Rules:KoreLogicRulesAppendJustSpecials] -[c:] <* \p[c:] $[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] -[c:] <- \p[c:] Azq[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q [List.Rules:KoreLogicRulesMonthsFullPreface] -[:c] A0"\p[jJ]anuary" -[:c] A0"\p[fF]ebruary" -[:c] A0"\p[mM]arch" -[:c] A0"\p[aA]pril" -[:c] A0"\p[mM]ay" -[:c] A0"\p[jJ]uner" -[:c] A0"\p[jJ]uly" -[:c] A0"\p[aA]ugust" -[:c] A0"\p[sS]eptember" -[:c] A0"\p[oO]ctober" -[:c] A0"\p[nN]ovember" -[:c] A0"\p[dD]ecember" [List.Rules:KoreLogicRulesAddShortMonthsEverywhere] <* >\r[00123456789] A\p[z0-9]"[jJ][aA][nN]" <* >\r[00123456789] A\p[z0-9]"[fF][eE][bB]" <* >\r[00123456789] A\p[z0-9]"[mM][aA][rRyY]" <* >\r[00123456789] A\p[z0-9]"[aA][pP][rR]" <* >\r[00123456789] A\p[z0-9]"[jJ][uU][nNlL]" <* >\r[00123456789] A\p[z0-9]"[aA][uU][gG]" <* >\r[00123456789] A\p[z0-9]"[sS][eE][pP]" <* >\r[00123456789] A\p[z0-9]"[oO][cC][tT]" <* >\r[00123456789] A\p[z0-9]"[nN][oO][vV]" <* >\r[00123456789] A\p[z0-9]"[dD][eE][cC]" [List.Rules:KoreLogicRulesPrepend4LetterMonths] ## Preface each dictionary with Janu janu Febr febr -[:c] A0"\p[jJ]anu" -[:c] A0"\p[fF]ebr" -[:c] A0"\p[mM]arc" -[:c] A0"\p[aA]pr" -[:c] A0"\p[mM]ay" -[:c] A0"\p[jJ]une" -[:c] A0"\p[jJ]uly" -[:c] A0"\p[Aa]ugu" -[:c] A0"\p[sS]ept" -[:c] A0"\p[oO]cto" -[:c] A0"\p[nN]ove" -[:c] A0"\p[Dd]ece" # this will add the string '2010' at all places in the word: # USE this with a 4 or 5 char dictionary file with ALL characters # soo abcde will become # 2010abcde a2010bcde ab2010cde acd2010de abcd2010e abcde2010 [List.Rules:KoreLogicRulesAdd2010Everywhere] <* >\r[00123456789] A\p[z0-9]"201[0-9]" [List.Rules:KoreLogicRulesPrependDaysWeek] A0"[Mm][oO0][nN][dD][aA4@][yY]" A0"[Tt][uU][eE3][sS$][dD][aA4@][yY]" A0"[Ww][eE3][dD][nN][eE3][sS$][dD][aA4@][yY]" A0"[Tt][hH][uU][rR][sS$][dD][aA4@][yY]" A0"[Ff][rR][iI1!][dD][aA4@][yY]" A0"[Ss][aA4@][tT+][uU][rR][dD][aA4@][yY]" A0"[Ss][uU][nN][dD][aA4@][yY]" [List.Rules:KoreLogicRulesAdd1234_Everywhere] <* >\r[00123456789] A\p[z0-9]"1234" [List.Rules:KoreLogicRulesAppendMonthDay] -[:c] <* Az"\p[jJ]anuary" -[:c] Az"\p[jJ]anuary[0-9]" <+ -[:c] Az"\p[jJ]anuary[0-9][0-9]" <+ -[:c] <* Az"\p[fF]ebruary" -[:c] Az"\p[fF]ebruary[0-9]" <+ -[:c] Az"\p[fF]ebruary[0-9][0-9]" <+ -[:c] <* Az"\p[mM]arch" -[:c] Az"\p[mM]arch[0-9]" <+ -[:c] Az"\p[mM]arch[0-9][0-9]" <+ -[:c] <* Az"\p[aA]pril" -[:c] Az"\p[aA]pril[0-9]" <+ -[:c] Az"\p[aA]pril[0-9][0-9]" <+ -[:c] <* Az"\p[mM]ay" -[:c] Az"\p[mM]ay[0-9]" <+ -[:c] Az"\p[mM]ay[0-9][0-9]" <+ -[:c] <* Az"\p[jJ]une" -[:c] Az"\p[jJ]une[0-9]" <+ # There was a typo in Kore's original revision of this rule -[:c] Az"\p[jJ]une[0-9][0-9]" <+ -[:c] <* Az"\p[jJ]uly" -[:c] Az"\p[jJ]uly[0-9]" <+ -[:c] Az"\p[jJ]uly[0-9][0-9]" <+ -[:c] <* Az"\p[aA]ugust" -[:c] Az"\p[aA]ugust[0-9]" <+ -[:c] Az"\p[aA]ugust[0-9][0-9]" <+ -[:c] <* Az"\p[sS]eptember" -[:c] Az"\p[sS]eptember[0-9]" <+ # There was a typo in Kore's original revision of this rule -[:c] Az"\p[sS]eptember[0-9][0-9]" <+ -[:c] <* Az"\p[oO]ctober" -[:c] Az"\p[oO]ctober[0-9]" <+ -[:c] Az"\p[oO]ctober[0-9][0-9]" <+ -[:c] <* Az"\p[nN]ovember" -[:c] Az"\p[nN]ovember[0-9]" <+ -[:c] Az"\p[nN]ovember[0-9][0-9]" <+ -[:c] <* Az"\p[dD]ecember" -[:c] Az"\p[dD]ecember[0-9]" <+ -[:c] Az"\p[dD]ecember[0-9][0-9]" <+ [List.Rules:KoreLogicRulesAppendMonthCurrentYear] -[:c] <* Az"\p[jJ]an201[0-9]" -[:c] <* Az"\p[fF]eb201[0-9]" -[:c] <* Az"\p[mM]ar201[0-9]" -[:c] <* Az"\p[aA]pr201[0-9]" -[:c] <* Az"\p[mM]ay201[0-9]" -[:c] <* Az"\p[jJ]un201[0-9]" -[:c] <* Az"\p[jJ]ul201[0-9]" -[:c] <* Az"\p[Aa]ug201[0-9]" -[:c] <* Az"\p[sS]ep201[0-9]" -[:c] <* Az"\p[oO]ct201[0-9]" -[:c] <* Az"\p[nN]ov201[0-9]" -[:c] <* Az"\p[Dd]ec201[0-9]" [List.Rules:KoreLogicRulesReplaceNumbers2Special] /[1-90] s\0\p[!@#$%^&*()] /1 /[2-90] s1! s\0\p[@#$%^&*()] /2 /[3-90] s2@ s\0\p[#$%^&*()] /3 /[4-90] s3# s\0\p[$%^&*()] /4 /[5-90] s4$ s\0\p[%^&*()] /5 /[6-90] s5% s\0\p[^&*()] /6 /[7-90] s6^ s\0\p[&*()] /7 /[890] s7& s\0\p[*()] /8 /[90] s8* s\0\p[()] /9 /0 s9( s0) [List.Rules:KoreLogicRulesReplaceNumbers] /0 s0[1-9] /1 s1[02-9] /2 s2[013-9] /3 s3[0-24-9] /4 s4[0-35-9] /5 s5[0-46-9] /6 s6[0-57-9] /7 s7[0-68-9] /8 s8[0-79] /9 s9[0-8] # 10 lines above can be replaced with just one: # /[0-9] s\0[0-9] Q # but it's slower (generates, then rejects some duplicates). # This is a lamer/faster version of --rules:nt [List.Rules:KoreLogicRulesReplaceLettersCaps] -c /[a-z] s\0\p[A-Z] [List.Rules:KoreLogicRulesAddDotCom] -[c:] <- \p[c:] Az".com" -[c:] <- \p[c:] Az".net" -[c:] <- \p[c:] Az".org" [List.Rules:KoreLogicRulesAppendCap-Num_or_Special-Twice] -[c:] \p[c:] Az"[A-Z][0-9][0-9]" <+ -[c:] \p[c:] Azq[A-Z][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9]q <+ -[c:] \p[c:] Azq[A-Z][0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ -[c:] \p[c:] Azq[A-Z][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ [List.Rules:KoreLogicRulesAppendSpecialLowerLower] -[c:] \p[c:] AzQ[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][a-z][a-z]Q <+ [List.Rules:KoreLogicRulesAppendJustSpecials3Times] -[c:] \p[c:] Az"[!$@#%.][!$@#%.][!$@#%.]" <+ -[c:] \p[c:] Azq[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ [List.Rules:KoreLogicRulesPrependJustSpecials] -[c:] \p[c:] ^[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] -[c:] \p[c:] A0q[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q [List.Rules:KoreLogicRulesAppend1_AddSpecialEverywhere] -[c:] >4 <- \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $1 -[c:] >[5-8] <- \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $1 [List.Rules:KoreLogicRulesPrependNumNum_AppendNumSpecial] -[c:] \p[c:] A0"[0-9][0-9]" Azq[0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ [List.Rules:KoreLogicRulesAppendNum_AddSpecialEverywhere] # This should probably use $[02-9] since we try $1 in # KoreLogicRulesAppend1_AddSpecialEverywhere -[c:] >4 <- \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $[0-9] -[c:] >[5-8] <- \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $[0-9] [List.Rules:KoreLogicRulesAppendNumNum_AddSpecialEverywhere] -[c:] >4 \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"[0-9][0-9]" <+ -[c:] >[5-8] \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"[0-9][0-9]" <+ [List.Rules:KoreLogicRulesAppendNumNumNum_AddSpecialEverywhere] -[c:] >4 \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"[0-9][0-9][0-9]" <+ -[c:] >[5-8] \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"[0-9][0-9][0-9]" <+ [List.Rules:KoreLogicRulesAppendYears_AddSpecialEverywhere] -[c:] >4 \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"19[4-9][0-9]" <+ -[c:] >4 \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"20[0-1][0-9]" <+ -[c:] >[5-8] \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"19[4-9][0-9]" <+ -[c:] >[5-8] \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"20[0-1][0-9]" <+ # This rule needs work actually --- you have to 'sort -u' its output rick # /a = reject if it doesnt have an 'a' # the [:c] does waste some effort - and generate dupes. This is wasteful, # but I want to keep it in b/c the original crack/JtR rules use it. [List.Rules:KoreLogicRulesL33t] -[:c] /\r[aaAAbBeEiiiIIIllll] s\0\r\p[@44@88331!|1!|17|!] \p1[:M] \p1[:c] \p1[:Q] # The following line differs from Kore's erroneous 4 lines: -[:c] /\r[LLLL] s\0\r\p[17|!] \p1[:M] \p1[:c] \p1[:Q] #/Lsl1[:c] #/Lsl7[:c] #/Lsl|[:c] #/Lsl![:c] -[:c] /\r[oOssSStT1111003344557788] s\0\r\p[00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Full set (same as above, but on one line): #-[:c] /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT1111003344557788] s\0\r\p[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Double substitutions start here. # Compared to Kore's, we check for both chars first, then replace both. # This produces different results from Kore's, which would replace all # instances of the first char before checking for the second. # Kore's behavior may be restored by moving "sa[@4]" to be right after "/a" # on the line below, and ditto for further lines. -[:c] /a /\r[AAbBeEiiiIIIllllLLLLoOssSStT1111003344557788] sa[@4] s\2\r\p2[4@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Kore had these (probably unintentionally, so we don't duplicate them): #/asa4/4s4a[:c] #/asa4/4s4A[:c] -[:c] /A /\r[aabBeEiiiIIIllllLLLLoOssSStT1111003344557788] sA4 s\0\r\p[@488331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Kore also had these, but (intentionally?) missed sb8 on this set (after sA4) #/AsA4/4s4a[:c] #/AsA4/4s4A[:c] -[:c] /b /\r[aaAABeEiiiIIIllllLLLLoOssSStT1111003344557788] sb8 s\0\r\p[@44@8331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /B /\r[aaAAbeEiiiIIIllllLLLLoOssSStT1111003344557788] sB8 s\0\r\p[@44@8331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /e /\r[aaAAbBEiiiIIIllllLLLLoOssSStT1111003344557788] se3 s\0\r\p[@44@8831!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /E /\r[aaAAbBeiiiIIIllllLLLLoOssSStT1111003344557788] sE3 s\0\r\p[@44@8831!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /i /\r[aaAAbBeEIIIllllLLLLoOssSStT1111003344557788] si[1!|] s\2\r\p2[@44@88331!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /I /\r[aaAAbBeEiiillllLLLLoOssSStT1111003344557788] sI[1!|] s\2\r\p2[@44@88331!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Kore's rules only included sl[17|], but not sl! -[:c] /l /\r[aaAAbBeEiiiIIILLLLoOssSStT1111003344557788] sl[17|!] s\2\r\p2[@44@88331|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # All "/L" rules (171 lines) were buggy -[:c] /L /\r[aaAAbBeEiiiIIIlllloOssSStT1111003344557788] sl[17|!] s\2\r\p2[@44@88331|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /o /\r[aaAAbBeEiiiIIIllllLLLLOssSStT1111003344557788] so0 s\0\r\p[@44@88331!|1!|17|!17|!0$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /O /\r[aaAAbBeEiiiIIIllllLLLLossSStT1111003344557788] sO0 s\0\r\p[@44@88331!|1!|17|!17|!0$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /s /\r[aaAAbBeEiiiIIIllllLLLLoOSStT1111003344557788] ss[$5] s\2\r\p2[@44@88331!|1!|17|!17|!00$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /S /\r[aaAAbBeEiiiIIIllllLLLLoOsstT1111003344557788] sS[$5] s\2\r\p2[@44@88331!|1!|17|!17|!00$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /t /\r[aaAAbBeEiiiIIIllllLLLLoOssSST1111003344557788] st+ s\0\r\p[@44@88331!|1!|17|!17|!00$5$5+!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /T /\r[aaAAbBeEiiiIIIllllLLLLoOssSSt1111003344557788] sT+ s\0\r\p[@44@88331!|1!|17|!17|!00$5$5+!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /1 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT003344557788] s1[!iI|] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /0 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11113344557788] s0[oO] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|eEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /3 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110044557788] s3[eE] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] #-[:c] /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT1111003344557788] s\0\r\p[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /4 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110033557788] s4[aA] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /5 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110033447788] s5[sS] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /7 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110033445588] s7[lL] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /8 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110033445577] s8[bB] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlL] \p1[:M] \p1[:c] \p1[:Q] # These are some popular triple/quad l33t rules -[:c] /a /e /[los] sa4 se3 s\0\p[10$] \p1[:M] \p1[:c] \p1[:Q] -[:c] /[ae] /l /[os] s\2\p2[43] sl1 s\3\p3[0$] \p1[:M] \p1[:c] \p1[:Q] -[:c] /[ae] /o /s s\2\p2[43] so0 ss$ \p1[:M] \p1[:c] \p1[:Q] -[:c] /l /o /s sl1 so0 ss$ \p1[:M] \p1[:c] \p1[:Q] -[:c] /a /e /l /[os] sa4 se3 sl1 s\0\p[0$] \p1[:M] \p1[:c] \p1[:Q] -[:c] /a /[el] /o /s sa4 s\0\p[31] so0 ss$ \p1[:M] \p1[:c] \p1[:Q] -[:c] /e /l /o /s se3 sl1 so0 ss$ \p1[:M] \p1[:c] \p1[:Q] -[:c] /a /e /l /o /s sa4 se3 sl1 so0 ss$ \p1[:M] \p1[:c] \p1[:Q] [List.Rules:KoreLogicRulesReplaceSpecial2Special] # Kore's rules were missing "*" /! s![@#$%^&*()\-=_+\\|;:'",./?><] /@ s@[!#$%^&*()\-=_+\\|;:'",./?><] /# s#[!@$%^&*()\-=_+\\|;:'",./?><] /$ s$[!@#%^&*()\-=_+\\|;:'",./?><] /% s%[!@#$^&*()\-=_+\\|;:'",./?><] /^ s^[!@#$%&*()\-=_+\\|;:'",./?><] /& s&[!@#$%^*()\-=_+\\|;:'",./?><] /( s([!@#$%^&*)\-=_+\\|;:'",./?><] /) s([!@#$%^&*(\-=_+\\|;:'",./?><] # Kore's ruleset erroneously had: #/-s-- /- s-[!@#$%^&*()=_+\\|;:'",./?><] /= s=[!@#$%^&*()\-_+\\|;:'",./?><] /_ s_[!@#$%^&*()\-=+\\|;:'",./?><] /+ s+[!@#$%^&*()\-=_\\|;:'",./?><] # Kore's rules did not replace backslash /\\ s\\[!@#$%^&*()\-=_+|;:'",./?><] /| s|[!@#$%^&*()\-=_+\\;:'",./?><] /; s;[!@#$%^&*()\-=_+\\|:'",./?><] /: s:[!@#$%^&*()\-=_+\\|;'",./?><] /' s'[!@#$%^&*()\-=_+\\|;:",./?><] /" s"[!@#$%^&*()\-=_+\\|;:',./?><] /, s,[!@#$%^&*()\-=_+\\|;:'"./?><] /. s.[!@#$%^&*()\-=_+\\|;:'",/?><] // s/[!@#$%^&*()\-=_+\\|;:'",.?><] /> s>[!@#$%^&*()\-=_+\\|;:'",./?<] /< s<[!@#$%^&*()\-=_+\\|;:'",./?>] [List.Rules:KoreLogicRulesReplaceLetters] /a sa[b-z] /b sb[ac-z] /c sc[abd-z] /d sd[a-ce-z] /e se[a-df-z] /f sf[a-eg-z] /g sg[a-fh-z] /h sh[a-gi-z] /i si[a-hj-z] /j sj[a-ik-z] /k sk[a-jl-z] /l sl[a-km-z] /m sm[a-ln-z] /n sn[a-mo-z] /o so[a-np-z] /p sp[a-oq-z] /q sq[a-pr-z] /r sr[a-qs-z] /s ss[a-rt-z] /t st[a-su-z] /u su[a-tv-z] /v sv[a-uw-z] /w sw[a-vx-z] /x sx[a-wyz] /y sy[a-xz] # Kore's ruleset was truncated after "/zszr" /z sz[a-y] -c /[a-z] s\0[A-Z] #################################################################### [List.Rules:KoreLogicRules] ;[List.Rules:KoreLogicRulesPrependNumNum] -[c:] \p[c:] A0"[0-9][0-9]" ;[List.Rules:KoreLogicRulesPrependYears] A0"20[0-1][0-9]" A0"19[3-9][0-9]" # Notice: Your wordlist should likely be all lowercase - or you are wasting work ;[List.Rules:KoreLogicRulesAppendYears] -[c:] \p[c:] Az"19[0-9][0-9]" <+ -[c:] \p[c:] Az"20[01][0-9]" <+ ;[List.Rules:KoreLogicRulesPrependNumNumNum] -[c:] \p[c:] A0"[0-9][0-9][0-9]" ;[List.Rules:KoreLogicRulesMonthsFullPreface] -[:c] A0"\p[jJ]anuary" -[:c] A0"\p[fF]ebruary" -[:c] A0"\p[mM]arch" -[:c] A0"\p[aA]pril" -[:c] A0"\p[mM]ay" -[:c] A0"\p[jJ]uner" -[:c] A0"\p[jJ]uly" -[:c] A0"\p[aA]ugust" -[:c] A0"\p[sS]eptember" -[:c] A0"\p[oO]ctober" -[:c] A0"\p[nN]ovember" -[:c] A0"\p[dD]ecember" ;[List.Rules:KoreLogicRulesPrepend4LetterMonths] ## Preface each dictionary with Janu janu Febr febr -[:c] A0"\p[jJ]anu" -[:c] A0"\p[fF]ebr" -[:c] A0"\p[mM]arc" -[:c] A0"\p[aA]pr" -[:c] A0"\p[mM]ay" -[:c] A0"\p[jJ]une" -[:c] A0"\p[jJ]uly" -[:c] A0"\p[Aa]ugu" -[:c] A0"\p[sS]ept" -[:c] A0"\p[oO]cto" -[:c] A0"\p[nN]ove" -[:c] A0"\p[Dd]ece" # Use this rule with 2EVERYTHING.dic or 3EVERYTHING.dic ;[List.Rules:KoreLogicRulesPrependSeason] A0"[Ss$][uU][mM][mM][eE3][rR]" A0"[Ww][iI|][nN][tT+][eE3][rR]" A0"[Ff][aA][lL][lL]" A0"[Ss][pP][rR][iI][nN][gG]" A0"[Aa][uU][tT][uU][mM][nN]" # Use this rule with 2EVERYTHING.dic or 3EVERYTHING.dic ;[List.Rules:KoreLogicRulesAppendSeason] <* Az"[Ss$][uU][mM][mM][eE3][rR]" <* Az"[Ww][iI|][nN][tT+][eE3][rR]" <* Az"[Ff][aA][lL][lL]" <* Az"[Ss][pP][rR][iI][nN][gG]" <* Az"[Aa][uU][tT][uU][mM][nN]" ;[List.Rules:KoreLogicRulesPrependHello] A0"[hH][eE][lL][lL][oO0]" # Notice how we # 1) do caps first b/c they are more common in 'complex' environments # 2) Do !$@#%. first b/c they are the most common special chars ;[List.Rules:KoreLogicRulesAppendCurrentYearSpecial] -[c:] \p[c:] Az"201[0-9][!$@#%.]" <+ -[c:] \p[c:] Azq201[0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ;[List.Rules:KoreLogicRulesPrependSpecialSpecial] -[c:] \p[c:] A0q[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q ;[List.Rules:KoreLogicRulesAppend2Letters] <- Az"[a-z][a-z]" -c <- Az"[A-Z][A-Z]" -c <- Az"[a-z][A-Z]" -c <- Az"[A-Z][a-z]" # Append numbers - but limit the total length. ;[List.Rules:KoreLogicRulesAddJustNumbers] -[c:] <* >1 \p[c:] $[0-9] -[c:] <* >1 \p[c:] ^[0-9] -[c:] <- >1 \p[c:] Az"[0-9][0-9]" -[c:] <- >1 \p[c:] A0"[0-9][0-9]" -[c:] >1 \p[c:] Az"[0-9][0-9][0-9]" <+ # Redundant with KoreLogicRulesAppend4Num ;-[c:] >1 \p[c:] Az"[0-9][0-9][0-9][0-9]" <+ ;[List.Rules:KoreLogicRulesDevProdTestUAT] -\r[::cc] <* A\p\r[0l0l]"dev" \p\r[::TT]\p\r[::0l] -\r[::cc] <* A\p\r[0l0l]"uat" \p\r[::TT]\p\r[::0l] -\r[::cc] <* A\p\r[0l0l]"prod" \p\r[::TT]\p\r[::0l] -\r[::cc] <* A\p\r[0l0l]"test" \p\r[::TT]\p\r[::0l] ;[List.Rules:KoreLogicRulesPrependAndAppendSpecial] -[c:] <- \p[c:] ^[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] # Redundant with KoreLogicRulesAddJustNumbers and KoreLogicRulesAppend4Num ;[List.Rules:KoreLogicRulesAppendJustNumbers] ;-[c:] <* \p[c:] $[0-9] ;-[c:] <- \p[c:] Az"[0-9][0-9]" ;-[c:] \p[c:] Az"[0-9][0-9][0-9]" <+ ;-[c:] \p[c:] Az"[0-9][0-9][0-9][0-9]" <+ ;[List.Rules:KoreLogicRulesAppendNumbers_and_Specials_Simple] # cap first letter then add a 0 2 6 9 ! * to the end -[c:] <* \p[c:] $[0-9!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] # cap first letter then add a special char - THEN a number !0 %9 !9 etc -[c:] <- \p[c:] Azq[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9]q # Cap the first letter - then add 0? 0! 5_ .. 9! ## add NUMBER then SPECIAL 1! .. 9? -[c:] <- \p[c:] Azq[0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q ## Add Number Number Special ;-[c:] \p[c:] Azq[0-9][0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ## Add Special Number Number ;-[c:] \p[c:] Azq[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9]q <+ # Add 100! ... 999! to the end ;-[c:] \p[c:] Azq[0-9][0-9][0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ;[List.Rules:KoreLogicRulesAppendJustSpecials] -[c:] <* \p[c:] $[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] -[c:] <- \p[c:] Azq[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q ;[List.Rules:KoreLogicRulesAddShortMonthsEverywhere] <* >\r[00123456789] A\p[z0-9]"[jJ][aA][nN]" <* >\r[00123456789] A\p[z0-9]"[fF][eE][bB]" <* >\r[00123456789] A\p[z0-9]"[mM][aA][rRyY]" <* >\r[00123456789] A\p[z0-9]"[aA][pP][rR]" <* >\r[00123456789] A\p[z0-9]"[jJ][uU][nNlL]" <* >\r[00123456789] A\p[z0-9]"[aA][uU][gG]" <* >\r[00123456789] A\p[z0-9]"[sS][eE][pP]" <* >\r[00123456789] A\p[z0-9]"[oO][cC][tT]" <* >\r[00123456789] A\p[z0-9]"[nN][oO][vV]" <* >\r[00123456789] A\p[z0-9]"[dD][eE][cC]" # this will add the string '2010' at all places in the word: # USE this with a 4 or 5 char dictionary file with ALL characters # soo abcde will become # 2010abcde a2010bcde ab2010cde acd2010de abcd2010e abcde2010 ;[List.Rules:KoreLogicRulesAdd2010Everywhere] <* >\r[00123456789] A\p[z0-9]"201[0-9]" ;[List.Rules:KoreLogicRulesAdd1234_Everywhere] <* >\r[00123456789] A\p[z0-9]"1234" ;[List.Rules:KoreLogicRulesAppendMonthDay] -[:c] <* Az"\p[jJ]anuary" -[:c] Az"\p[jJ]anuary[0-9]" <+ -[:c] Az"\p[jJ]anuary[0-9][0-9]" <+ -[:c] <* Az"\p[fF]ebruary" -[:c] Az"\p[fF]ebruary[0-9]" <+ -[:c] Az"\p[fF]ebruary[0-9][0-9]" <+ -[:c] <* Az"\p[mM]arch" -[:c] Az"\p[mM]arch[0-9]" <+ -[:c] Az"\p[mM]arch[0-9][0-9]" <+ -[:c] <* Az"\p[aA]pril" -[:c] Az"\p[aA]pril[0-9]" <+ -[:c] Az"\p[aA]pril[0-9][0-9]" <+ -[:c] <* Az"\p[mM]ay" -[:c] Az"\p[mM]ay[0-9]" <+ -[:c] Az"\p[mM]ay[0-9][0-9]" <+ -[:c] <* Az"\p[jJ]une" -[:c] Az"\p[jJ]une[0-9]" <+ # There was a typo in Kore's original revision of this rule -[:c] Az"\p[jJ]une[0-9][0-9]" <+ -[:c] <* Az"\p[jJ]uly" -[:c] Az"\p[jJ]uly[0-9]" <+ -[:c] Az"\p[jJ]uly[0-9][0-9]" <+ -[:c] <* Az"\p[aA]ugust" -[:c] Az"\p[aA]ugust[0-9]" <+ -[:c] Az"\p[aA]ugust[0-9][0-9]" <+ -[:c] <* Az"\p[sS]eptember" -[:c] Az"\p[sS]eptember[0-9]" <+ # There was a typo in Kore's original revision of this rule -[:c] Az"\p[sS]eptember[0-9][0-9]" <+ -[:c] <* Az"\p[oO]ctober" -[:c] Az"\p[oO]ctober[0-9]" <+ -[:c] Az"\p[oO]ctober[0-9][0-9]" <+ -[:c] <* Az"\p[nN]ovember" -[:c] Az"\p[nN]ovember[0-9]" <+ -[:c] Az"\p[nN]ovember[0-9][0-9]" <+ -[:c] <* Az"\p[dD]ecember" -[:c] Az"\p[dD]ecember[0-9]" <+ -[:c] Az"\p[dD]ecember[0-9][0-9]" <+ ;[List.Rules:KoreLogicRulesAppendMonthCurrentYear] -[:c] <* Az"\p[jJ]an201[0-9]" -[:c] <* Az"\p[fF]eb201[0-9]" -[:c] <* Az"\p[mM]ar201[0-9]" -[:c] <* Az"\p[aA]pr201[0-9]" -[:c] <* Az"\p[mM]ay201[0-9]" -[:c] <* Az"\p[jJ]un201[0-9]" -[:c] <* Az"\p[jJ]ul201[0-9]" -[:c] <* Az"\p[Aa]ug201[0-9]" -[:c] <* Az"\p[sS]ep201[0-9]" -[:c] <* Az"\p[oO]ct201[0-9]" -[:c] <* Az"\p[nN]ov201[0-9]" -[:c] <* Az"\p[Dd]ec201[0-9]" ;[List.Rules:KoreLogicRulesReplaceNumbers2Special] /[1-90] s\0\p[!@#$%^&*()] /1 /[2-90] s1! s\0\p[@#$%^&*()] /2 /[3-90] s2@ s\0\p[#$%^&*()] /3 /[4-90] s3# s\0\p[$%^&*()] /4 /[5-90] s4$ s\0\p[%^&*()] /5 /[6-90] s5% s\0\p[^&*()] /6 /[7-90] s6^ s\0\p[&*()] /7 /[890] s7& s\0\p[*()] /8 /[90] s8* s\0\p[()] /9 /0 s9( s0) ;[List.Rules:KoreLogicRulesReplaceNumbers] /0 s0[1-9] /1 s1[02-9] /2 s2[013-9] /3 s3[0-24-9] /4 s4[0-35-9] /5 s5[0-46-9] /6 s6[0-57-9] /7 s7[0-68-9] /8 s8[0-79] /9 s9[0-8] # 10 lines above can be replaced with just one: # /[0-9] s\0[0-9] Q # but it's slower (generates, then rejects some duplicates). # This is a lamer/faster version of --rules:nt ;[List.Rules:KoreLogicRulesReplaceLettersCaps] -c /[a-z] s\0\p[A-Z] ;[List.Rules:KoreLogicRulesAddDotCom] -[c:] <- \p[c:] Az".com" -[c:] <- \p[c:] Az".net" -[c:] <- \p[c:] Az".org" ;[List.Rules:KoreLogicRulesPrependJustSpecials] -[c:] \p[c:] ^[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] -[c:] \p[c:] A0q[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q ;[List.Rules:KoreLogicRulesAppend1_AddSpecialEverywhere] -[c:] >4 <- \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $1 -[c:] >[5-8] <- \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $1 ;[List.Rules:KoreLogicRulesAppendNum_AddSpecialEverywhere] # This should probably use $[02-9] since we try $1 in # KoreLogicRulesAppend1_AddSpecialEverywhere -[c:] >4 <- \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $[0-9] -[c:] >[5-8] <- \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] $[0-9] ;[List.Rules:KoreLogicRulesAppendNumNum_AddSpecialEverywhere] -[c:] >4 \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"[0-9][0-9]" <+ -[c:] >[5-8] \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"[0-9][0-9]" <+ ;[List.Rules:KoreLogicRulesAppendNumNumNum_AddSpecialEverywhere] -[c:] >4 \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"[0-9][0-9][0-9]" <+ -[c:] >[5-8] \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"[0-9][0-9][0-9]" <+ ;[List.Rules:KoreLogicRulesAppendYears_AddSpecialEverywhere] -[c:] >4 \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"19[4-9][0-9]" <+ -[c:] >4 \p[c:] i[0-5][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"20[0-1][0-9]" <+ -[c:] >[5-8] \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"19[4-9][0-9]" <+ -[c:] >[5-8] \p1[c:] i\p2[6-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*] Az"20[0-1][0-9]" <+ # This rule needs work actually --- you have to 'sort -u' its output rick # /a = reject if it doesnt have an 'a' # the [:c] does waste some effort - and generate dupes. This is wasteful, # but I want to keep it in b/c the original crack/JtR rules use it. ;[List.Rules:KoreLogicRulesL33t] -[:c] /\r[aaAAbBeEiiiIIIllll] s\0\r\p[@44@88331!|1!|17|!] \p1[:M] \p1[:c] \p1[:Q] # The following line differs from Kore's erroneous 4 lines: -[:c] /\r[LLLL] s\0\r\p[17|!] \p1[:M] \p1[:c] \p1[:Q] #/Lsl1[:c] #/Lsl7[:c] #/Lsl|[:c] #/Lsl![:c] -[:c] /\r[oOssSStT1111003344557788] s\0\r\p[00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Full set (same as above, but on one line): #-[:c] /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT1111003344557788] s\0\r\p[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Double substitutions start here. # Compared to Kore's, we check for both chars first, then replace both. # This produces different results from Kore's, which would replace all # instances of the first char before checking for the second. # Kore's behavior may be restored by moving "sa[@4]" to be right after "/a" # on the line below, and ditto for further lines. -[:c] /a /\r[AAbBeEiiiIIIllllLLLLoOssSStT1111003344557788] sa[@4] s\2\r\p2[4@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Kore had these (probably unintentionally, so we don't duplicate them): #/asa4/4s4a[:c] #/asa4/4s4A[:c] -[:c] /A /\r[aabBeEiiiIIIllllLLLLoOssSStT1111003344557788] sA4 s\0\r\p[@488331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Kore also had these, but (intentionally?) missed sb8 on this set (after sA4) #/AsA4/4s4a[:c] #/AsA4/4s4A[:c] -[:c] /b /\r[aaAABeEiiiIIIllllLLLLoOssSStT1111003344557788] sb8 s\0\r\p[@44@8331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /B /\r[aaAAbeEiiiIIIllllLLLLoOssSStT1111003344557788] sB8 s\0\r\p[@44@8331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /e /\r[aaAAbBEiiiIIIllllLLLLoOssSStT1111003344557788] se3 s\0\r\p[@44@8831!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /E /\r[aaAAbBeiiiIIIllllLLLLoOssSStT1111003344557788] sE3 s\0\r\p[@44@8831!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /i /\r[aaAAbBeEIIIllllLLLLoOssSStT1111003344557788] si[1!|] s\2\r\p2[@44@88331!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /I /\r[aaAAbBeEiiillllLLLLoOssSStT1111003344557788] sI[1!|] s\2\r\p2[@44@88331!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # Kore's rules only included sl[17|], but not sl! -[:c] /l /\r[aaAAbBeEiiiIIILLLLoOssSStT1111003344557788] sl[17|!] s\2\r\p2[@44@88331|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] # All "/L" rules (171 lines) were buggy -[:c] /L /\r[aaAAbBeEiiiIIIlllloOssSStT1111003344557788] sl[17|!] s\2\r\p2[@44@88331|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /o /\r[aaAAbBeEiiiIIIllllLLLLOssSStT1111003344557788] so0 s\0\r\p[@44@88331!|1!|17|!17|!0$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /O /\r[aaAAbBeEiiiIIIllllLLLLossSStT1111003344557788] sO0 s\0\r\p[@44@88331!|1!|17|!17|!0$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /s /\r[aaAAbBeEiiiIIIllllLLLLoOSStT1111003344557788] ss[$5] s\2\r\p2[@44@88331!|1!|17|!17|!00$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /S /\r[aaAAbBeEiiiIIIllllLLLLoOsstT1111003344557788] sS[$5] s\2\r\p2[@44@88331!|1!|17|!17|!00$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /t /\r[aaAAbBeEiiiIIIllllLLLLoOssSST1111003344557788] st+ s\0\r\p[@44@88331!|1!|17|!17|!00$5$5+!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /T /\r[aaAAbBeEiiiIIIllllLLLLoOssSSt1111003344557788] sT+ s\0\r\p[@44@88331!|1!|17|!17|!00$5$5+!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /1 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT003344557788] s1[!iI|] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /0 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11113344557788] s0[oO] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|eEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /3 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110044557788] s3[eE] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] #-[:c] /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT1111003344557788] s\0\r\p[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /4 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110033557788] s4[aA] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEsSlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /5 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110033447788] s5[sS] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAlLbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /7 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110033445588] s7[lL] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSbB] \p1[:M] \p1[:c] \p1[:Q] -[:c] /8 /\r[aaAAbBeEiiiIIIllllLLLLoOssSStT11110033445577] s8[bB] s\2\r\p2[@44@88331!|1!|17|!17|!00$5$5++!iI|oOeEaAsSlL] \p1[:M] \p1[:c] \p1[:Q] # These are some popular triple/quad l33t rules -[:c] /a /e /[los] sa4 se3 s\0\p[10$] \p1[:M] \p1[:c] \p1[:Q] -[:c] /[ae] /l /[os] s\2\p2[43] sl1 s\3\p3[0$] \p1[:M] \p1[:c] \p1[:Q] -[:c] /[ae] /o /s s\2\p2[43] so0 ss$ \p1[:M] \p1[:c] \p1[:Q] -[:c] /l /o /s sl1 so0 ss$ \p1[:M] \p1[:c] \p1[:Q] -[:c] /a /e /l /[os] sa4 se3 sl1 s\0\p[0$] \p1[:M] \p1[:c] \p1[:Q] -[:c] /a /[el] /o /s sa4 s\0\p[31] so0 ss$ \p1[:M] \p1[:c] \p1[:Q] -[:c] /e /l /o /s se3 sl1 so0 ss$ \p1[:M] \p1[:c] \p1[:Q] -[:c] /a /e /l /o /s sa4 se3 sl1 so0 ss$ \p1[:M] \p1[:c] \p1[:Q] ;[List.Rules:KoreLogicRulesReplaceSpecial2Special] # Kore's rules were missing "*" /! s![@#$%^&*()\-=_+\\|;:'",./?><] /@ s@[!#$%^&*()\-=_+\\|;:'",./?><] /# s#[!@$%^&*()\-=_+\\|;:'",./?><] /$ s$[!@#%^&*()\-=_+\\|;:'",./?><] /% s%[!@#$^&*()\-=_+\\|;:'",./?><] /^ s^[!@#$%&*()\-=_+\\|;:'",./?><] /& s&[!@#$%^*()\-=_+\\|;:'",./?><] /( s([!@#$%^&*)\-=_+\\|;:'",./?><] /) s([!@#$%^&*(\-=_+\\|;:'",./?><] # Kore's ruleset erroneously had: #/-s-- /- s-[!@#$%^&*()=_+\\|;:'",./?><] /= s=[!@#$%^&*()\-_+\\|;:'",./?><] /_ s_[!@#$%^&*()\-=+\\|;:'",./?><] /+ s+[!@#$%^&*()\-=_\\|;:'",./?><] # Kore's rules did not replace backslash /\\ s\\[!@#$%^&*()\-=_+|;:'",./?><] /| s|[!@#$%^&*()\-=_+\\;:'",./?><] /; s;[!@#$%^&*()\-=_+\\|:'",./?><] /: s:[!@#$%^&*()\-=_+\\|;'",./?><] /' s'[!@#$%^&*()\-=_+\\|;:",./?><] /" s"[!@#$%^&*()\-=_+\\|;:',./?><] /, s,[!@#$%^&*()\-=_+\\|;:'"./?><] /. s.[!@#$%^&*()\-=_+\\|;:'",/?><] // s/[!@#$%^&*()\-=_+\\|;:'",.?><] /> s>[!@#$%^&*()\-=_+\\|;:'",./?<] /< s<[!@#$%^&*()\-=_+\\|;:'",./?>] ;[List.Rules:KoreLogicRulesReplaceLetters] /a sa[b-z] /b sb[ac-z] /c sc[abd-z] /d sd[a-ce-z] /e se[a-df-z] /f sf[a-eg-z] /g sg[a-fh-z] /h sh[a-gi-z] /i si[a-hj-z] /j sj[a-ik-z] /k sk[a-jl-z] /l sl[a-km-z] /m sm[a-ln-z] /n sn[a-mo-z] /o so[a-np-z] /p sp[a-oq-z] /q sq[a-pr-z] /r sr[a-qs-z] /s ss[a-rt-z] /t st[a-su-z] /u su[a-tv-z] /v sv[a-uw-z] /w sw[a-vx-z] /x sx[a-wyz] /y sy[a-xz] # Kore's ruleset was truncated after "/zszr" /z sz[a-y] -c /[a-z] s\0[A-Z] ;[List.Rules:KoreLogicRulesAppendSpecialNumberNumber] -[c:] \p[c:] Az"[!$@#%.][0-9][0-9]" <+ -[c:] \p[c:] Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9]q <+ ;[List.Rules:KoreLogicRulesPrependNumNumAppendSpecial] -[c:] \p[c:] A0"[0-9][0-9]" <* $[!$@#%.] -[c:] \p[c:] A0"[0-9][0-9]" <* $[^&()_+\-={}|[\]\\;'":,/<>?`~*] ;[List.Rules:KoreLogicRulesPrependNumNumSpecial] -[c:] \p[c:] A0"[0-9][0-9][!$@#%.]" -[c:] \p[c:] A0q[0-9][0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q ;[List.Rules:KoreLogicRulesAppend2NumSpecial] -[c:] \p[c:] Az"[0-9][0-9][!$@#%.]" <+ -[c:] \p[c:] Azq[0-9][0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ;[List.Rules:KoreLogicRulesPrependDaysWeek] A0"[Mm][oO0][nN][dD][aA4@][yY]" A0"[Tt][uU][eE3][sS$][dD][aA4@][yY]" A0"[Ww][eE3][dD][nN][eE3][sS$][dD][aA4@][yY]" A0"[Tt][hH][uU][rR][sS$][dD][aA4@][yY]" A0"[Ff][rR][iI1!][dD][aA4@][yY]" A0"[Ss][aA4@][tT+][uU][rR][dD][aA4@][yY]" A0"[Ss][uU][nN][dD][aA4@][yY]" ;[List.Rules:KoreLogicRulesAppendNumbers_and_Specials_Simple-3] ## Add Number Number Special -[c:] \p[c:] Azq[0-9][0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ## Add Special Number Number -[c:] \p[c:] Azq[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9]q <+ ;[List.Rules:KoreLogicRulesPrependSpecialSpecialAppendNumber] -[c:] \p[c:] A0"[!$@#%.][!$@#%.]" <* $[0-9] -[c:] \p[c:] A0q[^&()_+\-={}|[\]\\;'":,/<>?`~*][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <* $[0-9] ;[List.Rules:KoreLogicRulesAppend4Num] -[c:] \p[c:] Az"[0-9][0-9][0-9][0-9]" <+ ;[List.Rules:KoreLogicRulesPrependNumNumNumNum] -[c:] \p[c:] A0"[0-9][0-9][0-9][0-9]" ;[List.Rules:KoreLogicRulesPrepend2NumbersAppend2Numbers] -[c:] \p[c:] A0"[0-9][0-9]" <- Az"[0-9][0-9]" ;[List.Rules:KoreLogicRulesPrependCAPCAPAppendSpecial] A0"[A-Z][A-Z]" <* $[!$@#%.] A0"[A-Z][A-Z]" <* $[^&()_+\-={}|[\]\\;'":,/<>?`~*] ;[List.Rules:KoreLogicRulesAppendSpecialLowerLower] -[c:] \p[c:] AzQ[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][a-z][a-z]Q <+ # The last line of KoreLogicRulesAppendNumbers_and_Specials_Simple ;[List.Rules:KoreLogicRulesAppendNumbers_and_Specials_Simple-4] # Add 100! ... 999! to the end -[c:] \p[c:] Azq[0-9][0-9][0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ;[List.Rules:KoreLogicRulesAppendSpecial3num] -[c:] \p[c:] Az"[!$@#%.][0-9][0-9][0-9]" <+ -[c:] \p[c:] Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9][0-9]q <+ ;[List.Rules:KoreLogicRulesAppendSpecialNumberNumberNumber] -[c:] \p[c:] Az"[!$@#%.][0-9][0-9][0-9]" <+ -[c:] \p[c:] Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9][0-9]q <+ ;[List.Rules:KoreLogicRulesAppend3NumSpecial] -[c:] \p[c:] Az"[0-9][0-9][0-9][!$@#%.]" <+ -[c:] \p[c:] Azq[0-9][0-9][0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ;[List.Rules:KoreLogicRulesPrependNumNum_AppendNumSpecial] -[c:] \p[c:] A0"[0-9][0-9]" Azq[0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ;[List.Rules:KoreLogicRulesAppendJustSpecials3Times] -[c:] \p[c:] Az"[!$@#%.][!$@#%.][!$@#%.]" <+ -[c:] \p[c:] Azq[!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ;[List.Rules:KoreLogicRulesAppendCap-Num_or_Special-Twice] -[c:] \p[c:] Az"[A-Z][0-9][0-9]" <+ -[c:] \p[c:] Azq[A-Z][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9]q <+ -[c:] \p[c:] Azq[A-Z][0-9][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ -[c:] \p[c:] Azq[A-Z][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*][!$@#%.^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ;[List.Rules:KoreLogicRulesPrependSpecialSpecialAppendNumbersNumber] -[c:] \p[c:] A0"[!$@#%.][!$@#%.]" <- Az"[0-9][0-9]" -[c:] \p[c:] A0q[^&()_+\-={}|[\]\\;'":,/<>?`~*][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <- Az"[0-9][0-9]" ;[List.Rules:KoreLogicRulesAppend5Num] -[c:] \p[c:] Az"[0-9][0-9][0-9][0-9][0-9]" <+ ;[List.Rules:KoreLogicRulesAppendSpecial4num] -[c:] \p[c:] Az"[!$@#%.][0-9][0-9][0-9][0-9]" <+ -[c:] \p[c:] Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*][0-9][0-9][0-9][0-9]q <+ ;[List.Rules:KoreLogicRulesPrepend4NumAppendSpecial] -[c:] \p[c:] A0"[0-9][0-9][0-9][0-9]" <- $[!$@#%.] -[c:] \p[c:] A0"[0-9][0-9][0-9][0-9]" <- Azq[^&()_+\-={}|[\]\\;'":,/<>?`~*]q ;[List.Rules:KoreLogicRulesAppend4NumSpecial] -[c:] \p[c:] Az"[0-9][0-9][0-9][0-9][!$@#%.]" <+ -[c:] \p[c:] Azq[0-9][0-9][0-9][0-9][^&()_+\-={}|[\]\\;'":,/<>?`~*]q <+ ;[List.Rules:KoreLogicRulesPrependSpecialSpecialAppendNumbersNumberNumber] -[c:] \p[c:] A0"[!$@#%.][!$@#%.]" Az"[0-9][0-9][0-9]" <+ -[c:] \p[c:] A0q[^&()_+\-={}|[\]\\;'":,/<>?`~*][^&()_+\-={}|[\]\\;'":,/<>?`~*]q Az"[0-9][0-9][0-9]" <+ ;[List.Rules:KoreLogicRulesAppend6Num] -[c:] \p[c:] Az"[0-9][0-9][0-9][0-9][0-9][0-9]" <+