home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume28 / crack / part01 < prev    next >
Encoding:
Internet Message Format  |  1992-03-18  |  61.6 KB

  1. From: aem@aber.ac.uk (Alec David Muffett)
  2. Newsgroups: comp.sources.misc
  3. Subject: v28i110: crack - The Unix Password Cracker, version 4.1, Part01/05
  4. Message-ID: <csm-v28i110=crack.143636@aber.ac.uk>
  5. Date: 18 Mar 92 14:37:42 GMT
  6. Approved: aem@aber.ac.uk
  7. X-Md4-Signature: 219e83137cc1c285e33e2e370c14f824
  8.  
  9. Submitted-by: aem@aber.ac.uk (Alec David Muffett)
  10. Posting-number: Volume 28, Issue 110
  11. Archive-name: crack/part01
  12. Environment: UNIX
  13. Supersedes: crack: Volume 25, Issue 5-9
  14.  
  15. This is Crack v4.1, the "Sensible" Unix Password Cracker. 
  16.  
  17. - Documentation is in the directory 'Docs' - go for it... 
  18.  
  19. dicts.rules is now up to 240 entries, mostly thanks to mycroft @
  20. gnu.ai.mit.edu; don't lose heart, its not as bad as all that...  3 weeks
  21. of CPU isn't all that long, really...  Seriously, most of the rules
  22. generate really small dictionaries, so it's not all that bad.  8-)
  23.  
  24. There are several additions to the dictionary rules, notably the
  25. character class commands and the i, o, = and @ commands. 
  26.  
  27. Use of "Crack -R" (as opposed to "Crack -r") is not recommended until I
  28. write v5.0, unless you know exactly what you're doing and why it bombs
  29. out on you... 
  30.  
  31. Also, Crack now fully supports UFC (the latest version of which is to be
  32. posted concurrently with Crack v4.1) - all you should have to do is
  33. unpack the latest version of UFC into the directory
  34.  
  35.                 ufc-crypt
  36.  
  37. which you should create in the Crack installation directory.  The
  38. program should do the rest. 
  39.  
  40. --
  41. |+ Alec David Edward Muffett, Unix Programmer and Unemployed Coffee Drinker. +|
  42. |>  aem@aber.ac.uk aem@uk.ac.aber aem%aber@ukacrl.bitnet mcsun!ukc!aber!aem  <|
  43. | "I didn't invent the Unix Password Security problem.  I just optimised it." |
  44.  
  45. #! /bin/sh
  46. # This is a shell archive.  Remove anything before this line, then unpack
  47. # it by saving it into a file and typing "sh file".  To overwrite existing
  48. # files, type "sh file -c".  You can also feed this as standard input via
  49. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  50. # will see the following message at the end:
  51. #        "End of archive 1 (of 5)."
  52. # Contents:  BUGS DictSrc DictSrc/jargon Dicts Docs MANIFEST README
  53. #   Runtime Scripts Scripts/RCrack Scripts/clean Scripts/crack.mf
  54. #   Scripts/do_install Scripts/do_join Scripts/do_pwc Scripts/do_ufc
  55. #   Scripts/gecos.rules Scripts/guess2fbk Scripts/install.mf
  56. #   Scripts/mrgfbk Scripts/nastygram Scripts/network.conf
  57. #   Scripts/plaster Scripts/saltcount Scripts/shadmrg Scripts/spotless
  58. #   Scripts/status Sources Sources/Makefile Sources/bytesex.c
  59. #   Sources/conf.h Sources/crack-glob.c Sources/crack-glob.h
  60. #   Sources/crack-supp.c Sources/crack.h Sources/speeds.c
  61. #   Sources/tester.c Sources/testrule.c TODO
  62. # Wrapped by aem@aberfa on Wed Mar 18 14:08:25 1992
  63. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  64. if test -f 'BUGS' -a "${1}" != "-c" ; then 
  65.   echo shar: Will not clobber existing file \"'BUGS'\"
  66. else
  67. echo shar: Extracting \"'BUGS'\" \(1112 characters\)
  68. sed "s/^X//" >'BUGS' <<'END_OF_FILE'
  69. XBugs as of 1 Mar 1992:-
  70. X
  71. X* Crack: is known to occasionally hang during a "Crack -network" whilst
  72. Xrshing from machine to machine on some architectures.  It's a persistent
  73. Xproblem at some sites, when Crack rsh'es to a particular machine and
  74. Xstays there, and thus never calls the next machine.
  75. X
  76. XFIX: mark machines that hang Crack with the "-f" option in network.conf
  77. Xfile, then the 'rsh' will be backgrounded and Crack will continue to the
  78. Xnext machine.  The tweak in Crack v4.1 to close descriptors 0->9 on all
  79. Xmachines (esp Apollos) may help this.
  80. X
  81. X* Beta testers on DEC 5500s have reported crack-pwc crashing when
  82. Xcompiled with the optimiser.  This apparently doesn't happen using GCC
  83. Xor when optimisation is turned off (heisenbug?)
  84. X
  85. XBe warned.
  86. X
  87. X* Earlyish System V type systems will have problems if the environment
  88. Xvariable SHELL is not set to "/bin/sh" - this is because SV will
  89. Xblithely ignore the "#!/bin/sh" line and invoke a csh anyway, if thats
  90. Xwhat you prefer.
  91. X
  92. XThis is probably most easily diagnosed when Crack bails out like this:
  93. X
  94. X    CRACK_HOME=/your/crack/directory: Command not found.
  95. X
  96. X- or similar.
  97. END_OF_FILE
  98. if test 1112 -ne `wc -c <'BUGS'`; then
  99.     echo shar: \"'BUGS'\" unpacked with wrong size!
  100. fi
  101. # end of 'BUGS'
  102. fi
  103. if test ! -d 'DictSrc' ; then
  104.     echo shar: Creating directory \"'DictSrc'\"
  105.     mkdir 'DictSrc'
  106. fi
  107. if test -f 'DictSrc/jargon' -a "${1}" != "-c" ; then 
  108.   echo shar: Will not clobber existing file \"'DictSrc/jargon'\"
  109. else
  110. echo shar: Extracting \"'DictSrc/jargon'\" \(3677 characters\)
  111. sed "s/^X//" >'DictSrc/jargon' <<'END_OF_FILE'
  112. X# From: eric%snark.thyrsus.com%cbmvax@net.UU.uunet (Eric S. Raymond)
  113. X# Subject: improved Jargon File wordlist for crack 4.0
  114. X# Eric S. Raymond = eric@snark.thyrsus.com  (mad mastermind of TMN-Netnews)
  115. XACK
  116. XALT
  117. XAOS
  118. XBBS
  119. XBFI
  120. XBIFF
  121. XBITNET
  122. XBLT
  123. XBOF
  124. XBQS
  125. XBRS
  126. XBSD
  127. XBWQ
  128. XBartleMUD
  129. XBerzerkeley
  130. XBiCapitalization
  131. XCI
  132. XCLM
  133. XCTY
  134. XDDT
  135. XDEADBEEF
  136. XDEChead
  137. XDP
  138. XDPB
  139. XDPer
  140. XDRECNET
  141. XDWIM
  142. XDiscordianism
  143. XEMACS
  144. XENQ
  145. XEOL
  146. XEOU
  147. XEXCH
  148. XEXE
  149. XEris
  150. XFAQL
  151. XFOAF
  152. XFOD
  153. XFTP
  154. XFUBAR
  155. XFUD
  156. XFidoNet
  157. XFoonly
  158. XFortrash
  159. XGC
  160. XGECOS
  161. XGFR
  162. XGIGO
  163. XGIPS
  164. XGNUMACS
  165. XGOSMACS
  166. XGPL
  167. XGPV
  168. XGodzillagram
  169. XGosperism
  170. XHAKMEM
  171. XHCF
  172. XHHOK
  173. XHHOS
  174. XHLL
  175. XHackintosh
  176. XIMHO
  177. XINTERCAL
  178. XIRC
  179. XIWBNI
  180. XIYFEG
  181. XJEDR
  182. XJFCL
  183. XJRST
  184. XK&R
  185. XKIPS
  186. XLDB
  187. XLER
  188. XLERP
  189. XLN
  190. XLPT
  191. XMEGO
  192. XMFTL
  193. XMIPS
  194. XMOTAS
  195. XMOTOS
  196. XMOTSS
  197. XMacintoy
  198. XMacintrash
  199. XMoof
  200. XNAK
  201. XNMI
  202. XNeWS
  203. XPBD
  204. XPD
  205. XPETSCII
  206. XPOM
  207. XPOPJ
  208. XPPN
  209. XPerl
  210. XQWERTY
  211. XRETI
  212. XRFC
  213. XRFE
  214. XRL
  215. XRSN
  216. XRTFAQ
  217. XRTFM
  218. XRTI
  219. XRTM
  220. XSCSI
  221. XSMOP
  222. XSPACEWAR
  223. XSysVile
  224. XTCB
  225. XTECO
  226. XTELNET
  227. XTLA
  228. XTMRC
  229. XTWENEX
  230. XTeX
  231. XTechRef
  232. XUBD
  233. XUSENET
  234. XUTSL
  235. XUUCPNET
  236. XVAXectomy
  237. XVAXen
  238. XVMS
  239. XVR
  240. XWIBNI
  241. XWOMBAT
  242. XWYSIAYG
  243. XWYSIWYG
  244. XWeenix
  245. XXOFF
  246. XXXX
  247. XYABA
  248. XYAUN
  249. XZork
  250. Xabbrev
  251. Xadger
  252. Xadmin
  253. Xannoybot
  254. Xapp
  255. Xattoparsec
  256. Xautobogotiphobia
  257. Xavatar
  258. Xawk
  259. Xbagbiter
  260. Xbamf
  261. Xbarf
  262. Xbarfulation
  263. Xbarfulous
  264. Xbaz
  265. Xbboard
  266. Xberklix
  267. Xbiff
  268. Xbignum
  269. Xbitblt
  270. Xbixie
  271. Xblargh
  272. Xbletch
  273. Xbletcherous
  274. Xblinkenlights
  275. Xblit
  276. Xblitter
  277. Xblivet
  278. Xbogometer
  279. Xbogon
  280. Xbogosity
  281. Xbogotify
  282. Xboink
  283. Xbonk
  284. Xboxen
  285. Xboxology
  286. Xbozotic
  287. Xbraino
  288. Xbreedle
  289. Xbroket
  290. Xbuglix
  291. Xbytesexual
  292. Xcareware
  293. Xcdr
  294. Xchad
  295. Xchanop
  296. Xcharityware
  297. Xclustergeeking
  298. Xcodewalker
  299. Xcokebottle
  300. Xcomputron
  301. Xcondom
  302. Xcopybroke
  303. Xcopyleft
  304. Xcopywronged
  305. Xcorge
  306. Xcray
  307. Xcrayola
  308. Xcrippleware
  309. Xcrlf
  310. Xcrudware
  311. Xcruft
  312. Xcruftsmanship
  313. Xcrufty
  314. Xcryppie
  315. Xcuspy
  316. Xcybercrud
  317. Xcyberpunk
  318. Xcyberspace
  319. Xdaemon
  320. Xdd
  321. Xdeckle
  322. Xdehose
  323. Xdelint
  324. Xdepeditate
  325. Xdevo
  326. Xdink
  327. Xdoc
  328. Xdoco
  329. Xdodgy
  330. Xdogcow
  331. Xdogwash
  332. Xdongle
  333. Xdonuts
  334. Xdoorstop
  335. Xdroid
  336. Xdynner
  337. Xemail
  338. Xemoticon
  339. Xerve
  340. Xexcl
  341. Xfab
  342. Xfeaturectomy
  343. Xfeep
  344. Xfeeper
  345. Xfilk
  346. Xfinn
  347. Xfirebottle
  348. Xfirefighting
  349. Xfirmy
  350. Xflamage
  351. Xflarp
  352. Xflippy
  353. Xflytrap
  354. Xfollowup
  355. Xfoo
  356. Xfoobar
  357. Xfora
  358. Xfred
  359. Xfrednet
  360. Xfreeware
  361. Xfriode
  362. Xfritterware
  363. Xfrob
  364. Xfrobnicate
  365. Xfrobnitz
  366. Xfrotz
  367. Xfrotzed
  368. Xfrowney
  369. Xfuggly
  370. Xfuzzball
  371. Xgabriel
  372. Xgarply
  373. Xgeef
  374. Xgen
  375. Xgensym
  376. Xgillion
  377. Xglark
  378. Xglassfet
  379. Xglork
  380. Xgnarly
  381. Xgonk
  382. Xgonkulator
  383. Xgonzo
  384. Xgorp
  385. Xgotcha
  386. Xgrault
  387. Xgritch
  388. Xgrok
  389. Xgronk
  390. Xgronked
  391. Xgrunge
  392. Xgubbish
  393. Xguiltware
  394. Xgumby
  395. Xgunch
  396. Xgurfle
  397. Xgweep
  398. Xhackish
  399. Xhackishness
  400. Xhackitude
  401. Xhakspek
  402. Xhandwave
  403. Xhardcoded
  404. Xhardwarily
  405. Xhardwired
  406. Xheisenbug
  407. Xhexit
  408. Xhing
  409. Xhobbit
  410. Xhungus
  411. Xi14y
  412. Xi18n
  413. Xinitgame
  414. Xjupiter
  415. Xkahuna
  416. Xkgbvax
  417. Xklone
  418. Xkluge
  419. Xkremvax
  420. Xkyrka
  421. Xlaundromat
  422. Xlegalese
  423. Xletterbomb
  424. Xlexiphage
  425. Xlivelock
  426. Xliveware
  427. Xlossage
  428. Xluser
  429. Xmacdink
  430. Xmachoflops
  431. Xmacrology
  432. Xmacrotape
  433. Xmaggotbox
  434. Xmandelbug
  435. Xmarketroid
  436. Xmartian
  437. Xmeatware
  438. Xmeeces
  439. Xmeg
  440. Xmegapenny
  441. Xmeme
  442. Xmemetics
  443. Xmenuitis
  444. Xmeta
  445. Xmickey
  446. XmicroLenat
  447. Xminifloppies
  448. Xmoby
  449. Xmoria
  450. Xmouso
  451. Xmudhead
  452. Xmultician
  453. Xmumblage
  454. Xmunchkin
  455. Xnano
  456. Xnanoacre
  457. Xnanobot
  458. Xnanocomputer
  459. Xnanofortnight
  460. Xnanotechnology
  461. Xnastygram
  462. Xneophilia
  463. Xnetburp
  464. Xnetdead
  465. Xnethack
  466. Xnetiquette
  467. Xnetlag
  468. Xnetnews
  469. Xnetrock
  470. Xnewbie
  471. Xnewsfroup
  472. Xnewsgroup
  473. Xnickle
  474. Xnoddy
  475. Xnooze
  476. Xnotwork
  477. Xnuke
  478. Xnybble
  479. Xnyetwork
  480. Xoffline
  481. Xoif
  482. Xooblick
  483. Xop
  484. Xparam
  485. Xparm
  486. Xpayware
  487. Xpdl
  488. Xperf
  489. Xphreaking
  490. Xplayte
  491. Xplingnet
  492. Xplokta
  493. Xplonk
  494. Xplugh
  495. Xpnambic
  496. Xprestidigitization
  497. Xprettyprint
  498. Xproglet
  499. Xpsychedelicware
  500. Xpsyton
  501. Xques
  502. Xquux
  503. Xqux
  504. Xravs
  505. Xregexp
  506. Xretcon
  507. Xretrocomputing
  508. Xrot13
  509. Xsagan
  510. Xsalescritter
  511. Xsalsman
  512. Xsandbender
  513. Xscrewage
  514. Xscrog
  515. Xscrool
  516. Xscrozzle
  517. Xsegfault
  518. Xseggie
  519. Xsegv
  520. Xshareware
  521. Xshelfware
  522. Xshitogram
  523. Xshowstopper
  524. Xsitename
  525. Xskrog
  526. Xslopsucker
  527. Xsmiley
  528. Xsmurf
  529. Xsnarf
  530. Xsneakernet
  531. Xsnivitz
  532. Xsoftcopy
  533. Xsoftwarily
  534. Xsofty
  535. Xspam
  536. Xspl
  537. Xspooge
  538. Xstiffy
  539. Xstubroutine
  540. Xstudlycaps
  541. Xsysadmin
  542. Xsysop
  543. Xtayste
  544. Xterminak
  545. Xterpri
  546. Xthinko
  547. Xthunk
  548. Xtinycrud
  549. Xtoeprint
  550. Xtoto
  551. Xtrit
  552. Xtty
  553. Xtunafish
  554. Xturist
  555. Xtwink
  556. Xtwonkie
  557. Xupload
  558. Xupthread
  559. Xvadding
  560. Xvannevar
  561. Xvaporware
  562. Xvar
  563. Xvaxherd
  564. Xvaxism
  565. Xvaxocentrism
  566. Xvdiff
  567. Xveeblefester
  568. Xverbage
  569. Xvgrep
  570. Xvideotex
  571. Xwabbit
  572. Xwaldo
  573. Xwango
  574. Xwank
  575. Xwannabee
  576. Xwedgie
  577. Xwedgitude
  578. Xweeble
  579. Xweenie
  580. Xwetware
  581. Xwhalesong
  582. Xwhizzy
  583. Xwinkey
  584. Xwinnage
  585. Xwinnitude
  586. Xwirehead
  587. Xwonky
  588. Xworkaround
  589. Xxor
  590. Xxref
  591. Xxyzzy
  592. Xzen
  593. Xzigamorph
  594. Xzipperhead
  595. Xzorch
  596. Xzorkmid
  597. END_OF_FILE
  598. if test 3677 -ne `wc -c <'DictSrc/jargon'`; then
  599.     echo shar: \"'DictSrc/jargon'\" unpacked with wrong size!
  600. fi
  601. # end of 'DictSrc/jargon'
  602. fi
  603. if test ! -d 'Dicts' ; then
  604.     echo shar: Creating directory \"'Dicts'\"
  605.     mkdir 'Dicts'
  606. fi
  607. if test ! -d 'Docs' ; then
  608.     echo shar: Creating directory \"'Docs'\"
  609.     mkdir 'Docs'
  610. fi
  611. if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  612.   echo shar: Will not clobber existing file \"'MANIFEST'\"
  613. else
  614. echo shar: Extracting \"'MANIFEST'\" \(2395 characters\)
  615. sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
  616. X   File Name        Archive #    Description
  617. X-----------------------------------------------------------
  618. X APPENDIX                   2    miscellaneous information
  619. X BUGS                       1    list of recent bugs and possible fixes
  620. X Crack                      2    crack driver shellscript
  621. X DictSrc                    1    directory
  622. X DictSrc/bad_pws.dat        2    example extra dictionary
  623. X DictSrc/jargon             1    jargon dictionary contributed by ESR
  624. X Dicts                      1    empty directory
  625. X Docs                       1    directory
  626. X Docs/readme.ms             4    coarse nroff -ms format documentation
  627. X Docs/readme.txt            5    ascii format documentation
  628. X LICENCE                    2    licence document
  629. X MANIFEST                   1    THIS FILE
  630. X README                     1    EVERYBODY START HERE
  631. X Runtime                    1    empty directory
  632. X Scripts                    1    scripts directory
  633. X Scripts/Crack.network      2    network driver script
  634. X Scripts/RCrack             1    interface to 'rsh', 'remsh' - whatever
  635. X Scripts/clean              1    tidy-up script
  636. X Scripts/crack.mf           1    
  637. X Scripts/dicts.rules        2    rules applied to dictionary words
  638. X Scripts/do_install         1    
  639. X Scripts/do_join            1    
  640. X Scripts/do_pwc             1    
  641. X Scripts/do_ufc             1    
  642. X Scripts/gecos.rules        1    rules applied to gecos-generated words
  643. X Scripts/guess2fbk          1    crash recovery script (see docs)
  644. X Scripts/install.mf         1    
  645. X Scripts/mrgfbk             1    
  646. X Scripts/nastygram          1    
  647. X Scripts/network.conf       1    
  648. X Scripts/plaster            1    crack control script
  649. X Scripts/saltcount          1    
  650. X Scripts/shadmrg            1    
  651. X Scripts/spotless           1    tidy up and delete script
  652. X Scripts/status             1    
  653. X Sources                    1    source code directory
  654. X Sources/Makefile           1    
  655. X Sources/bytesex.c          1    
  656. X Sources/conf.h             1    configuration header file
  657. X Sources/crack-fcrypt.c     4    
  658. X Sources/crack-glob.c       1    
  659. X Sources/crack-glob.h       1    
  660. X Sources/crack-lib.c        3    
  661. X Sources/crack-pwc.c        3    password cracker main file
  662. X Sources/crack-sort.c       2    
  663. X Sources/crack-supp.c       1    
  664. X Sources/crack.h            1    
  665. X Sources/speeds.c           1    benchmark program
  666. X Sources/tester.c           1    fcrypt compatibility program
  667. X Sources/testrule.c         1    dictionary tester program
  668. X TODO                       1    List of good ideas I _already_ have
  669. END_OF_FILE
  670. if test 2395 -ne `wc -c <'MANIFEST'`; then
  671.     echo shar: \"'MANIFEST'\" unpacked with wrong size!
  672. fi
  673. # end of 'MANIFEST'
  674. fi
  675. if test -f 'README' -a "${1}" != "-c" ; then 
  676.   echo shar: Will not clobber existing file \"'README'\"
  677. else
  678. echo shar: Extracting \"'README'\" \(1243 characters\)
  679. sed "s/^X//" >'README' <<'END_OF_FILE'
  680. XThis is Crack v4.1, the "Sensible" Unix Password Cracker. 
  681. X
  682. X- Documentation is in the directory 'Docs' - go for it... 
  683. X
  684. Xdicts.rules is now up to 240 entries, mostly thanks to mycroft @
  685. Xgnu.ai.mit.edu; don't lose heart, its not as bad as all that...  3 weeks
  686. Xof CPU isn't all that long, really...  Seriously, most of the rules
  687. Xgenerate really small dictionaries, so it's not all that bad.  8-)
  688. X
  689. XThere are several additions to the dictionary rules, notably the
  690. Xcharacter class commands and the i, o, = and @ commands. 
  691. X
  692. XUse of "Crack -R" (as opposed to "Crack -r") is not recommended until I
  693. Xwrite v5.0, unless you know exactly what you're doing and why it bombs
  694. Xout on you... 
  695. X
  696. XAlso, Crack now fully supports UFC (the latest version of which is to be
  697. Xposted concurrently with Crack v4.1) - all you should have to do is
  698. Xunpack the latest version of UFC into the directory
  699. X
  700. X                ufc-crypt
  701. X
  702. Xwhich you should create in the Crack installation directory.  The
  703. Xprogram should do the rest. 
  704. X
  705. XHappy cracking !
  706. X
  707. X--
  708. X|+ Alec David Edward Muffett, Unix Programmer and Unemployed Coffee Drinker. +|
  709. X|>  aem@aber.ac.uk aem@uk.ac.aber aem%aber@ukacrl.bitnet mcsun!ukc!aber!aem  <|
  710. X| "I didn't invent the Unix Password Security problem.  I just optimised it." |
  711. END_OF_FILE
  712. if test 1243 -ne `wc -c <'README'`; then
  713.     echo shar: \"'README'\" unpacked with wrong size!
  714. fi
  715. # end of 'README'
  716. fi
  717. if test ! -d 'Runtime' ; then
  718.     echo shar: Creating directory \"'Runtime'\"
  719.     mkdir 'Runtime'
  720. fi
  721. if test ! -d 'Scripts' ; then
  722.     echo shar: Creating directory \"'Scripts'\"
  723.     mkdir 'Scripts'
  724. fi
  725. if test -f 'Scripts/RCrack' -a "${1}" != "-c" ; then 
  726.   echo shar: Will not clobber existing file \"'Scripts/RCrack'\"
  727. else
  728. echo shar: Extracting \"'Scripts/RCrack'\" \(3370 characters\)
  729. sed "s/^X//" >'Scripts/RCrack' <<'END_OF_FILE'
  730. X#!/bin/sh
  731. X
  732. X###
  733. X# This program is copyright Alec Muffett 1991, and is provided as part of
  734. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  735. X# responsibility or liability with respect to it's usage or its effect
  736. X# upon hardware or computer systems, and maintains copyright as set out in
  737. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  738. X# upwards. So there...
  739. X###
  740. X
  741. X###
  742. X# For those ignorant of 'rsh', what I am trying to build is a line of
  743. X# the form
  744. X#          rsh hostname [-n] [-l remoteuser] command [args ...]
  745. X#
  746. X###
  747. X
  748. Xmachine=`(uname) 2>&1`            # What architecture are we on ?
  749. X
  750. X###
  751. X# Map architecture to rsh-equivalent...
  752. X###
  753. X
  754. Xcase $machine in
  755. X    "HP*UX")            # Hewlett Packard boxen
  756. X        remote_shell="remsh"
  757. X        ;;
  758. X#     "XENIX"|"Xenix")        # Just a suggestion...
  759. X#        remote_shell="rcmd"
  760. X#        ;;
  761. X    *)                # default
  762. X        remote_shell="rsh"
  763. X        ;;
  764. Xesac
  765. X
  766. X###
  767. X# Are we going to kick rsh into the background, or are we going to
  768. X# background the thing on the remote end ?
  769. X###
  770. X
  771. Xasynch_mode=""
  772. X
  773. Xif [ "x$1" = "x-asynch" ]
  774. Xthen
  775. X    echo "(asynchronous $remote_shell mode)"
  776. X    asynch_mode="$1"
  777. X    shift
  778. Xelse
  779. X    echo "(remotely backgrounded mode)"
  780. Xfi
  781. X
  782. X###
  783. X# Segments of input data to read.
  784. X###
  785. X
  786. Xstartline=$1
  787. Xshift
  788. Xstopline=$1
  789. Xshift
  790. X
  791. Xdatafile=/tmp/rcrk.$$        # temporary data file
  792. X
  793. X###
  794. X# Awk reads from stdin... Create an input file for rsh...
  795. X###
  796. X
  797. Xawk -F: '
  798. XBEGIN {
  799. X    usercount = 0;
  800. X    saltcount = 0;
  801. X    startsalt = '"$startline"';
  802. X    stopsalt = '"$stopline"';
  803. X}
  804. X
  805. X{
  806. X    if (substr($3, 1, 2) != last)
  807. X    {
  808. X        saltcount++;
  809. X        last = substr($3, 1, 2);
  810. X    }
  811. X
  812. X    if (saltcount >= startsalt && saltcount <= stopsalt)
  813. X    {
  814. X        usercount++;
  815. X        print $0;
  816. X    }
  817. X}' > $datafile
  818. X
  819. X###
  820. X# Test that we should actually bother to do anything.
  821. X###
  822. X
  823. Xnumlines=`wc -l < $datafile`
  824. X
  825. X###
  826. X# Must not quote $numlines here for comparison to work
  827. X###
  828. X
  829. Xif [ $numlines = 0 ]
  830. Xthen
  831. X    echo "RCrack: Nothing left to dispatch to remote host."
  832. X    rm -f $datafile
  833. X    exit 0
  834. Xelse
  835. X    echo Salted Segment comprises $numlines users    # Don't quote this...
  836. Xfi
  837. X
  838. X###
  839. X# Now for the important bits. Create a diefile pointing to a remote diefile
  840. X# (It's easier to get Crack.network to wire $remotediefile into arglist)
  841. X###
  842. X
  843. Xremhost=$1                # Name of remote host ($2 == Crack path)
  844. Xremotediefile=$3            # Name of remote diefile
  845. Xlocaldiefile=Runtime/DR$remhost$$    # Local pointer to above
  846. X
  847. Xawk -F: '
  848. XBEGIN {
  849. X    rshell = "'"$remote_shell"'";
  850. X    rhost = "'"$remhost"'";
  851. X    rdie = "'"$remotediefile"'";
  852. X    rdie = substr(rdie,3,length(rdie) - 2);
  853. X}
  854. X
  855. X$1 == rhost {
  856. X    if ($4 != "")
  857. X    {
  858. X        rshf = "-l " $4 " -n";
  859. X    } else
  860. X    {
  861. X        rshf = "-n";
  862. X    }
  863. X    if ($5 != "")
  864. X    {
  865. X        nf = split($5, path, "/");
  866. X        ch = path[1];
  867. X        for (i = 2; i < nf; i++)
  868. X        {
  869. X            ch = ch "/" path[i];
  870. X        }
  871. X    } else
  872. X    {
  873. X        ch = "'"$CRACK_HOME_UNRES"'";
  874. X    }
  875. X}
  876. X
  877. XEND {
  878. X    print "#!/bin/sh";
  879. X    print "rm $0 && " rshell, rhost, rshf, "\"cd " ch ";" rdie "\"";
  880. X}' < Scripts/network.conf > $localdiefile
  881. X
  882. Xchmod 700 $localdiefile
  883. X
  884. Xif [ "x$asynch_mode" = "x-asynch" ]
  885. Xthen
  886. X    if [ "x$CRACK_OUT" != "x" ]
  887. X    then
  888. X        outfile=$CRACK_OUT/out.r$$
  889. X    else
  890. X        outfile=./out.r$$
  891. X    fi
  892. X
  893. X    # 'rsh' traps SIGHUP and survives OK
  894. X
  895. X    echo "Invoking: $remote_shell $@ <$datafile >$outfile 2>&1 && rm -f $datafile $localdiefile &"
  896. X    $remote_shell "$@" <$datafile >$outfile 2>&1 && rm -f $datafile $localdiefile &
  897. Xelse
  898. X    # Perfectly ordinary network crack.
  899. X    echo "Invoking: $remote_shell $@ < $datafile"
  900. X    $remote_shell "$@" < $datafile
  901. X    rm -f $datafile
  902. Xfi
  903. X
  904. Xexit 0
  905. END_OF_FILE
  906. if test 3370 -ne `wc -c <'Scripts/RCrack'`; then
  907.     echo shar: \"'Scripts/RCrack'\" unpacked with wrong size!
  908. fi
  909. chmod +x 'Scripts/RCrack'
  910. # end of 'Scripts/RCrack'
  911. fi
  912. if test -f 'Scripts/clean' -a "${1}" != "-c" ; then 
  913.   echo shar: Will not clobber existing file \"'Scripts/clean'\"
  914. else
  915. echo shar: Extracting \"'Scripts/clean'\" \(447 characters\)
  916. sed "s/^X//" >'Scripts/clean' <<'END_OF_FILE'
  917. X#!/bin/sh
  918. X
  919. X###
  920. X# This program is copyright Alec Muffett 1991, and is provided as part of
  921. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  922. X# responsibility or liability with respect to it's usage or its effect
  923. X# upon hardware or computer systems, and maintains copyright as set out in
  924. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  925. X# upwards. So there...
  926. X###
  927. X
  928. Xmake -f Scripts/crack.mf clean
  929. X
  930. Xexit 0
  931. END_OF_FILE
  932. if test 447 -ne `wc -c <'Scripts/clean'`; then
  933.     echo shar: \"'Scripts/clean'\" unpacked with wrong size!
  934. fi
  935. chmod +x 'Scripts/clean'
  936. # end of 'Scripts/clean'
  937. fi
  938. if test -f 'Scripts/crack.mf' -a "${1}" != "-c" ; then 
  939.   echo shar: Will not clobber existing file \"'Scripts/crack.mf'\"
  940. else
  941. echo shar: Extracting \"'Scripts/crack.mf'\" \(315 characters\)
  942. sed "s/^X//" >'Scripts/crack.mf' <<'END_OF_FILE'
  943. XSRCDIR=        Sources
  944. XBIGDICT=    Dicts/bigdict
  945. XUFCDIR=        ufc-crypt
  946. X
  947. Xall:
  948. X        @echo CALL TO CRACK.MF WITH NO TARGET
  949. X
  950. Xspotless:    clean
  951. X        -rm -f out.* $(BIGDICT)* Dicts/.lock*
  952. X        -Scripts/mrgfbk
  953. X
  954. Xclean:
  955. X        -rm -f Runtime/D* Runtime/P* Runtime/RD* tmp.* nohup.out
  956. X        -( cd $(SRCDIR) && make clean )
  957. X        -( cd $(UFCDIR) && make clean )
  958. END_OF_FILE
  959. if test 315 -ne `wc -c <'Scripts/crack.mf'`; then
  960.     echo shar: \"'Scripts/crack.mf'\" unpacked with wrong size!
  961. fi
  962. # end of 'Scripts/crack.mf'
  963. fi
  964. if test -f 'Scripts/do_install' -a "${1}" != "-c" ; then 
  965.   echo shar: Will not clobber existing file \"'Scripts/do_install'\"
  966. else
  967. echo shar: Extracting \"'Scripts/do_install'\" \(759 characters\)
  968. sed "s/^X//" >'Scripts/do_install' <<'END_OF_FILE'
  969. X#!/bin/sh
  970. X
  971. X###
  972. X# This program is copyright Alec Muffett 1991, and is provided as part of
  973. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  974. X# responsibility or liability with respect to it's usage or its effect
  975. X# upon hardware or computer systems, and maintains copyright as set out in
  976. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  977. X# upwards. So there...
  978. X###
  979. X
  980. Xcrack_arch=$1
  981. X
  982. X###
  983. X# Is there a binaries directory ?
  984. X###
  985. X
  986. Xif [ ! -d $crack_arch ]
  987. Xthen
  988. X    mkdir $crack_arch || exit 1
  989. Xfi
  990. X
  991. Xcd $crack_arch || exit 1                        # Can we get there from here ?
  992. X
  993. X###
  994. X# Install makefiles in our directory if necessary.
  995. X###
  996. X
  997. Xif [ ! -f Makefile ]
  998. Xthen
  999. X    cp $CRACK_HOME/Scripts/install.mf Makefile || exit 1
  1000. Xfi
  1001. X
  1002. Xexit 0
  1003. END_OF_FILE
  1004. if test 759 -ne `wc -c <'Scripts/do_install'`; then
  1005.     echo shar: \"'Scripts/do_install'\" unpacked with wrong size!
  1006. fi
  1007. chmod +x 'Scripts/do_install'
  1008. # end of 'Scripts/do_install'
  1009. fi
  1010. if test -f 'Scripts/do_join' -a "${1}" != "-c" ; then 
  1011.   echo shar: Will not clobber existing file \"'Scripts/do_join'\"
  1012. else
  1013. echo shar: Extracting \"'Scripts/do_join'\" \(1910 characters\)
  1014. sed "s/^X//" >'Scripts/do_join' <<'END_OF_FILE'
  1015. X#!/bin/sh
  1016. X
  1017. X###
  1018. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1019. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1020. X# responsibility or liability with respect to it's usage or its effect
  1021. X# upon hardware or computer systems, and maintains copyright as set out in
  1022. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1023. X# upwards. So there...
  1024. X###
  1025. X
  1026. X###
  1027. X# Empty the output file, Error if cannot create
  1028. X###
  1029. X
  1030. Xwarn=$1
  1031. Xshift
  1032. Xcp /dev/null $warn || exit 1
  1033. X
  1034. X###
  1035. X# Have we got feedback ?
  1036. X###
  1037. X
  1038. Xfbkfiles=`sh -c "echo Runtime/F*"`
  1039. Xif [ "$fbkfiles" = "Runtime/F*" ]
  1040. Xthen
  1041. X    fbkfiles=""
  1042. Xfi
  1043. X
  1044. X###
  1045. X# As Walt Disney would say, we start with a simple bracket:-
  1046. X###
  1047. X
  1048. X(
  1049. X    if [ "$fbkfiles" != "" ]
  1050. X    then
  1051. X        cat $fbkfiles
  1052. X    fi
  1053. X
  1054. X    (
  1055. X        for file in $*
  1056. X        do
  1057. X            awk '/^[A-Za-z0-9]/ {print "'"$file"':" $0}' < $file
  1058. X        done
  1059. X    ) |
  1060. X    sort -t: +2
  1061. X) |
  1062. Xawk -F: '
  1063. XBEGIN {
  1064. X    FS = ":";
  1065. X    numf = 8;        # number of fields in a pwent, + 1
  1066. X    warn="'"$warn"'";
  1067. X    date = "'"`date`"'";
  1068. X    date = substr(date, 5, 15);
  1069. X}
  1070. X
  1071. X/^!fb!/ {
  1072. X    if ($3 == "N")
  1073. X    {
  1074. X        guessable[$2] = "N";
  1075. X    } else if ($3 == "Y")
  1076. X    {
  1077. X        guessable[$2] = "Y";
  1078. X        decrypt[$2] = $4;
  1079. X    } else
  1080. X    {
  1081. X        print "Strange feedback: ", $0 >> "/dev/tty";
  1082. X    }
  1083. X    next;
  1084. X}
  1085. X
  1086. XNF != numf {
  1087. X    printf("join: Rejected '%s': does not have %d fields\n", \
  1088. X        $0, numf) >> warn;
  1089. X    next;
  1090. X}
  1091. X
  1092. X$3 == "" {
  1093. X    printf("join: %s Warning! %s (%s in %s) has a NULL password!\n", \
  1094. X        date, $2, $7, $1) >> warn;
  1095. X    next;
  1096. X}
  1097. X
  1098. Xindex($3, "*") != 0 || \
  1099. Xindex($3, "!") != 0 || \
  1100. Xindex($3, " ") != 0 {
  1101. X    printf("join: %s User %s (in %s) has a locked password:- %s\n", \
  1102. X        date, $2, $1, $3) >> warn;
  1103. X    next;
  1104. X}
  1105. X
  1106. X{
  1107. X    if (guessable[$3] == "N")
  1108. X    {
  1109. X        next;
  1110. X    } else if (guessable[$3] == "Y")
  1111. X    {
  1112. X        if ($4 == 0)
  1113. X        {
  1114. X            msg = "ROOT PASSWORD ";
  1115. X        } else
  1116. X        {
  1117. X            msg = "";
  1118. X        }
  1119. X        printf("join: %s Guessed %s%s (%s in %s) [%s] %s\n", \
  1120. X            date, msg, $2, $8, $1, decrypt[$3], $3) >> warn;
  1121. X    } else
  1122. X    {
  1123. X        print $0;
  1124. X    }
  1125. X}'
  1126. X
  1127. Xexit 0
  1128. END_OF_FILE
  1129. if test 1910 -ne `wc -c <'Scripts/do_join'`; then
  1130.     echo shar: \"'Scripts/do_join'\" unpacked with wrong size!
  1131. fi
  1132. chmod +x 'Scripts/do_join'
  1133. # end of 'Scripts/do_join'
  1134. fi
  1135. if test -f 'Scripts/do_pwc' -a "${1}" != "-c" ; then 
  1136.   echo shar: Will not clobber existing file \"'Scripts/do_pwc'\"
  1137. else
  1138. echo shar: Extracting \"'Scripts/do_pwc'\" \(658 characters\)
  1139. sed "s/^X//" >'Scripts/do_pwc' <<'END_OF_FILE'
  1140. X#!/bin/sh
  1141. X
  1142. X###
  1143. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1144. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1145. X# responsibility or liability with respect to it's usage or its effect
  1146. X# upon hardware or computer systems, and maintains copyright as set out in
  1147. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1148. X# upwards. So there...
  1149. X###
  1150. X
  1151. Xcrack_arch=$1
  1152. X
  1153. Xif [ ! -d $crack_arch ]
  1154. Xthen
  1155. X    Scripts/do_install $crack_arch || exit 1
  1156. Xfi
  1157. X
  1158. Xcd $crack_arch || exit 1                        # Can we get there from here ?
  1159. X
  1160. X###
  1161. X# Make the password cracker
  1162. X###
  1163. X
  1164. Xmake crack-pwc || exit 1
  1165. X
  1166. X# bye bye
  1167. Xexit 0
  1168. END_OF_FILE
  1169. if test 658 -ne `wc -c <'Scripts/do_pwc'`; then
  1170.     echo shar: \"'Scripts/do_pwc'\" unpacked with wrong size!
  1171. fi
  1172. chmod +x 'Scripts/do_pwc'
  1173. # end of 'Scripts/do_pwc'
  1174. fi
  1175. if test -f 'Scripts/do_ufc' -a "${1}" != "-c" ; then 
  1176.   echo shar: Will not clobber existing file \"'Scripts/do_ufc'\"
  1177. else
  1178. echo shar: Extracting \"'Scripts/do_ufc'\" \(1437 characters\)
  1179. sed "s/^X//" >'Scripts/do_ufc' <<'END_OF_FILE'
  1180. X#!/bin/sh
  1181. X
  1182. X###
  1183. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1184. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1185. X# responsibility or liability with respect to it's usage or its effect
  1186. X# upon hardware or computer systems, and maintains copyright as set out in
  1187. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1188. X# upwards. So there...
  1189. X###
  1190. X
  1191. X###
  1192. X# This script tries to provide an intelligent hook to the UFC-crypt library
  1193. X###
  1194. X
  1195. Xif [ "x$CRACK_HOME" = "x" ]
  1196. Xthen
  1197. X    CRACK_HOME=".."        # for would-be developers in the Sources dir
  1198. Xfi
  1199. X
  1200. XUFCLIB=libufc.a
  1201. XSRCDIR=$CRACK_HOME/Sources
  1202. XUFCDIR=$CRACK_HOME/ufc-crypt
  1203. X
  1204. Xrm -f $SRCDIR/libufc.a        # just in case
  1205. X
  1206. Xecho "Looking for UFC-crypt in $UFCDIR"
  1207. X
  1208. Xif [ ! -d $UFCDIR ]
  1209. Xthen
  1210. X    echo "Cannot find $UFCDIR - cannot use UFC-crypt on this platform"
  1211. X    exit 1
  1212. Xfi
  1213. X
  1214. Xcd $UFCDIR || exit 1
  1215. X
  1216. Xecho "Crack: Trying to compile UFC-crypt (external product by Michael Glad)"
  1217. Xecho "Crack: Working in $UFCDIR"
  1218. X
  1219. Xif [ -f libufc.a ]
  1220. Xthen
  1221. X    echo "Library libufc.a exists. Testing viability..."
  1222. X    rm -f ufc
  1223. X    make ufc
  1224. X    if [ $? = 0 ]
  1225. X    then
  1226. X        echo "Testing ufc"
  1227. X        ./ufc 1
  1228. X        if [ $? = 0 ]
  1229. X        then
  1230. X            echo "Crack will use UFC-crypt on this platform"
  1231. X            exit 0
  1232. X        fi
  1233. X    fi
  1234. X    echo "Library is unviable on this architecture. Remaking"
  1235. Xfi
  1236. X
  1237. Xmake clean || exit 1
  1238. X
  1239. Xmake ufc || exit 1
  1240. X
  1241. Xecho "Testing ufc"
  1242. X./ufc 1 || exit 1
  1243. X
  1244. Xecho "Crack WILL use $UFCDIR/libufc.a on this platform."
  1245. Xexit 0
  1246. END_OF_FILE
  1247. if test 1437 -ne `wc -c <'Scripts/do_ufc'`; then
  1248.     echo shar: \"'Scripts/do_ufc'\" unpacked with wrong size!
  1249. fi
  1250. chmod +x 'Scripts/do_ufc'
  1251. # end of 'Scripts/do_ufc'
  1252. fi
  1253. if test -f 'Scripts/gecos.rules' -a "${1}" != "-c" ; then 
  1254.   echo shar: Will not clobber existing file \"'Scripts/gecos.rules'\"
  1255. else
  1256. echo shar: Extracting \"'Scripts/gecos.rules'\" \(693 characters\)
  1257. sed "s/^X//" >'Scripts/gecos.rules' <<'END_OF_FILE'
  1258. X###
  1259. X# Try to avoid redundancy in this file... AEM
  1260. X###
  1261. X
  1262. X>2
  1263. X>2/?ul
  1264. X>2/?lu
  1265. X>2ud
  1266. X>2uf
  1267. X>2ur
  1268. X>2cf
  1269. X>2cr
  1270. X>2rc
  1271. X>2ld
  1272. X>2lf
  1273. X>2lr
  1274. X>2<8c$!
  1275. X>2<8c$.
  1276. X>2<8c$?
  1277. X>2^($)
  1278. X
  1279. X>2<8$!
  1280. X>2<8$.
  1281. X>2<8$0
  1282. X>2<8$1
  1283. X>2<8$2
  1284. X>2<8$3
  1285. X>2<8$4
  1286. X>2<8$5
  1287. X>2<8$6
  1288. X>2<8$7
  1289. X>2<8$8
  1290. X>2<8$9
  1291. X
  1292. X>2<8/?ul$!
  1293. X>2<8/?ul$.
  1294. X>2<8/?ul$?
  1295. X>2<8/?ul$0
  1296. X>2<8/?ul$1
  1297. X>2<8/?ul$2
  1298. X>2<8/?ul$3
  1299. X>2<8/?ul$4
  1300. X>2<8/?ul$5
  1301. X>2<8/?ul$6
  1302. X>2<8/?ul$7
  1303. X>2<8/?ul$8
  1304. X>2<8/?ul$9
  1305. X
  1306. X>2<8/?lu$!
  1307. X>2<8/?lu$.
  1308. X>2<8/?lu$?
  1309. X>2<8/?lu$0
  1310. X>2<8/?lu$1
  1311. X>2<8/?lu$2
  1312. X>2<8/?lu$3
  1313. X>2<8/?lu$4
  1314. X>2<8/?lu$5
  1315. X>2<8/?lu$6
  1316. X>2<8/?lu$7
  1317. X>2<8/?lu$8
  1318. X>2<8/?lu$9
  1319. X
  1320. X!?d>2^0
  1321. X!?d>2^1
  1322. X!?d>2^2
  1323. X!?d>2^3
  1324. X!?d>2^4
  1325. X!?d>2^5
  1326. X!?d>2^6
  1327. X!?d>2^7
  1328. X!?d>2^8
  1329. X!?d>2^9
  1330. X
  1331. X>2/?ul^0
  1332. X>2/?ul^1
  1333. X>2/?ul^2
  1334. X>2/?ul^3
  1335. X>2/?ul^4
  1336. X>2/?ul^5
  1337. X>2/?ul^6
  1338. X>2/?ul^7
  1339. X>2/?ul^8
  1340. X>2/?ul^9
  1341. END_OF_FILE
  1342. if test 693 -ne `wc -c <'Scripts/gecos.rules'`; then
  1343.     echo shar: \"'Scripts/gecos.rules'\" unpacked with wrong size!
  1344. fi
  1345. # end of 'Scripts/gecos.rules'
  1346. fi
  1347. if test -f 'Scripts/guess2fbk' -a "${1}" != "-c" ; then 
  1348.   echo shar: Will not clobber existing file \"'Scripts/guess2fbk'\"
  1349. else
  1350. echo shar: Extracting \"'Scripts/guess2fbk'\" \(859 characters\)
  1351. sed "s/^X//" >'Scripts/guess2fbk' <<'END_OF_FILE'
  1352. X#!/bin/sh
  1353. X
  1354. X###
  1355. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1356. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1357. X# responsibility or liability with respect to it's usage or its effect
  1358. X# upon hardware or computer systems, and maintains copyright as set out in
  1359. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1360. X# upwards. So there...
  1361. X###
  1362. X
  1363. X###
  1364. X# guess2fbk : generates a 'feedback' file on stdout from output format
  1365. X# data.  On occasions when emergency construction is useful.
  1366. X###
  1367. X
  1368. Xif [ $# = 0 ]
  1369. Xthen
  1370. X    echo "Usage:    $0 outputfile [...]"
  1371. X    exit 1
  1372. Xfi
  1373. X
  1374. X###
  1375. X# Had to modify this awk script now that passwords are turning up with spaces
  1376. X###
  1377. X
  1378. Xcat $* |
  1379. Xawk '
  1380. X/Guessed/{
  1381. X    start = index($0, "[");
  1382. X    stop = index($0, "]");
  1383. X    print "!fb!:" $NF ":Y:" substr($0, start+1, stop - start - 1)
  1384. X}
  1385. X' |
  1386. Xsort |
  1387. Xuniq
  1388. X
  1389. END_OF_FILE
  1390. if test 859 -ne `wc -c <'Scripts/guess2fbk'`; then
  1391.     echo shar: \"'Scripts/guess2fbk'\" unpacked with wrong size!
  1392. fi
  1393. chmod +x 'Scripts/guess2fbk'
  1394. # end of 'Scripts/guess2fbk'
  1395. fi
  1396. if test -f 'Scripts/install.mf' -a "${1}" != "-c" ; then 
  1397.   echo shar: Will not clobber existing file \"'Scripts/install.mf'\"
  1398. else
  1399. echo shar: Extracting \"'Scripts/install.mf'\" \(726 characters\)
  1400. sed "s/^X//" >'Scripts/install.mf' <<'END_OF_FILE'
  1401. X###
  1402. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1403. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1404. X# responsibility or liability with respect to it's usage or its effect
  1405. X# upon hardware or computer systems, and maintains copyright as set out in
  1406. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1407. X# upwards. So there...
  1408. X###
  1409. X
  1410. XSD=    ../Sources
  1411. XSRC1=    $(SD)/conf.h $(SD)/crack-fcrypt.c $(SD)/crack-glob.c
  1412. XSRC2=    $(SD)/crack-glob.h $(SD)/crack-lib.c $(SD)/crack-pwc.c
  1413. XSRC3=    $(SD)/crack-sort.c $(SD)/crack-supp.c $(SD)/crack.h
  1414. XSRCS=    $(SRC1) $(SRC2) $(SRC3)
  1415. X
  1416. Xcrack-pwc: $(SRCS)
  1417. X    ( cd $(SD) ; make clean )
  1418. X    ( cd $(SD) ; make crack-pwc.which )
  1419. X    cp $(SD)/crack-pwc .
  1420. END_OF_FILE
  1421. if test 726 -ne `wc -c <'Scripts/install.mf'`; then
  1422.     echo shar: \"'Scripts/install.mf'\" unpacked with wrong size!
  1423. fi
  1424. # end of 'Scripts/install.mf'
  1425. fi
  1426. if test -f 'Scripts/mrgfbk' -a "${1}" != "-c" ; then 
  1427.   echo shar: Will not clobber existing file \"'Scripts/mrgfbk'\"
  1428. else
  1429. echo shar: Extracting \"'Scripts/mrgfbk'\" \(1243 characters\)
  1430. sed "s/^X//" >'Scripts/mrgfbk' <<'END_OF_FILE'
  1431. X#!/bin/sh
  1432. X
  1433. X###
  1434. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1435. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1436. X# responsibility or liability with respect to it's usage or its effect
  1437. X# upon hardware or computer systems, and maintains copyright as set out in
  1438. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1439. X# upwards. So there...
  1440. X###
  1441. X
  1442. X###
  1443. X# mrgfbk - a shell script to merge all of your feedback files into one
  1444. X# before starting a Crack -F on a set of new dictionaries. This program
  1445. X# is called from "Scripts/spotless"
  1446. X###
  1447. X# mrgfbk takes all the feedback files and filters out all the GUESSED
  1448. X# passwords, and saves them to a new feedback file.  The UNGUESSED
  1449. X# passwords are deleted, so that the new dictionaries can have a go at
  1450. X# them 
  1451. X###
  1452. X
  1453. Xtf=./mfb$$
  1454. X
  1455. Xecho ""
  1456. Xecho "Saving all CRACKABLE passwords.
  1457. XDo you also want to save your UNCRACKABLE passwords ?
  1458. XAnswer NO if you have changed some rules or modified source dictionaries
  1459. X(default: yes) "
  1460. X
  1461. Xread answer
  1462. X
  1463. Xcase $answer in
  1464. X    [Nn]*)
  1465. X        cat Runtime/F* |
  1466. X        awk -F: '$3 == "Y"' |
  1467. X        sort |
  1468. X        uniq > $tf
  1469. X        ;;
  1470. X    *)
  1471. X        cat Runtime/F* |
  1472. X        sort |
  1473. X        uniq > $tf
  1474. X        ;;
  1475. Xesac
  1476. X
  1477. Xrm -f Runtime/F*
  1478. X
  1479. Xcp $tf Runtime/F.merged
  1480. X
  1481. Xrm -f $tf
  1482. X
  1483. Xexit 0
  1484. END_OF_FILE
  1485. if test 1243 -ne `wc -c <'Scripts/mrgfbk'`; then
  1486.     echo shar: \"'Scripts/mrgfbk'\" unpacked with wrong size!
  1487. fi
  1488. chmod +x 'Scripts/mrgfbk'
  1489. # end of 'Scripts/mrgfbk'
  1490. fi
  1491. if test -f 'Scripts/nastygram' -a "${1}" != "-c" ; then 
  1492.   echo shar: Will not clobber existing file \"'Scripts/nastygram'\"
  1493. else
  1494. echo shar: Extracting \"'Scripts/nastygram'\" \(1452 characters\)
  1495. sed "s/^X//" >'Scripts/nastygram' <<'END_OF_FILE'
  1496. X#!/bin/sh
  1497. X
  1498. X###
  1499. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1500. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1501. X# responsibility or liability with respect to it's usage or its effect
  1502. X# upon hardware or computer systems, and maintains copyright as set out in
  1503. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1504. X# upwards. So there...
  1505. X###
  1506. X
  1507. Xfor username in $*
  1508. Xdo
  1509. X        mail $username <<EndOfLetter
  1510. X                                        `date`
  1511. X
  1512. XDear $username,
  1513. X
  1514. XThe login password you use for the account "$username" has been found to
  1515. Xbe insecure by the "Crack" password guessing program.  You must change
  1516. Xyour password as soon as possible. 
  1517. X
  1518. XPasswords which are not easily compromised by programs such as "Crack"
  1519. Xare based upon non-dictionary words, hence any word which might appear
  1520. Xin a dictionary, EVEN IF IT IS SUPPOSEDLY A OBSCURE WORD is unsuitable. 
  1521. X
  1522. XSimilarly, any password which is derived from your name, department or
  1523. Xother personal information is unsuitable because it can be easily
  1524. Xguessed. 
  1525. X
  1526. XIt is important that password security be maintained at a high level for
  1527. Xthe sake of ALL the people who use these computers.  We thank you for
  1528. Xyour co-operation in this matter. 
  1529. X
  1530. X                                Yours,
  1531. X
  1532. X                                        Alec Muffett, Aberystwyth, UK
  1533. X                                        pp Your System Administrator
  1534. XEndOfLetter
  1535. Xdone
  1536. END_OF_FILE
  1537. if test 1452 -ne `wc -c <'Scripts/nastygram'`; then
  1538.     echo shar: \"'Scripts/nastygram'\" unpacked with wrong size!
  1539. fi
  1540. chmod +x 'Scripts/nastygram'
  1541. # end of 'Scripts/nastygram'
  1542. fi
  1543. if test -f 'Scripts/network.conf' -a "${1}" != "-c" ; then 
  1544.   echo shar: Will not clobber existing file \"'Scripts/network.conf'\"
  1545. else
  1546. echo shar: Extracting \"'Scripts/network.conf'\" \(2365 characters\)
  1547. sed "s/^X//" >'Scripts/network.conf' <<'END_OF_FILE'
  1548. X###
  1549. X# Format of this file:-
  1550. X###
  1551. X#
  1552. X# host:binary type:relative power:rsh user:crack path:crack flags:comment
  1553. X#
  1554. X#    host = hostname to 'rsh' to
  1555. X#    binary type = type of executable to build on this sort of machine
  1556. X#    relative power = power of host relative to weakest machine
  1557. X#    rsh user = username to 'rsh -l' to, if not same as current user.
  1558. X#    crack path = full path name of Crack on host (deft: $CRACK_HOME/Crack)
  1559. X#    crack flags = additional flags to add to crack command line on that host
  1560. X#    comment = anything, really, for your reference
  1561. X#
  1562. X#    1) Don't bother specifying "-F" amongst "crack flags" as the
  1563. X#    one which you use on the command line will be passed across.
  1564. X#
  1565. X#    2) You CAN specify "-f" here, to throw the remote password cracker
  1566. X#    into foreground mode for non-NFS working, but please read the docs
  1567. X#    thoroughly first.
  1568. X###
  1569. X# I have specified relative power here as the number of fcrypts per second
  1570. X# that each host is (roughly) capable of. This is a perfectly good way to
  1571. X# define relative power, but if you are at a loss, call your weakest machine
  1572. X# '1', and measure all others in terms of that.
  1573. X###
  1574. X
  1575. X#### Mainframe power boxes
  1576. X#aberda:mipsel:600:::-n10: Mainframe Dec 5830
  1577. X#aberdb:mipsel:600:::-n10: Mainframe Dec 5830
  1578. X##aberdc:mipsel:1200:::: Mainframe DecStation 5000/200
  1579. X#aberdq:sun4:1000:::: Mainframe Sun 4/330
  1580. X
  1581. X#### Some of the CS machines over an rsh link - souped up Sun 3/50s
  1582. X##odin:sun3:50::~aem/Crack/Crack:-n10 -f: Computer Science Server
  1583. X##thor:sun3:50::~aem/Crack/Crack:-n10 -f: Computer Science Server
  1584. X
  1585. X#### Colour DECStation 2100's
  1586. X#decgca:mipsel:700:::-n4: Graphics Room DecStation 2100
  1587. X#decgcb:mipsel:700:::-n4: Graphics Room DecStation 2100
  1588. X#decgcc:mipsel:700:::-n4: Graphics Room DecStation 2100
  1589. X#decgcd:mipsel:700:::-n4: Graphics Room DecStation 2100
  1590. X##decgce:mipsel:700:::-n4: Nigel's 2100 gets switched off nites
  1591. X
  1592. X#### Monochrome DECStation 2100's
  1593. X#decgma:mipsel:700:::-n4: Graphics Room DecStation 2100
  1594. X##decgmb:mipsel:700:::-n4:DecStation 2100 cannabalised for parts
  1595. X##decgmc:mipsel:700:::-n4: Graphics Room DecStation 2100
  1596. X##decgmd:mipsel:700:::-n4: Graphics Room DecStation 2100
  1597. X##decgme:mipsel:700:::-n4: Graphics Room DecStation 2100
  1598. X
  1599. X#### Sun 3/50C's which are barely worth bothering about
  1600. X##sunga:sun3:100:::-n4: Graphics Room Sun 3/50
  1601. X##sunga:sun3:100:::-n4: Graphics Room Sun 3/50
  1602. X##sunga:sun3:100:::-n4: Graphics Room Sun 3/50
  1603. END_OF_FILE
  1604. if test 2365 -ne `wc -c <'Scripts/network.conf'`; then
  1605.     echo shar: \"'Scripts/network.conf'\" unpacked with wrong size!
  1606. fi
  1607. # end of 'Scripts/network.conf'
  1608. fi
  1609. if test -f 'Scripts/plaster' -a "${1}" != "-c" ; then 
  1610.   echo shar: Will not clobber existing file \"'Scripts/plaster'\"
  1611. else
  1612. echo shar: Extracting \"'Scripts/plaster'\" \(664 characters\)
  1613. sed "s/^X//" >'Scripts/plaster' <<'END_OF_FILE'
  1614. X#!/bin/sh
  1615. X
  1616. X###
  1617. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1618. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1619. X# responsibility or liability with respect to it's usage or its effect
  1620. X# upon hardware or computer systems, and maintains copyright as set out in
  1621. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1622. X# upwards. So there...
  1623. X###
  1624. X
  1625. X###
  1626. X# This program provides a quick network murder if running "Crack -network"
  1627. X###
  1628. X# The name is Chris Samuel's fault... "Plaster the Cracks" indeed...
  1629. X# Mail admiration of this joke to ccs7@aber.ac.uk
  1630. X###
  1631. X
  1632. Xfor i in Runtime/D*
  1633. Xdo
  1634. X    echo $i
  1635. X    $i
  1636. Xdone
  1637. X
  1638. Xexit 0
  1639. END_OF_FILE
  1640. if test 664 -ne `wc -c <'Scripts/plaster'`; then
  1641.     echo shar: \"'Scripts/plaster'\" unpacked with wrong size!
  1642. fi
  1643. chmod +x 'Scripts/plaster'
  1644. # end of 'Scripts/plaster'
  1645. fi
  1646. if test -f 'Scripts/saltcount' -a "${1}" != "-c" ; then 
  1647.   echo shar: Will not clobber existing file \"'Scripts/saltcount'\"
  1648. else
  1649. echo shar: Extracting \"'Scripts/saltcount'\" \(627 characters\)
  1650. sed "s/^X//" >'Scripts/saltcount' <<'END_OF_FILE'
  1651. X#!/bin/sh
  1652. X
  1653. X###
  1654. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1655. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1656. X# responsibility or liability with respect to it's usage or its effect
  1657. X# upon hardware or computer systems, and maintains copyright as set out in
  1658. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1659. X# upwards. So there...
  1660. X###
  1661. X
  1662. X###
  1663. X# Count the number of individual salts in do_join format...
  1664. X###
  1665. X
  1666. Xawk -F: '
  1667. XBEGIN {
  1668. X    i = 0;        # Just in case there is no input
  1669. X}
  1670. Xsubstr($3, 1, 2) != last {
  1671. X    i++;
  1672. X    last = substr($3, 1, 2);
  1673. X}
  1674. XEND {
  1675. X    print i;
  1676. X}'
  1677. X
  1678. Xexit 0
  1679. END_OF_FILE
  1680. if test 627 -ne `wc -c <'Scripts/saltcount'`; then
  1681.     echo shar: \"'Scripts/saltcount'\" unpacked with wrong size!
  1682. fi
  1683. chmod +x 'Scripts/saltcount'
  1684. # end of 'Scripts/saltcount'
  1685. fi
  1686. if test -f 'Scripts/shadmrg' -a "${1}" != "-c" ; then 
  1687.   echo shar: Will not clobber existing file \"'Scripts/shadmrg'\"
  1688. else
  1689. echo shar: Extracting \"'Scripts/shadmrg'\" \(948 characters\)
  1690. sed "s/^X//" >'Scripts/shadmrg' <<'END_OF_FILE'
  1691. X#!/bin/sh
  1692. X
  1693. X###
  1694. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1695. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1696. X# responsibility or liability with respect to it's usage or its effect
  1697. X# upon hardware or computer systems, and maintains copyright as set out in
  1698. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1699. X# upwards. So there...
  1700. X###
  1701. X
  1702. Xshadow=/etc/shadow
  1703. Xpasswd=/etc/passwd
  1704. X
  1705. X###
  1706. X# Merge /etc/shadow & /etc/passwd for Crack.  Assume 7 fields for /etc/passwd,
  1707. X# and other for /etc/shadow
  1708. X###
  1709. X
  1710. Xcat $passwd $shadow |
  1711. Xawk -F: '
  1712. XBEGIN {
  1713. X    OFS = ":";
  1714. X}
  1715. X
  1716. XNF == 7 {
  1717. X    pwents[$1] = $0;
  1718. X}
  1719. X
  1720. XNF != 7 {
  1721. X    shadow_pw[$1] = $2;
  1722. X}
  1723. X
  1724. XEND {
  1725. X    for (pw_name in pwents)
  1726. X    {
  1727. X        fields = split(pwents[pw_name], pwd, ":");
  1728. X
  1729. X        if (shadow_pw[pwd[1]] != "LOCKED")
  1730. X        {
  1731. X            print     pwd[1], \
  1732. X                shadow_pw[pwd[1]], \
  1733. X                pwd[3], \
  1734. X                pwd[4], \
  1735. X                    pwd[5], \
  1736. X                    pwd[6], \
  1737. X                    pwd[7];
  1738. X        }
  1739. X    }
  1740. X}'
  1741. END_OF_FILE
  1742. if test 948 -ne `wc -c <'Scripts/shadmrg'`; then
  1743.     echo shar: \"'Scripts/shadmrg'\" unpacked with wrong size!
  1744. fi
  1745. chmod +x 'Scripts/shadmrg'
  1746. # end of 'Scripts/shadmrg'
  1747. fi
  1748. if test -f 'Scripts/spotless' -a "${1}" != "-c" ; then 
  1749.   echo shar: Will not clobber existing file \"'Scripts/spotless'\"
  1750. else
  1751. echo shar: Extracting \"'Scripts/spotless'\" \(554 characters\)
  1752. sed "s/^X//" >'Scripts/spotless' <<'END_OF_FILE'
  1753. X#!/bin/sh
  1754. X
  1755. X###
  1756. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1757. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1758. X# responsibility or liability with respect to it's usage or its effect
  1759. X# upon hardware or computer systems, and maintains copyright as set out in
  1760. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1761. X# upwards. So there...
  1762. X###
  1763. X
  1764. Xecho "Are you sure that you want to do this ? (no)"
  1765. Xread ans
  1766. X
  1767. Xcase $ans in
  1768. X    [Yy]*)
  1769. X        make -f Scripts/crack.mf spotless
  1770. X        ;;
  1771. X    *)
  1772. X        ;;
  1773. Xesac
  1774. X
  1775. Xexit 0
  1776. END_OF_FILE
  1777. if test 554 -ne `wc -c <'Scripts/spotless'`; then
  1778.     echo shar: \"'Scripts/spotless'\" unpacked with wrong size!
  1779. fi
  1780. chmod +x 'Scripts/spotless'
  1781. # end of 'Scripts/spotless'
  1782. fi
  1783. if test -f 'Scripts/status' -a "${1}" != "-c" ; then 
  1784.   echo shar: Will not clobber existing file \"'Scripts/status'\"
  1785. else
  1786. echo shar: Extracting \"'Scripts/status'\" \(630 characters\)
  1787. sed "s/^X//" >'Scripts/status' <<'END_OF_FILE'
  1788. X#!/bin/sh
  1789. X
  1790. X###
  1791. X# This program is copyright Alec Muffett 1991, and is provided as part of
  1792. X# the Crack v4.0 Password Cracking package.  The author disclaims all
  1793. X# responsibility or liability with respect to it's usage or its effect
  1794. X# upon hardware or computer systems, and maintains copyright as set out in
  1795. X# the "LICENCE" document which accompanies distributions of Crack v4.0 and
  1796. X# upwards. So there...
  1797. X###
  1798. X
  1799. Xcat Scripts/network.conf | 
  1800. Xawk -F: '
  1801. X/^[A-Za-z]/{
  1802. X    print "echo ::: Calling", $1, " :-";
  1803. X
  1804. X    if ($4 == "")
  1805. X    {
  1806. X        rshf = "-n";
  1807. X    } else
  1808. X    {
  1809. X        rshf = "-n -l " $4;
  1810. X    }
  1811. X    print "rsh ", $1, rshf, "\"uptime ; ps x\"";
  1812. X} ' |
  1813. Xsh
  1814. X
  1815. Xexit 0
  1816. END_OF_FILE
  1817. if test 630 -ne `wc -c <'Scripts/status'`; then
  1818.     echo shar: \"'Scripts/status'\" unpacked with wrong size!
  1819. fi
  1820. chmod +x 'Scripts/status'
  1821. # end of 'Scripts/status'
  1822. fi
  1823. if test ! -d 'Sources' ; then
  1824.     echo shar: Creating directory \"'Sources'\"
  1825.     mkdir 'Sources'
  1826. fi
  1827. if test -f 'Sources/Makefile' -a "${1}" != "-c" ; then 
  1828.   echo shar: Will not clobber existing file \"'Sources/Makefile'\"
  1829. else
  1830. echo shar: Extracting \"'Sources/Makefile'\" \(1905 characters\)
  1831. sed "s/^X//" >'Sources/Makefile' <<'END_OF_FILE'
  1832. X###
  1833. X# Revised Makefile for Crack v4.1 - AEM, Feb 14 1992
  1834. X###
  1835. X
  1836. XLIBS=
  1837. XCFLAGS=        -O
  1838. XPWC=         crack-pwc
  1839. XFCRYPT=     crack-fcrypt.o
  1840. XOBJS=         crack-lib.o crack-glob.o crack-supp.o crack-sort.o
  1841. XUFCLIB=        ../ufc-crypt/libufc.a
  1842. XTRUNS=        1000
  1843. X
  1844. X###
  1845. X# The reason for the direct reference to libufc.a is to get round
  1846. X# obnoxious problems with ranlibbing a file after copying it on some
  1847. X# architectures. 
  1848. X###
  1849. X
  1850. X$(PWC).which:
  1851. X    @echo Choosing between Crack.fcrypt and Crack.ufc
  1852. X    -((../Scripts/do_ufc && make $(PWC).ufc) || make $(PWC).fcrypt)
  1853. X
  1854. X$(PWC).fcrypt:    $(OBJS) $(FCRYPT) $(PWC).o
  1855. X        $(CC) $(CFLAGS) -o $(PWC) $(PWC).o $(OBJS) $(FCRYPT) $(LIBS)
  1856. X
  1857. X$(PWC).ufc:    $(OBJS) $(PWC).o
  1858. X        $(CC) $(CFLAGS) -o $(PWC) $(PWC).o $(OBJS) $(UFCLIB) $(LIBS)
  1859. X
  1860. Xtestrule:    testrule.o crack-lib.o
  1861. X        $(CC) $(CFLAGS) -o $@ testrule.o crack-lib.o
  1862. X
  1863. Xtester:        tester.o $(OBJS) $(FCRYPT)
  1864. X        $(CC) $(CFLAGS) -o $@ tester.o $(OBJS) $(FCRYPT)
  1865. X
  1866. Xspeedufc:    speeds.c $(OBJS) $(UFC)
  1867. X        ../Scripts/do_ufc
  1868. X        $(CC) $(CFLAGS) -DT1 -o $@ speeds.c $(OBJS) $(UFCLIB)
  1869. X
  1870. Xspeedfcrypt:    speeds.c $(OBJS) $(FCRYPT)
  1871. X        $(CC) $(CFLAGS) -DT1 -o $@ speeds.c $(OBJS) $(FCRYPT)
  1872. X
  1873. Xspeedxform:    speeds.c $(OBJS) $(FCRYPT)
  1874. X        $(CC) $(CFLAGS) -DT2 -o $@ speeds.c $(OBJS) $(FCRYPT)
  1875. X
  1876. Xspeedcrypt:    speeds.c $(OBJS) $(FCRYPT)
  1877. X        $(CC) $(CFLAGS) -o $@ speeds.c $(OBJS) $(FCRYPT)
  1878. X
  1879. Xtests:        tester speedcrypt speedfcrypt speedxform speedufc
  1880. X        -tester $(TRUNS)
  1881. X        -speedcrypt
  1882. X        -speedfcrypt
  1883. X        -speedxform
  1884. X        -speedufc
  1885. X
  1886. Xbytesex:     bytesex.o
  1887. X        $(CC) $(CFLAGS) -o $@ bytesex.o
  1888. X
  1889. X$(FCRYPT):    crack-fcrypt.c crack.h bytesex
  1890. X        $(CC) $(CFLAGS) `./bytesex` -c crack-fcrypt.c
  1891. X
  1892. X$(PWC).o:    crack.h conf.h
  1893. X
  1894. Xcrack-glob.o:    crack.h
  1895. X
  1896. Xcrack-lib.o:    crack.h conf.h
  1897. X
  1898. Xcrack-sort.o:    crack.h
  1899. X
  1900. Xcrack-supp.o:    crack.h conf.h
  1901. X
  1902. Xtestrule.o:    crack.h
  1903. X
  1904. Xcrack.h:    crack-glob.h
  1905. X        touch crack.h
  1906. X
  1907. Xconf.h:
  1908. X
  1909. Xclean:
  1910. X        -rm -f *.o *.u *.a *.pixie *.Addrs *.Counts
  1911. X        -rm -f $(PWC) tester bytesex testrule
  1912. X        -rm -f speedcrypt speedfcrypt speedxform speedufc
  1913. END_OF_FILE
  1914. if test 1905 -ne `wc -c <'Sources/Makefile'`; then
  1915.     echo shar: \"'Sources/Makefile'\" unpacked with wrong size!
  1916. fi
  1917. # end of 'Sources/Makefile'
  1918. fi
  1919. if test -f 'Sources/bytesex.c' -a "${1}" != "-c" ; then 
  1920.   echo shar: Will not clobber existing file \"'Sources/bytesex.c'\"
  1921. else
  1922. echo shar: Extracting \"'Sources/bytesex.c'\" \(564 characters\)
  1923. sed "s/^X//" >'Sources/bytesex.c' <<'END_OF_FILE'
  1924. X#include <stdio.h>
  1925. X
  1926. Xmain ()
  1927. X{
  1928. X    char *p;
  1929. X    long int l;
  1930. X
  1931. X    l = 'a' << 24 | 'b' << 16 | 'c' << 8 | 'd';
  1932. X    p = (char *) &l;
  1933. X
  1934. X    if (sizeof (long int) == 4)
  1935. X    {
  1936. X#ifndef GCC            /* gcc tends to make a botch of it */
  1937. X    puts ("-DFDES_4BYTE");
  1938. X#endif
  1939. X    } else if (sizeof (long int) == 8)
  1940. X    {
  1941. X    puts ("-DFDES_8BYTE");
  1942. X    l <<= 32;
  1943. X    } else
  1944. X    {
  1945. X    printf ("-DFDES_%dBYTE%c", sizeof (long int), 10);
  1946. X    }
  1947. X    if (!strncmp (p, "abcd", 4))
  1948. X    {
  1949. X    puts ("-DBIG_ENDIAN");
  1950. X    } else if (!strncmp (p, "dcba", 4))
  1951. X    {
  1952. X    puts ("-DLITTLE_ENDIAN");
  1953. X    }
  1954. X    exit (0);
  1955. X}
  1956. END_OF_FILE
  1957. if test 564 -ne `wc -c <'Sources/bytesex.c'`; then
  1958.     echo shar: \"'Sources/bytesex.c'\" unpacked with wrong size!
  1959. fi
  1960. # end of 'Sources/bytesex.c'
  1961. fi
  1962. if test -f 'Sources/conf.h' -a "${1}" != "-c" ; then 
  1963.   echo shar: Will not clobber existing file \"'Sources/conf.h'\"
  1964. else
  1965. echo shar: Extracting \"'Sources/conf.h'\" \(2202 characters\)
  1966. sed "s/^X//" >'Sources/conf.h' <<'END_OF_FILE'
  1967. X/*
  1968. X * This program is copyright Alec Muffett 1991 except for some portions of
  1969. X * code in "crack-fcrypt.c" which are copyright Robert Baldwin, Icarus Sparry
  1970. X * and Alec Muffett.  The author(s) disclaims all responsibility or liability
  1971. X * with respect to it's usage or its effect upon hardware or computer
  1972. X * systems, and maintain copyright as set out in the "LICENCE" document which
  1973. X * accompanies distributions of Crack v4.0 and upwards.
  1974. X */
  1975. X
  1976. X#undef DEVELOPMENT_VERSION
  1977. X
  1978. X/*
  1979. X * define this symbol if you are on a system where you don't have the
  1980. X * strchr() function in your standard library (usually this means you are on
  1981. X * a BSD based system with no System 5isms) but you DO have the equivalent
  1982. X * index() function.
  1983. X */
  1984. X
  1985. X#undef INDEX_NOT_STRCHR
  1986. X
  1987. X/*
  1988. X * define this if you have a smart toupper() and tolower() (a-la ANSI), which
  1989. X * do not generate barf when something which is not a lowercase letter is
  1990. X * uppercased, or vice-versa (a-la K&R). Check your manpage or leave it
  1991. X * undefined
  1992. X */
  1993. X
  1994. X#undef FAST_TOCASE
  1995. X
  1996. X/*
  1997. X * define this if you are on a Sys V type system with a uname() system call
  1998. X * AND YOU HAVE NO gethostname() - it fakes up a BSD gethostname() so you can
  1999. X * use CRACK_NETWORK; see crack-port.c
  2000. X */
  2001. X
  2002. X#undef CRACK_UNAME
  2003. X
  2004. X/*
  2005. X * define CRACK_DOTFILES if you want to search the first 1Kb segment of users
  2006. X * .plan/.project/.signature files for potential passwords.
  2007. X * 
  2008. X * define CRACK_DOTSANE to likewise do (possibly non-portable) sanity testing
  2009. X * on the dotfiles before opening them (check that they are not named pipes,
  2010. X * etc...)
  2011. X */
  2012. X
  2013. X#undef CRACK_DOTFILES
  2014. X#undef CRACK_DOTSANE
  2015. X
  2016. X/*
  2017. X * define "COMPRESSION" if you have enabled compression in the Crack
  2018. X * Shellscript
  2019. X * 
  2020. X * this is enabled by default if you have /usr/ucb/compress; change the pathname
  2021. X * of the $compress variable in the Crack script if you use another pathname
  2022. X * to get to "compress" and then put the path name of the "pipe to stdout"
  2023. X * version of the compression prog here.
  2024. X */
  2025. X
  2026. X#define COMPRESSION
  2027. X#define ZCAT    "/usr/ucb/zcat"    /* as in "zcat Dicts/bigdict.Z" */
  2028. X#define PCAT    "/usr/bin/pcat"
  2029. X
  2030. X/*
  2031. X * define this if you are using fcrypt() - you might not want to if fcrypt()
  2032. X * doesn't work properly
  2033. X */
  2034. X
  2035. X#define FCRYPT
  2036. END_OF_FILE
  2037. if test 2202 -ne `wc -c <'Sources/conf.h'`; then
  2038.     echo shar: \"'Sources/conf.h'\" unpacked with wrong size!
  2039. fi
  2040. # end of 'Sources/conf.h'
  2041. fi
  2042. if test -f 'Sources/crack-glob.c' -a "${1}" != "-c" ; then 
  2043.   echo shar: Will not clobber existing file \"'Sources/crack-glob.c'\"
  2044. else
  2045. echo shar: Extracting \"'Sources/crack-glob.c'\" \(1388 characters\)
  2046. sed "s/^X//" >'Sources/crack-glob.c' <<'END_OF_FILE'
  2047. X#include "crack.h"
  2048. X
  2049. Xchar version[] = "4.1f";    /* version of prog */
  2050. Xchar runtime[] = "Runtime";
  2051. Xchar feedback_string[] = "!fb!";
  2052. Xchar rulefile[] = "Scripts/dicts.rules";
  2053. Xchar gecosfile[] = "Scripts/gecos.rules";
  2054. Xchar nastygram[] = "Scripts/nastygram";
  2055. Xchar zcat[] = ZCAT;
  2056. Xchar pcat[] = PCAT;
  2057. X
  2058. X/* runtime variable declarations */
  2059. X
  2060. Xint pid;            /* current process ID */
  2061. Xint pwlength = 8;        /* significant length of a password */
  2062. Xstruct USER *userroot;        /* root of linked list of users */
  2063. Xstruct RULE *ruleroot;        /* root of linked list of rules */
  2064. Xstruct RULE *gecosroot;        /* root of linked list of (gecos) rules */
  2065. Xstruct DICT *dictroot;        /* root of linked list of words */
  2066. X
  2067. X/* datafile variables */
  2068. X
  2069. Xchar diefile[STRINGSIZE];    /* where die output goes... */
  2070. Xchar feedbackfile[STRINGSIZE];    /* where feedback ouytput goes */
  2071. Xchar opfile[STRINGSIZE];    /* where Log() output goes */
  2072. Xchar pointfile[STRINGSIZE];    /* checkpointing */
  2073. Xchar this_hostname[STRINGSIZE];    /* gethostname() hack */
  2074. X
  2075. X/* recover variables */
  2076. X
  2077. Xchar old_hostname[STRINGSIZE];    /* next 4 vars used in recovery */
  2078. Xchar old_dictname[STRINGSIZE];
  2079. Xchar old_rule[STRINGSIZE];
  2080. Xint old_usernum;
  2081. Xchar old_username[STRINGSIZE];
  2082. X
  2083. X/* switches */
  2084. Xchar input_file[STRINGSIZE];
  2085. Xint foreground_bool;
  2086. Xint remote_bool;
  2087. Xint nice_value;
  2088. Xint recover_bool;
  2089. Xchar recover_file[STRINGSIZE];
  2090. Xint verbose_bool;
  2091. Xchar supplied_name[STRINGSIZE];
  2092. Xint mail_bool;
  2093. END_OF_FILE
  2094. if test 1388 -ne `wc -c <'Sources/crack-glob.c'`; then
  2095.     echo shar: \"'Sources/crack-glob.c'\" unpacked with wrong size!
  2096. fi
  2097. # end of 'Sources/crack-glob.c'
  2098. fi
  2099. if test -f 'Sources/crack-glob.h' -a "${1}" != "-c" ; then 
  2100.   echo shar: Will not clobber existing file \"'Sources/crack-glob.h'\"
  2101. else
  2102. echo shar: Extracting \"'Sources/crack-glob.h'\" \(958 characters\)
  2103. sed "s/^X//" >'Sources/crack-glob.h' <<'END_OF_FILE'
  2104. Xextern char version[];
  2105. Xextern char runtime[];
  2106. Xextern char feedback_string[];
  2107. Xextern char rulefile[];
  2108. Xextern char gecosfile[];
  2109. Xextern char nastygram[];
  2110. Xextern char zcat[];
  2111. Xextern char pcat[];
  2112. Xextern int pid;
  2113. Xextern int pwlength;
  2114. Xextern struct USER *userroot;
  2115. Xextern struct RULE *ruleroot;
  2116. Xextern struct RULE *gecosroot;
  2117. Xextern struct DICT *dictroot;
  2118. Xextern char diefile[STRINGSIZE];
  2119. Xextern char feedbackfile[STRINGSIZE];
  2120. Xextern char opfile[STRINGSIZE];
  2121. Xextern char pointfile[STRINGSIZE];
  2122. Xextern char this_hostname[STRINGSIZE];
  2123. Xextern char old_hostname[STRINGSIZE];
  2124. Xextern char old_dictname[STRINGSIZE];
  2125. Xextern char old_rule[STRINGSIZE];
  2126. Xextern int old_usernum;
  2127. Xextern char old_username[STRINGSIZE];
  2128. Xextern char input_file[STRINGSIZE];
  2129. Xextern int foreground_bool;
  2130. Xextern int remote_bool;
  2131. Xextern int nice_value;
  2132. Xextern int recover_bool;
  2133. Xextern char recover_file[STRINGSIZE];
  2134. Xextern int verbose_bool;
  2135. Xextern char supplied_name[STRINGSIZE];
  2136. Xextern int mail_bool;
  2137. END_OF_FILE
  2138. if test 958 -ne `wc -c <'Sources/crack-glob.h'`; then
  2139.     echo shar: \"'Sources/crack-glob.h'\" unpacked with wrong size!
  2140. fi
  2141. # end of 'Sources/crack-glob.h'
  2142. fi
  2143. if test -f 'Sources/crack-supp.c' -a "${1}" != "-c" ; then 
  2144.   echo shar: Will not clobber existing file \"'Sources/crack-supp.c'\"
  2145. else
  2146. echo shar: Extracting \"'Sources/crack-supp.c'\" \(3409 characters\)
  2147. sed "s/^X//" >'Sources/crack-supp.c' <<'END_OF_FILE'
  2148. X/*
  2149. X * This program is copyright Alec Muffett 1991 except for some portions of
  2150. X * code in "crack-fcrypt.c" which are copyright Robert Baldwin, Icarus Sparry
  2151. X * and Alec Muffett.  The author(s) disclaims all responsibility or liability
  2152. X * with respect to it's usage or its effect upon hardware or computer
  2153. X * systems, and maintain copyright as set out in the "LICENCE" document which
  2154. X * accompanies distributions of Crack v4.0 and upwards.
  2155. X */
  2156. X
  2157. X#include "crack.h"
  2158. X
  2159. X#ifdef CRACK_UNAME
  2160. X#ifndef AMIGA
  2161. X#include <sys/utsname.h>
  2162. Xint
  2163. Xgethostname (name, namelen)
  2164. X    char *name;
  2165. X    int namelen;
  2166. X{
  2167. X    struct utsname uts;
  2168. X    if (uname (&uts))
  2169. X    {
  2170. X    return (-1);
  2171. X    }
  2172. X    strncpy (name, uts.nodename, namelen - 1);
  2173. X    return (0);
  2174. X}
  2175. X#else
  2176. Xint
  2177. Xgethostname (name, namelen)
  2178. X    char *name;
  2179. X    int namelen;
  2180. X{
  2181. X    strncpy (name, "dougal", namelen);
  2182. X    return (0);
  2183. X}
  2184. X#endif                /* AMIGA */
  2185. X#endif                /* CRACK_UNAME */
  2186. X
  2187. X/* log anything to datafile. */
  2188. X
  2189. Xvoid
  2190. XLog (fmt, a, b, c, d, e, f, g, h, i, j)
  2191. X    char *fmt;
  2192. X    long int a, b, c, d, e, f, g, h, i, j;
  2193. X{
  2194. X    long t;
  2195. X
  2196. X    time (&t);
  2197. X    printf ("pwc: %-15.15s ", ctime (&t) + 4);
  2198. X    printf (fmt, a, b, c, d, e, f, g, h, i, j);
  2199. X    fflush (stdout);
  2200. X}
  2201. X/* print a guess, giving a single place to mod where necessary */
  2202. X
  2203. Xvoid
  2204. XPrintGuess (eptr, guess)
  2205. X    register struct USER *eptr;
  2206. X    char *guess;
  2207. X{
  2208. X    eptr -> done = 1;
  2209. X    eptr -> passwd_txt = Clone (guess);    /* ESSENTIAL to FeedBack() */
  2210. X
  2211. X    if (!eptr -> passwd_txt)
  2212. X    {
  2213. X    eptr -> passwd_txt = "<Ran out of memory logging this password>";
  2214. X    }
  2215. X    Log ("Guessed %s%s (%s in %s) [%s] %s\n",
  2216. X     (eptr -> passwd.pw_uid ? "" : "ROOT PASSWORD "),
  2217. X     eptr -> passwd.pw_name,
  2218. X     eptr -> passwd.pw_shell,
  2219. X     eptr -> filename,
  2220. X     guess,
  2221. X     eptr -> passwd.pw_passwd);
  2222. X
  2223. X    if (mail_bool)
  2224. X    {
  2225. X    char dobuff[STRINGSIZE];
  2226. X
  2227. X    sprintf (dobuff, "%s %s", nastygram, eptr -> passwd.pw_name);
  2228. X    system (dobuff);
  2229. X    }
  2230. X}
  2231. X
  2232. X
  2233. X/* write a pointfile out */
  2234. X
  2235. Xint
  2236. XSetPoint (dict, rule, usernum, username)
  2237. X    char *dict;
  2238. X    char *rule;
  2239. X    int usernum;
  2240. X    char *username;
  2241. X{
  2242. X    FILE *fp;
  2243. X    long t;
  2244. X
  2245. X    if (!(fp = fopen (pointfile, "w")))
  2246. X    {
  2247. X    perror (pointfile);
  2248. X    return (-1);
  2249. X    }
  2250. X    time (&t);
  2251. X
  2252. X    fprintf (fp, "host=%s pid=%d pointtime=%s", this_hostname, pid, ctime (&t));
  2253. X    fprintf (fp, "%s\n", this_hostname);
  2254. X    fprintf (fp, "%s\n", dict);
  2255. X    fprintf (fp, "%s\n", rule);
  2256. X    fprintf (fp, "%d\n", usernum);
  2257. X    fprintf (fp, "%s\n", username);
  2258. X
  2259. X    fclose (fp);
  2260. X
  2261. X    return (0);
  2262. X}
  2263. X/* read a pointfile in... */
  2264. X
  2265. Xint
  2266. XGetPoint (pf)
  2267. X    char *pf;
  2268. X{
  2269. X    FILE *fp;
  2270. X    char buffer[STRINGSIZE];
  2271. X
  2272. X    if (!(fp = fopen (pf, "r")))
  2273. X    {
  2274. X    perror (pf);
  2275. X    return (-1);
  2276. X    }
  2277. X    /* junk */
  2278. X    if (!fgets (buffer, STRINGSIZE, fp))
  2279. X    {
  2280. X    return (-2);
  2281. X    }
  2282. X    /* hostname */
  2283. X    if (!fgets (old_hostname, STRINGSIZE, fp))
  2284. X    {
  2285. X    return (-3);
  2286. X    }
  2287. X    /* dictname */
  2288. X    if (!fgets (old_dictname, STRINGSIZE, fp))
  2289. X    {
  2290. X    return (-4);
  2291. X    }
  2292. X    /* rule */
  2293. X    if (!fgets (old_rule, STRINGSIZE, fp))
  2294. X    {
  2295. X    return (-5);
  2296. X    }
  2297. X    /* usernum */
  2298. X    if (!fgets (buffer, STRINGSIZE, fp))
  2299. X    {
  2300. X    return (-6);
  2301. X    }
  2302. X    /* username */
  2303. X    if (!fgets (old_username, STRINGSIZE, fp))
  2304. X    {
  2305. X    return (-7);
  2306. X    }
  2307. X    Trim (old_hostname);
  2308. X
  2309. X    if (strcmp (old_hostname, this_hostname))
  2310. X    {
  2311. X    return (-8);
  2312. X    }
  2313. X    Trim (old_dictname);
  2314. X    Trim (old_rule);
  2315. X
  2316. X    old_usernum = atoi (buffer);
  2317. X
  2318. X    Trim (old_username);
  2319. X
  2320. X    fclose (fp);
  2321. X
  2322. X    return (0);
  2323. X}
  2324. END_OF_FILE
  2325. if test 3409 -ne `wc -c <'Sources/crack-supp.c'`; then
  2326.     echo shar: \"'Sources/crack-supp.c'\" unpacked with wrong size!
  2327. fi
  2328. # end of 'Sources/crack-supp.c'
  2329. fi
  2330. if test -f 'Sources/crack.h' -a "${1}" != "-c" ; then 
  2331.   echo shar: Will not clobber existing file \"'Sources/crack.h'\"
  2332. else
  2333. echo shar: Extracting \"'Sources/crack.h'\" \(1805 characters\)
  2334. sed "s/^X//" >'Sources/crack.h' <<'END_OF_FILE'
  2335. X/*
  2336. X * This program is copyright Alec Muffett 1991 except for some portions of
  2337. X * code in "crack-fcrypt.c" which are copyright Robert Baldwin, Icarus Sparry
  2338. X * and Alec Muffett.  The author(s) disclaims all responsibility or liability
  2339. X * with respect to it's usage or its effect upon hardware or computer
  2340. X * systems, and maintain copyright as set out in the "LICENCE" document which
  2341. X * accompanies distributions of Crack v4.0 and upwards.
  2342. X */
  2343. X
  2344. X#include <stdio.h>
  2345. X#include <ctype.h>
  2346. X#include <pwd.h>
  2347. X#include <signal.h>
  2348. X
  2349. X#include "conf.h"
  2350. X
  2351. X#define STRINGSIZE    256
  2352. X
  2353. X#ifdef DEVELOPMENT_VERSION
  2354. X#define BUILTIN_CLEAR
  2355. X#undef BRAINDEAD6
  2356. X#define CRACK_UNAME
  2357. X#endif
  2358. X
  2359. Xextern void Trim ();
  2360. Xextern char *Reverse ();
  2361. Xextern char *Uppercase ();
  2362. Xextern char *Lowercase ();
  2363. Xextern char *Clone ();
  2364. Xextern char *Mangle ();
  2365. Xextern int gethostname ();
  2366. X
  2367. X#ifdef FAST_TOCASE
  2368. X#define CRACK_TOUPPER(x)    (toupper(x))
  2369. X#define CRACK_TOLOWER(x)    (tolower(x))
  2370. X#else
  2371. X#define CRACK_TOUPPER(x)    (islower(x) ? toupper(x) : (x))
  2372. X#define CRACK_TOLOWER(x)    (isupper(x) ? tolower(x) : (x))
  2373. X#endif
  2374. X
  2375. X#ifdef FCRYPT
  2376. X#define crypt(a,b)        fcrypt(a,b)
  2377. X#endif
  2378. X
  2379. X#ifdef INDEX_NOT_STRCHR
  2380. X#define strchr(a,b)         index(a,b)
  2381. X#endif
  2382. X
  2383. Xstruct USER
  2384. X{
  2385. X    struct USER *next;        /* next users with different salt */
  2386. X    struct USER *across;    /* line of users with same salt */
  2387. X    char *filename;        /* where we got it from */
  2388. X    char *passwd_txt;        /* plaintext of password */
  2389. X    struct passwd passwd;    /* ...guess... */
  2390. X    int done;            /* bool flag */
  2391. X};
  2392. X
  2393. Xstruct DICT
  2394. X{
  2395. X    struct DICT *next;        /* simple linked list */
  2396. X    char word[1];        /* ...<snigger>... */
  2397. X};
  2398. X
  2399. X/* include lyrics of "perfect circle" by R.E.M. at this point */
  2400. X
  2401. Xstruct RULE
  2402. X{
  2403. X    struct RULE *next;
  2404. X    char *rule;
  2405. X};
  2406. X
  2407. X#define STRCMP(x,y)        ( *(x) == *(y) ? strcmp((x),(y)) : -1 )
  2408. X
  2409. X#include "crack-glob.h"
  2410. END_OF_FILE
  2411. if test 1805 -ne `wc -c <'Sources/crack.h'`; then
  2412.     echo shar: \"'Sources/crack.h'\" unpacked with wrong size!
  2413. fi
  2414. # end of 'Sources/crack.h'
  2415. fi
  2416. if test -f 'Sources/speeds.c' -a "${1}" != "-c" ; then 
  2417.   echo shar: Will not clobber existing file \"'Sources/speeds.c'\"
  2418. else
  2419. echo shar: Extracting \"'Sources/speeds.c'\" \(1886 characters\)
  2420. sed "s/^X//" >'Sources/speeds.c' <<'END_OF_FILE'
  2421. X/*
  2422. X * This program is copyright Alec Muffett 1991 except for some portions of
  2423. X * code in "crack-fcrypt.c" which are copyright Robert Baldwin, Icarus Sparry
  2424. X * and Alec Muffett. The author(s) disclaims all responsibility or liability
  2425. X * with respect to it's usage or its effect upon hardware or computer
  2426. X * systems, and maintain copyright as set out in the "LICENCE" document which
  2427. X * accompanies distributions of Crack v4.0 and upwards.
  2428. X */
  2429. X
  2430. X/*  Cray portions Copyright (c) 1992 Tom Hutton. */
  2431. X#ifdef cray
  2432. X#include <sys/types.h>
  2433. X#include <time.h>
  2434. X#include <unistd.h>
  2435. X#include <ctype.h>
  2436. X#else
  2437. X#include <sys/time.h>
  2438. X#include <signal.h>
  2439. X#endif
  2440. X#include <stdio.h>
  2441. X
  2442. X#ifdef cray
  2443. X/*
  2444. X * Clocks to seconds and seconds to clocks
  2445. X */
  2446. X
  2447. X#define CTOS(X)  ((long) ((unsigned) (X) / (long) hz))
  2448. X#define STOC(X)  ((long) ((X) * hz))
  2449. X
  2450. Xstatic long hz;
  2451. X#endif
  2452. X
  2453. Xstatic int cnt;
  2454. X#define ITIME    10        /* Number of seconds to run test. */
  2455. X
  2456. Xvoid
  2457. XStop ()
  2458. X{
  2459. X    printf ("Did %f %s()s per second.\n",
  2460. X        ((float) cnt) / ((float) ITIME),
  2461. X#ifdef T1
  2462. X        "fcrypt"
  2463. X#else
  2464. X#ifdef T2
  2465. X        "XForm"
  2466. X#else
  2467. X        "crypt"
  2468. X#endif
  2469. X#endif
  2470. X    );
  2471. X    exit (0);
  2472. X}
  2473. Xmain ()
  2474. X{
  2475. X#ifdef    cray
  2476. X    static long vtime;
  2477. X#else
  2478. X    struct itimerval itv;
  2479. X#endif
  2480. X    static int quarters[4];
  2481. X
  2482. X#ifdef cray
  2483. X    hz = sysconf(_SC_CLK_TCK);      /* get # ticks per second */
  2484. X    vtime = STOC(ITIME);
  2485. X#else
  2486. X    bzero (&itv, sizeof (itv));
  2487. X#endif
  2488. X
  2489. X    printf ("Running for %d seconds of virtual time ...\n", ITIME);
  2490. X
  2491. X#if defined(T1) || defined(T2)
  2492. X    init_des ();
  2493. X#endif
  2494. X
  2495. X#ifdef cray
  2496. X    for (cnt = 0;cpused() <= vtime; cnt++)
  2497. X#else
  2498. X    signal (SIGVTALRM, Stop);
  2499. X    itv.it_value.tv_sec = ITIME;
  2500. X    itv.it_value.tv_usec = 0;
  2501. X    setitimer (ITIMER_VIRTUAL, &itv, NULL);
  2502. X
  2503. X    for (cnt = 0;; cnt++)
  2504. X#endif
  2505. X    {
  2506. X#ifdef T1
  2507. X    fcrypt ("fredfred", "eek");
  2508. X#else
  2509. X#ifdef T2
  2510. X    XForm (quarters, 0);
  2511. X#else
  2512. X    crypt ("fredfred", "eek");
  2513. X#endif
  2514. X#endif
  2515. X    }
  2516. X    Stop();
  2517. X}
  2518. END_OF_FILE
  2519. if test 1886 -ne `wc -c <'Sources/speeds.c'`; then
  2520.     echo shar: \"'Sources/speeds.c'\" unpacked with wrong size!
  2521. fi
  2522. # end of 'Sources/speeds.c'
  2523. fi
  2524. if test -f 'Sources/tester.c' -a "${1}" != "-c" ; then 
  2525.   echo shar: Will not clobber existing file \"'Sources/tester.c'\"
  2526. else
  2527. echo shar: Extracting \"'Sources/tester.c'\" \(640 characters\)
  2528. sed "s/^X//" >'Sources/tester.c' <<'END_OF_FILE'
  2529. X#include <stdio.h>
  2530. X#include <time.h>
  2531. X
  2532. Xmain (argc, argv)
  2533. X    int argc;
  2534. X    char *argv[];
  2535. X{
  2536. X    register int i;
  2537. X    long int t;
  2538. X
  2539. X    if (argc < 2)
  2540. X    {
  2541. X    exit (1);
  2542. X    }
  2543. X    init_des ();
  2544. X
  2545. X    printf ("%s\n", fcrypt ("fredfred", "fredfred"));
  2546. X
  2547. X    if (strcmp (fcrypt ("fredfred", "fredfred"), "frxWbx4IRuBBA"))
  2548. X    {
  2549. X    printf ("Version of fcrypt() is not compatible with standard.\n");
  2550. X    exit (0);
  2551. X    }
  2552. X    i = atoi (argv[1]);
  2553. X
  2554. X    printf ("Doing %d fcrypts()\n", i);
  2555. X
  2556. X    time (&t);
  2557. X    printf ("%s", ctime (&t));
  2558. X
  2559. X    while (i--)
  2560. X    {
  2561. X    fcrypt ("fredfred", "fredfred");
  2562. X    }
  2563. X
  2564. X    time (&t);
  2565. X    printf ("%s", ctime (&t));
  2566. X
  2567. X    return (0);
  2568. X}
  2569. END_OF_FILE
  2570. if test 640 -ne `wc -c <'Sources/tester.c'`; then
  2571.     echo shar: \"'Sources/tester.c'\" unpacked with wrong size!
  2572. fi
  2573. # end of 'Sources/tester.c'
  2574. fi
  2575. if test -f 'Sources/testrule.c' -a "${1}" != "-c" ; then 
  2576.   echo shar: Will not clobber existing file \"'Sources/testrule.c'\"
  2577. else
  2578. echo shar: Extracting \"'Sources/testrule.c'\" \(517 characters\)
  2579. sed "s/^X//" >'Sources/testrule.c' <<'END_OF_FILE'
  2580. X#include "crack.h"
  2581. X
  2582. Xvoid
  2583. XLog (a, b, c, d, e, f, g)
  2584. X    char *a, b, c, d, e, f, g;
  2585. X{
  2586. X    printf (a, b, c, d, e, f, g);
  2587. X}
  2588. X
  2589. Xint
  2590. Xmain (argc, argv)
  2591. X    int argc;
  2592. X    char *argv[];
  2593. X{
  2594. X    int i;
  2595. X    char *ptr;
  2596. X    char buffer[STRINGSIZE];
  2597. X
  2598. X    while (!feof (stdin))
  2599. X    {
  2600. X    fgets (buffer, STRINGSIZE - 1, stdin);
  2601. X
  2602. X    Trim (buffer);
  2603. X
  2604. X    for (i = 1; i < argc; i++)
  2605. X    {
  2606. X        ptr = Mangle (buffer, argv[i]);
  2607. X
  2608. X        printf ("'%s'('%s') = '%s'\n",
  2609. X            argv[i],
  2610. X            buffer,
  2611. X            ptr ? ptr : "(rejected)");
  2612. X    }
  2613. X    }
  2614. X    return (0);
  2615. X}
  2616. END_OF_FILE
  2617. if test 517 -ne `wc -c <'Sources/testrule.c'`; then
  2618.     echo shar: \"'Sources/testrule.c'\" unpacked with wrong size!
  2619. fi
  2620. # end of 'Sources/testrule.c'
  2621. fi
  2622. if test -f 'TODO' -a "${1}" != "-c" ; then 
  2623.   echo shar: Will not clobber existing file \"'TODO'\"
  2624. else
  2625. echo shar: Extracting \"'TODO'\" \(349 characters\)
  2626. sed "s/^X//" >'TODO' <<'END_OF_FILE'
  2627. X* replace recover/checkpoint code in entirety
  2628. X* make work over rsh link entirely
  2629. X* dictionaries shipped from central machine
  2630. X* code shipped from central machine (!)
  2631. X* regexp rules (is this really necessary ? what syntax the commands ?)
  2632. X* bottles of glenmorangie always welcome
  2633. X* multiprocessing ability
  2634. X
  2635. X- most of these will be in v5.0
  2636. X                        - alec
  2637. END_OF_FILE
  2638. if test 349 -ne `wc -c <'TODO'`; then
  2639.     echo shar: \"'TODO'\" unpacked with wrong size!
  2640. fi
  2641. # end of 'TODO'
  2642. fi
  2643. echo shar: End of archive 1 \(of 5\).
  2644. cp /dev/null ark1isdone
  2645. MISSING=""
  2646. for I in 1 2 3 4 5 ; do
  2647.     if test ! -f ark${I}isdone ; then
  2648.     MISSING="${MISSING} ${I}"
  2649.     fi
  2650. done
  2651. if test "${MISSING}" = "" ; then
  2652.     echo You have unpacked all 5 archives.
  2653.     rm -f ark[1-9]isdone
  2654. else
  2655.     echo You still need to unpack the following archives:
  2656.     echo "        " ${MISSING}
  2657. fi
  2658. ##  End of shell archive.
  2659. exit 0
  2660. exit 0 # Just in case...
  2661.