|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T c
Length: 3409 (0xd51) Types: TextFile Names: »crack-supp.c«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen └─⟦this⟧ »./crack/Sources/crack-supp.c«
/* * This program is copyright Alec Muffett 1991 except for some portions of * code in "crack-fcrypt.c" which are copyright Robert Baldwin, Icarus Sparry * and Alec Muffett. The author(s) disclaims all responsibility or liability * with respect to it's usage or its effect upon hardware or computer * systems, and maintain copyright as set out in the "LICENCE" document which * accompanies distributions of Crack v4.0 and upwards. */ #include "crack.h" #ifdef CRACK_UNAME #ifndef AMIGA #include <sys/utsname.h> int gethostname (name, namelen) char *name; int namelen; { struct utsname uts; if (uname (&uts)) { return (-1); } strncpy (name, uts.nodename, namelen - 1); return (0); } #else int gethostname (name, namelen) char *name; int namelen; { strncpy (name, "dougal", namelen); return (0); } #endif /* AMIGA */ #endif /* CRACK_UNAME */ /* log anything to datafile. */ void Log (fmt, a, b, c, d, e, f, g, h, i, j) char *fmt; long int a, b, c, d, e, f, g, h, i, j; { long t; time (&t); printf ("pwc: %-15.15s ", ctime (&t) + 4); printf (fmt, a, b, c, d, e, f, g, h, i, j); fflush (stdout); } /* print a guess, giving a single place to mod where necessary */ void PrintGuess (eptr, guess) register struct USER *eptr; char *guess; { eptr -> done = 1; eptr -> passwd_txt = Clone (guess); /* ESSENTIAL to FeedBack() */ if (!eptr -> passwd_txt) { eptr -> passwd_txt = "<Ran out of memory logging this password>"; } Log ("Guessed %s%s (%s in %s) [%s] %s\n", (eptr -> passwd.pw_uid ? "" : "ROOT PASSWORD "), eptr -> passwd.pw_name, eptr -> passwd.pw_shell, eptr -> filename, guess, eptr -> passwd.pw_passwd); if (mail_bool) { char dobuff[STRINGSIZE]; sprintf (dobuff, "%s %s", nastygram, eptr -> passwd.pw_name); system (dobuff); } } /* write a pointfile out */ int SetPoint (dict, rule, usernum, username) char *dict; char *rule; int usernum; char *username; { FILE *fp; long t; if (!(fp = fopen (pointfile, "w"))) { perror (pointfile); return (-1); } time (&t); fprintf (fp, "host=%s pid=%d pointtime=%s", this_hostname, pid, ctime (&t)); fprintf (fp, "%s\n", this_hostname); fprintf (fp, "%s\n", dict); fprintf (fp, "%s\n", rule); fprintf (fp, "%d\n", usernum); fprintf (fp, "%s\n", username); fclose (fp); return (0); } /* read a pointfile in... */ int GetPoint (pf) char *pf; { FILE *fp; char buffer[STRINGSIZE]; if (!(fp = fopen (pf, "r"))) { perror (pf); return (-1); } /* junk */ if (!fgets (buffer, STRINGSIZE, fp)) { return (-2); } /* hostname */ if (!fgets (old_hostname, STRINGSIZE, fp)) { return (-3); } /* dictname */ if (!fgets (old_dictname, STRINGSIZE, fp)) { return (-4); } /* rule */ if (!fgets (old_rule, STRINGSIZE, fp)) { return (-5); } /* usernum */ if (!fgets (buffer, STRINGSIZE, fp)) { return (-6); } /* username */ if (!fgets (old_username, STRINGSIZE, fp)) { return (-7); } Trim (old_hostname); if (strcmp (old_hostname, this_hostname)) { return (-8); } Trim (old_dictname); Trim (old_rule); old_usernum = atoi (buffer); Trim (old_username); fclose (fp); return (0); }