home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / CRACK / JOHN14.ZIP / COMMON.ZIP / john.ini < prev    next >
Encoding:
INI File  |  1997-02-27  |  14.8 KB  |  573 lines

  1. ###
  2. # John the Ripper -- Configuration File
  3. ###
  4. # Comments should start with '#' or ';'
  5. ###
  6.  
  7. [Defaults]
  8. # You can uncomment any of the following lines to specify defaults:
  9. ;Wordfile = Your_Favorite_Wordlist_Filename
  10. ;Timeout = Timeout_Value_In_Minutes
  11. ;Beep = Yeah
  12.  
  13. [Options]
  14. # Show elapsed time as D:HH:MM:SS instead of just seconds (as Jack does)
  15. Realtime = Yeah
  16. # Show the progress indicator
  17. Percent = Yeah
  18.  
  19. [Incremental:All]
  20. CharCount = 95
  21. MinLen = 1
  22. MaxLen = 8
  23.  
  24. File = all.chr
  25.  
  26. Charset11 = *1a_jyfioqx5$dehmnrJM %&sltcupbgk203w94v678SzBCARPTDHLEGFNKWOIVY!.ZUQ-#X@;?/'^(),:[]"+<=`|>\{}~
  27.  
  28. Charset21 = 0apmdbjcgerty2nskfu1ilwx5hovBJM9;qS67"348zCARPTDHLEGFNKWOIVY!.ZU_Q-*$#%X@ &?/'^(),:[]+<=`|>\{}~
  29. Charset22 = 0o2l34astbegrk156jwdhnvcmp78fiu9_qxyzBDFM$')-?SCARPTHJLEGNKWOIVY!.ZUQ*#%X@ ;&/^(,:[]"+<=`|>\{}~
  30.  
  31. Charset31 = adcprjmstblnkzfghewq9x1voyi5u3726480PRTBCGSADJKLMFNOEIQU !$HWVY.Z_-*#%X@;&?/'^(),:[]"+<=`|>\{}~
  32. Charset32 = aoesiucmrt2dgbplfjnwhv97xyk35614z8q0APELRCNOSZBDGHJKMTUVW *-./FIY!_Q$#%X@;&?'^(),:[]"+<=`|>\{}~
  33. Charset33 = mscndtaegpxbhwyrlj3iuzk97ofv2654q810PTADGCKMBFLNSXEIOVYZ $/RHJW!.U_Q-*#%@;&?'^(),:[]"+<=`|>\{}~
  34.  
  35. Charset41 = 1b2mtdslajcrpk346g0f57nhi89weovzyuJBxRSqMACFTLDIKPW-GHNUY!$._EOVZQ*#%X@ ;&?/'^(),:[]"+<=`|>\{}~
  36. Charset42 = oaieu219r0543l76n8hmctydsbpkqvwfgjxzOAU-CDEIMPT$.@SBRHJLGFNKWVY!Z_Q*#%X ;&?/'^(),:[]"+<=`|>\{}~
  37. Charset43 = nar2sle501co34i6md78t9kubgpvhyzfwjxqRSCG-.AEJMNO#$BPTDHLFKWIVY!ZU_Q*%X@ ;&?/'^(),:[]"+<=`|>\{}~
  38. Charset44 = eao14n2sy305t7ki69ld8hpfrgmcbuxzwvjS!q.I*-ACEGKORT$MBPDHJLFNWVYZU_Q#%X@ ;&?/'^(),:[]"+<=`|>\{}~
  39.  
  40. Charset51 = smbc1dtparljghfekwnSoBMT32C9DA5ivLJ0RP4G7H6W8zEKNVyuFqZ!IxOQYUX_ .-*$#%@;&?/'^(),:[]"+<=`|>\{}~
  41. Charset52 = aoeiur2lhtn1pm0scy43b9wd856k7gz@jxfvAUqHOECFILNR_SW '-MBPTDJGKVY!.ZQ*$#%X;&?/^(),:[]"+<=`|>\{}~
  42. Charset53 = nrailseotmc3gudbpv1k28504y7z69fhxw#jRANVIOUqMZ.CEGHLPST BDJFKWY!_Q-*$%X@;&?/'^(),:[]"+<=`|>\{}~
  43. Charset54 = eianltrodsck4mbg1uhp729563fv0y8zjw$.xIAN_BCERqFOYZGSTU MPDHJLKWV!Q-*#%X@;&?/'^(),:[]"+<=`|>\{}~
  44. Charset55 = yesanro5t1lh2ikd0c63mg49p78bfxzuj%wvEYASDNO!qKLT*FRXZ_CIJP #$'+-?]|MBHGWV.UQ@;&/^(),:["<=`>\{}~
  45.  
  46. Charset61 = smSacbpdtBrj1MhCAlgfTHRDPJkwn0eKGFLWNoiEv263895zV4yuOqIYQZ7xUX!_#* $,-.%@;&?/'^():[]"+<=`|>\{}~
  47. Charset62 = aoeiurhln2ptmbcs1wy0k395d47v6gAfjE8OxqzIURHBLMN-SWCPKTGQY$'DVXZ !_JF.*#%@;&?/^(),:[]"+<=`|>\{}~
  48. Charset63 = rnaolsciemtgudpb31yh2wvk0fz4975x6jNRAC8TLMOIGBSqDEUWZPFHKX_VY-Q #$,@[J!.*%;&?/'^():]"+<=`|>\{}~
  49. Charset64 = einltradskomgcbphv1u4f2w359z0y768jxIEDNRqLMTKASGBCVOHPFJU/Z-QWXY $@_!.*#%;&?'^(),:[]"+<=`|>\{}~
  50. Charset65 = eiaonrltscu2dykh5m7g1p9w04b36fEzv8.IAOjxL_RTUqNHKGBCMSDYPJV$FQXZ #W!-*%@;&?/'^(),:[]"+<=`|>\{}~
  51. Charset66 = rensyatd1l0o3hg6mi25wck89pb7u4fxzY!jRESNvALDTqMWKGH.B*O$?JFCPV%;Z#IQX&-_U '@`/^(),:[]"+<=|>\{}~
  52.  
  53. Charset71 = scmpSbMtCadrfnPBgjhlFAkTRwJDeGHLWvKoNiV0O39E148257yIzqu6ZQYUx_@X!$&'(*.[^-#% ;?/),:]"+<=`|>\{}~
  54. Charset72 = aeoiruhlnctspm2bwydk3v6fgx415j7A89EOR0IqzLTUHNCWBDKPQSY#JMXZ'.GFV!_-*$%@ ;&?/^(),:[]"+<=`|>\{}~
  55. Charset73 = arnielocstumdwbgphyfvk342x75z918-6AqjERN0LIMOCSTDGUB$.HPQVWY_JFK!Z*#%X@ ;&?/'^(),:[]"+<=`|>\{}~
  56. Charset74 = tnreialsdchpmbokgufvwy14352z907j68qxDRNTSECGVLAMPIKW-BJOHY_%FQZ./;!U*$#X@ &?'^(),:[]"+<=`|>\{}~
  57. Charset75 = ieaotlnsrhmdcukgbp1yf32v5w0946z78AjqOIETxSLRDHNUBGKCJMP ^_QV-.FWY!Z*$#%X@;&?/'(),:[]"+<=`|>\{}~
  58. Charset76 = enriaoltscudygh91m20k36f4w57pb.8vzERjNAOT_ICDxLPMSUBY&qFHJQV!-GKWZ*$#%X@ ;?/'^(),:[]"+<=`|>\{}~
  59. Charset77 = senryatlgd1okm2hc63758u0wx9if4pb!zSjEvRNAYT*DL.GKCJO_BHMW$#?qFPVZ%/IQX&')=U-@ ;^(,:[]"+<`|>\{}~
  60.  
  61. Charset81 = scmpbadtfr1jwgilShek9nCMvBPIoDAT5FGRW02EJ6uyKHLVNz7q48O3xYZ_!Q(*X$;U/@.-#% &?'^),:[]"+<=`|>\{}~
  62. Charset82 = aioerhulntc0smp92wbd8kv3fy1gj7x64q5zAR_O@MT*EILSCFHNPUY&().BDJGKWV!ZQ-$#%X ;?/'^,:[]"+<=`|>\{}~
  63. Charset83 = arnmetolicsupdbgh10v3yfkw6485729jzx-_qA#CDMRNPELST )FHIKOUYZ(*.^BJGWV!Q$%X@;&?/',:[]"+<=`|>\{}~
  64. Charset84 = ertnailshocdpmgkubf4vwy207965813zxjqA$BCHN-_DITLMOPZ GKRX!#%&*.^SJEFWVYUQ@;?/'(),:[]"+<=`|>\{}~
  65. Charset85 = eroailtnshbcudmgkfpw15y207638v94jz_xqA%IKODLN -;RST*./BFPGHQUVWY$&')<@MCJE!Z#X?^(,:[]"+=`|>\{}~
  66. Charset86 = nieaortlsmhcudgbp6fvw3y91k028574jzqxDI^LEJ _MSTUW-AGHKOBFNRZ!#$)*,:CPVY.Q%X@;&?/'([]"+<=`|>\{}~
  67. Charset87 = eaniroltsc1du279mhgk3b46805pyfwv.zjx_R&qALEINOCDMY$*GPSTU-:BHJFKWV!ZQ#%X@ ;?/'^(),[]"+<=`|>\{}~
  68. Charset88 = ensrtadlo9y1igk8c2hm6530u47pfbwvzjx!*.;S_ENRA-IKLT#&(,q$?CDMPXYZ %']BHJGFWOVUQ@/^):["+<=`|>\{}~
  69.  
  70. [Incremental:Digits]
  71. CharCount = 10
  72. MinLen = 1
  73. MaxLen = 8
  74.  
  75. File = digits.chr
  76.  
  77. Charset11 = 1520349768
  78.  
  79. Charset21 = 0215967348
  80. Charset22 = 0234615897
  81.  
  82. Charset31 = 1325704698
  83. Charset32 = 2537046189
  84. Charset33 = 3798614520
  85.  
  86. Charset41 = 1234605789
  87. Charset42 = 2190543768
  88. Charset43 = 2051346879
  89. Charset44 = 4025317698
  90.  
  91. Charset51 = 1329504768
  92. Charset52 = 2104395867
  93. Charset53 = 3125047968
  94. Charset54 = 4725163809
  95. Charset55 = 5013624789
  96.  
  97. Charset61 = 1026839547
  98. Charset62 = 2109534768
  99. Charset63 = 1320497568
  100. Charset64 = 4125390786
  101. Charset65 = 5721904368
  102. Charset66 = 0653218947
  103.  
  104. Charset71 = 0398457216
  105. Charset72 = 2364157890
  106. Charset73 = 3427598160
  107. Charset74 = 4352190768
  108. Charset75 = 3152946708
  109. Charset76 = 4619203578
  110. Charset77 = 6708295341
  111.  
  112. Charset81 = 1950268473
  113. Charset82 = 0928371645
  114. Charset83 = 1036485729
  115. Charset84 = 4027698531
  116. Charset85 = 5120763849
  117. Charset86 = 6398501274
  118. Charset87 = 7214963805
  119. Charset88 = 9806457123
  120.  
  121. [Incremental:Alpha]
  122. CharCount = 26
  123. MinLen = 1
  124. MaxLen = 8
  125.  
  126. File = alpha.chr
  127.  
  128. Charset11 = ajyfioqxdehmnrstlcupbgkwvz
  129.  
  130. Charset21 = mdjpagetbrnsckyfilwhuoqvzx
  131. Charset22 = olstabegrkjdhnvwcmpfiquxyz
  132.  
  133. Charset31 = dacjmbrtpslknfeghowqvzxiuy
  134. Charset32 = aoeisumctgdblrfjpnvhwkxyzq
  135. Charset33 = msnctdxepghlywabrjikuzofvq
  136.  
  137. Charset41 = bmtdslajrcpkfgnhweiozvyuxq
  138. Charset42 = oaieurlhnmyscpbdtkqwvfgzxj
  139. Charset43 = narsleoicmdtkubgpvhyzwfjxq
  140. Charset44 = eaosnytikldhpfrmgcbuxzwvjq
  141.  
  142. Charset51 = smbcptadrjlghfkenwovizyqux
  143. Charset52 = aoeiurlhntpmcsybwdkgzfjxvq
  144. Charset53 = nralioestmudgcpvbkyzfhxwjq
  145. Charset54 = eianltrodsckmughbpfvyzjwxq
  146. Charset55 = yesanortlhkdicmgpxbfuzjwvq
  147.  
  148. Charset61 = smbcpadtrjhgflkwneoivzquyx
  149. Charset62 = aoeiurhlntmpscwybkdgvfxjzq
  150. Charset63 = rnaolseicmtgudpbyhwvkfzxjq
  151. Charset64 = ineltarsdomgkcbhpvufwyzxjq
  152. Charset65 = eiaonrltsuckdmhwgypbfzvxjq
  153. Charset66 = ernysatdlohigmwkcpbuxfzjvq
  154.  
  155. Charset71 = scmpbatfdnrgjhlkwevoiyzuqx
  156. Charset72 = aeoiruhlnctsmpbwdykgfvxjqz
  157. Charset73 = arneilcostuwmdbgphyfvkxzjq
  158. Charset74 = trenialschpmdogbukfwvyzjqx
  159. Charset75 = iaeotlsnrhdmuckbpgfyvwzjqx
  160. Charset76 = enoiralstcudghmkypfbvwzjxq
  161. Charset77 = ensryatldgomkhciuxwpfbzjvq
  162.  
  163. Charset81 = scmpbtadfrgwjliheknvouyzqx
  164. Charset82 = aoeirhulntcmspbwdvgkfyjxqz
  165. Charset83 = arnetoilcsmupdbghvfywkjxzq
  166. Charset84 = erntialsochdpmgukfbvwyzxjq
  167. Charset85 = erliatnsohbcumdgkfpwyvzjqx
  168. Charset86 = iaenortlsmhcudgbpfvwykjzqx
  169. Charset87 = eaniroltscudhmgbkpfwvyzjxq
  170. Charset88 = ensrtaldoyigkcmhupfwbvxzjq
  171.  
  172. [Incremental:Capital]
  173. CharCount = 26
  174. MinLen = 3
  175. MaxLen = 8
  176.  
  177. Charset31 = TBRSKPACDJLMEFGNHWVIOZYQUX
  178. Charset32 = aoeiruschlmwntdygkpbfvzxjq
  179. Charset33 = nmegybilopacdfjkrtuxzshwvq
  180.  
  181. Charset41 = JBRSAMCFTDKILPWGNYHEVOZQUX
  182. Charset42 = aoiuertdlvfhnpwscymgkbzxjq
  183. Charset43 = nsareluchotvimpxzbdfkygwjq
  184. Charset44 = edaglnyktfhizmsxboprcuwvjq
  185.  
  186. Charset51 = SBMTCADJLPRGHEKWNVFZIOQYUX
  187. Charset52 = aoieurhlnmytpwsbcdkxzfgvjq
  188. Charset53 = nrisatlmoebcgpvkduzywxfhjq
  189. Charset54 = einlrdaotbsmkcguhpvzfyjwxq
  190. Charset55 = ysaeronilthdkgmcbfpzxjwuqv
  191.  
  192. Charset61 = SBMCATHRPDJGFKLNWEVOYIQZUX
  193. Charset62 = aoeiurlhnpmctswkydbvgfqxjz
  194. Charset63 = ranolcsietmgdupbhywkvfzxjq
  195. Charset64 = ltenirdksamogpbvchfuwzyjxq
  196. Charset65 = eioantrlscudkmhpygfbvzjwxq
  197. Charset66 = rsyentaldohgwmickpbzfuxqjv
  198.  
  199. Charset71 = SMCPBFATRJDHGWLKNVOEIZQYUX
  200. Charset72 = aoeiruhlntcpmwsybvkdxfgjzq
  201. Charset73 = arnilecostdmubwgphykfvzxqj
  202. Charset74 = tndsrelacihbkpmgofwuvyzjqx
  203. Charset75 = ieaotlnhsrkmdcubgpfywvzjqx
  204. Charset76 = enriaocltsgdyuhmfwkpvzbjqx
  205. Charset77 = srenyagltdkomhcwfuxpibjzvq
  206.  
  207. Charset81 = SCMBPIADTFGWREKHJLVNOYZQXU
  208. Charset82 = aoeirhnultcsmpdxvwyjkqbfzg
  209. Charset83 = ratnoeliscmgpubdvhyfwkzjqx
  210. Charset84 = etrasnilhcodmpgkbfuvwyxzqj
  211. Charset85 = reiathnslobdukpwmgcfyvjxzq
  212. Charset86 = eiatnolrmshbudgcwfpvykjzqx
  213. Charset87 = eaorilntcsdugmhbkvpfywxjzq
  214. Charset88 = entsrdaloyikhgmcupfbxzvjwq
  215.  
  216. [List.Rules:Single]
  217. ###
  218. # Single crack mode rules, extended Crack syntax
  219. ###
  220. # Simple rules come first...
  221. :[:cl]
  222. # These were not included in crackers I've seen, but are pretty efficient
  223. # so I include them near the beginning
  224. >6x06
  225. >7lx07
  226. >6/?ulx06
  227. >5x05
  228. # Weird order, eh? Can't do anything about it, the order is based on the
  229. # number of successful cracks...
  230. d
  231. :[rd]c
  232. >5/?ulx05
  233. u
  234. lr
  235. <8[lc]p
  236. cd
  237. >7/?ux07
  238. >4lx04
  239. <9cr
  240. <9rcr
  241. >3x03
  242. >4/?ux04
  243. >3/?ulx03
  244. ur
  245. lf
  246. # About 50% of single-mode-crackable passwords get cracked by now...
  247. >2x12
  248. >3x13
  249. >4x14
  250. >5x15
  251. >6x16
  252. >7x17
  253. >8x18
  254. >3x22
  255. >4x23
  256. >5x24
  257. >6x25
  258. >7x26
  259. >8x27
  260. >9x28
  261. >4x32
  262. >5x33
  263. >6x34
  264. >7x35
  265. >8x36
  266. >9x37
  267. >2/?ulx12
  268. >3/?ulx13
  269. >4/?ulx14
  270. >5/?ulx15
  271. >6/?ulx16
  272. >7/?ulx17
  273. >8/?ulx18
  274. >3/?ulx22
  275. >4/?ulx23
  276. >5/?ulx24
  277. >6/?ulx25
  278. >7/?ulx26
  279. >8/?ulx27
  280. >9/?ulx28
  281. >4/?ulx32
  282. >5/?ulx33
  283. >6/?ulx34
  284. >7/?ulx35
  285. >8/?ulx36
  286. >9/?ulx37
  287. # Now to the suffix stuff...
  288. <8[lc]$[1-9!0a-z"-/:-@\[-`{-~]
  289. <8lr$[1-9!]
  290. <8u$[1-9!]
  291. <7[lc]$!$!
  292. <6[lc]$!$!$!
  293. # Removing vowels...
  294. /?v@?v>2[lcd]
  295. # crack -> cracked, crack -> cracking
  296. <8l[PG][:c]
  297. # mary -> marie
  298. :[lc]r=0yo0ir$e
  299. # marie -> mary
  300. :[lc]r=0e=1iD0o0yr
  301. # The following 3l33t rules are based on original Crack's dicts.rules
  302. l/asa4[:c]
  303. l/ese3[:c]
  304. l/lsl1[:c]
  305. l/oso0[:c]
  306. l/sss$[:c]
  307. l/asa4/ese3[:c]
  308. l/asa4/lsl1[:c]
  309. l/asa4/oso0[:c]
  310. l/asa4/sss$[:c]
  311. l/ese3/lsl1[:c]
  312. l/ese3/oso0[:c]
  313. l/ese3/sss$[:c]
  314. l/lsl1/oso0[:c]
  315. l/lsl1/sss$[:c]
  316. l/oso0/sss$[:c]
  317. l/asa4/ese3/lsl1[:c]
  318. l/asa4/ese3/oso0[:c]
  319. l/asa4/ese3/sss$[:c]
  320. l/asa4/lsl1/oso0[:c]
  321. l/asa4/lsl1/sss$[:c]
  322. l/asa4/oso0/sss$[:c]
  323. l/ese3/lsl1/oso0[:c]
  324. l/ese3/lsl1/sss$[:c]
  325. l/ese3/oso0/sss$[:c]
  326. l/lsl1/oso0/sss$[:c]
  327. l/asa4/ese3/lsl1/oso0[:c]
  328. l/asa4/ese3/lsl1/sss$[:c]
  329. l/asa4/ese3/oso0/sss$[:c]
  330. l/asa4/lsl1/oso0/sss$[:c]
  331. l/ese3/lsl1/oso0/sss$[:c]
  332. l/asa4/ese3/lsl1/oso0/sss$[:c]
  333. # Now to the prefix stuff...
  334. l^[1a-z2-90A-Z"-/:-@\[-`{-~]
  335. <9[lc]^e^h^[tT]
  336. <9[lc]^y^m^[aA]
  337. <9[lc]^r^[mdMD]
  338. <9[lc]^.^r^[mdMD]
  339. <9[lc]^_^_
  340. <7lp^2
  341. # Some word pair rules...
  342. # johnsmith -> JohnSmith, johnSmith
  343. =0?a2=0?ac1[cl]
  344. # JohnSmith -> john smith, john_smith, john-smith
  345. 1<7$[ _\-]+l
  346. # JohnSmith -> John smith, John_smith, John-smith
  347. 1<7=0?ac$[ _\-]2l
  348. # JohnSmith -> john Smith, john_Smith, john-Smith
  349. 1<7l$[ _\-]2=0?ac
  350. # johnsmith -> John Smith, John_Smith, John-Smith
  351. 1<7=0?ac$[ _\-]2=0?ac
  352. # Applying different simple rules to each of the two words
  353. 1[ur]2l
  354. 2=0?ac1[ur]
  355. 1l2[ur]
  356. 1=0?ac2[ur]
  357. # jsmith -> smithj, etc...
  358. :[lc][{}]
  359. :[lc]}}
  360. :[lc]{{
  361. # Deleting chars...
  362. D[1-7][:lc]
  363. # Inserting a dot...
  364. >3[lc]i[12].
  365. # More suffix stuff...
  366. <7[lc]$[19]$[0-9]
  367. <7[lc]$6$9
  368. <7[lc]$[72]$[0-9]
  369. <8[lc]$[A-Z]
  370. # cracking -> CRACKiNG
  371. u/IsIi
  372. # Crack96 -> cRACK96
  373. :[:c]~I
  374. # Crack96 -> cRACK(^
  375. ~i
  376. # Crack96 -> CRaCK96
  377. /?v~v
  378. # Really weird charset conversions, like "england" -> "rmh;smf" (one of
  379. # the real passwords I cracked; check your keyboard)
  380. ~[><]
  381. :[lc]~[><]
  382. ~>~>
  383. ~<~<
  384. # Both prefixing and suffixing...
  385. <7l^1$1
  386. <7l^!$!
  387. <7l^@$@
  388. <7l^#$#
  389. <7l^$$$
  390. <7l^%$%
  391. <7l^^$^
  392. <7l^&$&
  393. <7l^*$*
  394. <7l^($)
  395. <7l^-$-
  396. <7l^=$=
  397. <7l^_$_
  398. <7l^+$+
  399. <7l^.$.
  400. <7l^?$?
  401. <7l^{$}
  402. <7l^\[$]
  403. <7l^<$>
  404. <7l^|$|
  405. <7l^:$:
  406. <7l^'$'
  407. <7l^"$"
  408. # The rest of two-digit suffix stuff, rare numbers...
  409. <7[lc]$6$[0-8]
  410. <7[lc]$[3-580]$[0-9]
  411. # Some three-digit numbers...
  412. <6[lc]$0$0$7
  413. <6[lc]$1$1$1
  414. <6[lc]$1$2$3
  415. <6[lc]$2$2$2
  416. <6[lc]$3$3$3
  417. <6[lc]$4$4$4
  418. <6[lc]$5$5$5
  419. <6[lc]$6$6$6
  420. <6[lc]$7$7$7
  421. <6[lc]$8$8$8
  422. <6[lc]$9$9$9
  423. # Some [birth] years...
  424. <6>4l$1$9$[7-90-6]
  425. <5l$1$9$[7-90-6]$[0-9]
  426. # Uncomment the following lines if you're really crazy
  427. ;# Insert/overstrike some characters...
  428. ;!?Ali[1-6][a-z]
  429. ;!?Alo[0-7][a-z]
  430. ;# Very slow stuff...
  431. ;<6[lc]$[1-90]$[0-9]$[0-9]
  432. ;<7l$[a-z]$[a-z]
  433. ;<9l^[a-z]^[a-z]
  434. ;<7l^[a-z]$[a-z]
  435.  
  436. [List.Rules:Wordlist]
  437. ###
  438. # Wordlist mode rules (use -rules to enable)
  439. ###
  440. # Try words as they are
  441. :
  442. # Lowercase every pure alphanumeric word
  443. !?Xl
  444. # Capitalize every pure alphanumeric word
  445. !?Xc
  446. # Lowercase and pluralize pure alphabetic words of reasonable length
  447. <8>2!?Alp
  448. # Lowercase and reverse pure alphabetic words
  449. !?Alr
  450. # Uppercase pure alphanumeric words
  451. !?Xu
  452. # Words with vowels removed, lowercase
  453. /?v@?v>3l
  454. # Lowercase pure alphabetic words and append a digit or simple punctuation
  455. <8!?Al$[1-9!.?0]
  456. # Words containing whitespace, which is then squeezed out, lowercase
  457. /?w@?w>3l
  458. # Words containing punctuation, which is then squeezed out, lowercase
  459. /?p@?p>3l
  460. # Duplicate reasonably short pure alphabetic words (fred -> fredfred)
  461. <7!?Ald
  462. # Capitalize and duplicate short pure alphabetic words (fred -> FredFred)
  463. <7!?Acd
  464. # Capitalize and reverse pure alphabetic words (fred -> derF)
  465. <9!?Acr
  466. # Reverse and capitalize pure alphabetic words (fred -> Derf)
  467. !?Arc
  468. # Lowercase and reflect pure alphabetic words (fred -> fredderf)
  469. <7!?Alf
  470. # Uppercase the last letter of pure alphabetic words (fred -> freD)
  471. <9!?Arcr
  472. # Prefix pure alphabetic words with digits
  473. !?Al^[1-9]
  474. # Capitalize pure alphabetic words and append a digit or simple punctuation
  475. <8!?Ac$[1-9!.?0]
  476. # Capitalize and pluralize pure alphabetic words of reasonable length
  477. <8>2!?Acp
  478. # Lowercase/capitalize pure alphabetic words of reasonable length and convert:
  479. # crack -> cracked, crack -> cracking
  480. <8>2!?A[lc][PG]
  481.  
  482. ###
  483. # Some pre-defined filters for use with other modes
  484. ###
  485. [List.External:Filter_Alpha]
  486. void filter() {
  487.   int i;
  488.  
  489.   i = 0;
  490.   while (word[i] && word[i] >= 'a' && word[i] <= 'z') i++;
  491.   if (word[i]) word = 0;
  492. }
  493.  
  494. [List.External:Filter_Digits]
  495. void filter() {
  496.   int i;
  497.  
  498.   i = 0;
  499.   while (word[i] && word[i] >= '0' && word[i] <= '9') i++;
  500.   if (word[i]) word = 0;
  501. }
  502.  
  503. [List.External:Filter_Capital]
  504. void filter() {
  505.   int i;
  506.  
  507.   if (word < 'A' || word > 'Z') word = 0; else {
  508.     i = 1;
  509.     while (word[i] && word[i] >= 'a' && word[i] <= 'z') i++;
  510.     if (word[i] || i < 3) word = 0;
  511.   }
  512. }
  513.  
  514. [List.External:Example]
  515. ###
  516. # The following code is an example of defining an external cracking mode
  517. ###
  518. # global variables:
  519. int isvowel[256], len, current[9];
  520.  
  521. # init() is called at startup (not required)
  522. void init() {
  523.   int i, c;
  524.  
  525.   i = 256;
  526.   while (i--) {
  527.     c = i | 0x20;
  528.     isvowel[i] = c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
  529.   }
  530.  
  531.   current[i = len = 5] = 0;
  532.   while (i--) current[i] = 'a';
  533. }
  534.  
  535. # filter() is called for each word, even when not using an external word
  536. # generator, so you can filter some words out
  537. void filter() {
  538.   int i, c, v;
  539.  
  540.   i = c = v = 0;
  541.   while (word[i]) {
  542.     if (isvowel[word[i++]]) {
  543.       v++; c = 0;
  544.     } else {
  545.       c++; v = 0;
  546.     }
  547.     if (v > 1 || c > 2) word = 0;
  548.   }
  549. }
  550.  
  551. # generate() is the word generation routine, and is only called when no
  552. # other cracking modes used (if you use an external mode with some other
  553. # mode, only init() and filter() are used)
  554. void generate() {
  555.   int i;
  556.  
  557.   i = len + 1;
  558.   while (i--) word[i] = current[i];
  559.  
  560.   i = len - 1;
  561.   while (++current[i] > 'z')
  562.   if (i) current[i--] = 'a'; else current = -1;
  563. }
  564.  
  565. # restore() is called when restoring an interrupted external mode session;
  566. # it should set global variables to continue from the supplied word
  567. void restore() {
  568.   int i;
  569.  
  570.   i = len + 1;
  571.   while (i--) current[i] = word[i];
  572. }
  573.