Blob Blame History Raw
--- c50a/src/util/Makefile.chris	1996-12-16 09:27:35.000000000 +0100
+++ c50a/src/util/Makefile	2007-05-10 13:46:45.000000000 +0200
@@ -17,7 +17,7 @@
 EXE=    $(XDIR)/dawg \
 	$(XDIR)/dictfilt \
 	$(XDIR)/kickdict \
-	$(XDIR)/cracker
+	$(XDIR)/stdlib-cracker
 
 #------------------------------------------------------------------
 
@@ -69,7 +69,7 @@
 #------------------------------------------------------------------
 
 # don't you just love dependency graphs?
-$(XDIR)/dictfilt: dictfilt.c $(XLIB) $(XDIR)/cracker
+$(XDIR)/dictfilt: dictfilt.c $(XLIB) $(XDIR)/stdlib-cracker
 	$(CC) $(CFLAGS) -o $(XDIR)/dictfilt dictfilt.c elcid.o $(XLIB)
 
 #------------------------------------------------------------------
--- c50a/src/util/cracker.c.chris	1996-12-16 16:20:03.000000000 +0100
+++ c50a/src/util/cracker.c	2007-05-10 13:46:45.000000000 +0200
@@ -11,6 +11,7 @@
 
 #include "libcrack.h"
 #include "elcid.h"
+#include <stdarg.h>
 
 #define CRACK_MEMSMALL          0x0001
 #define CRACK_DISKSMALL         0x0002
@@ -97,18 +98,23 @@
 
 /* ------------------------------------------------------------------ */
 
+#ifdef __GNUC__
 void
-Logger(key, fmt, a, b, c, d, e, f)
-char key;
-char *fmt;
-char *a, *b, *c, *d, *e, *f;
+Logger(char key, const char *fmt, ...)
+    __attribute__ ((format (printf, 2, 3)));
+#endif
+void
+Logger(char key, const char *fmt, ...)
 {
     long t;
+    va_list ap;
 
     time(&t);
 
     fprintf(stdout, "%c:%ld:", key, t);
-    fprintf(stdout, fmt, a, b, c, d, e, f);
+    va_start(ap, fmt);
+    vprintf(fmt, ap);
+    va_end(ap);
 
     fflush(stdout);
     fflush(stderr);		/* and why not ? */
--- c50a/Crack.chris	1996-12-21 02:09:41.000000000 +0100
+++ c50a/Crack	2007-05-10 13:52:31.000000000 +0200
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 ###
 # This program was written by and is copyright Alec Muffett 1991,
 # 1992, 1993, 1994, 1995, and 1996, and is provided as part of the
@@ -12,85 +12,11 @@
 # User-configurable junk for Crack
 ###
 
-# nice, generic path (RedHat Linux, Solaris1, Solaris2)
-CRACK_PATH=/usr/local/bin:/usr/ccs/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/ucb:/usr/etc:$PATH
-
-# compiler options for crack 5.0
-#
-# -DUSE_BZERO        /* add this to C5FLAGS if you don't have memset() */
-# -DUSE_MALLOC_H
-# -DUSE_PWD_H
-# -DUSE_SIGNAL_H
-# -DUSE_STDLIB_H
-# -DUSE_STRINGS_H
-# -DUSE_STRING_H
-# -DUSE_SYS_TYPES_H
-# -DUSE_UNISTD_H
-# -DMAXWORDLEN=      /* ignore if you don't read the code */
-# -DNUMWORDS=        /* ignore if you don't read the code */
-# -DSTRINGSIZE=      /* ignore if you don't read the code */
-
-# this set tested on:
-# - solaris 2.5
-# - redhat linux 4.0
-# - digital unix v4.0
-
-C5FLAGS="-DUSE_STRING_H -DUSE_STDLIB_H -DUSE_SIGNAL_H -DUSE_SYS_TYPES_H -DUSE_UNISTD_H -DUSE_PWD_H"
-
-#
-# now pick your compiler
-#
-
-# vanilla unix cc
-CC=cc
-CFLAGS="-g -O $C5FLAGS"
-#LIBS=-lcrypt # uncomment only if necessary to use stdlib crypt(), eg: NetBSD MD5
-
-# gcc 2.7.2
-#CC=gcc
-#CFLAGS="-g -O2 -Wall $C5FLAGS"
-#LIBS=-lcrypt # uncomment only if necessary to use stdlib crypt(), eg: NetBSD MD5
-
-# digital unix v4.0, CFLAGS for ev4/ev5 chipsets (pick one)
-#CC=cc
-#CFLAGS="-O4 -fast -tune ev4 $C5FLAGS"
-#CFLAGS="-O4 -fast -tune ev5 $C5FLAGS"
-#LIBS=
-
-# Uncomment the next two lines if a) you are running Crack in
-# networking mode, and b) your environment's operating system will not
-# necessarily run binaries compiled on other revs of the same
-# operating system which have the same architecture and the same
-# *MAJOR* revision number.
-#
-# eg: if you have Foonix 2.0 boxes as well as Foonix 2.1 boxes; in
-# this example, the major revision number is "2".  If the Foonix 2.1
-# O/S will not run Foonix 2.0 binaries for some reason, or vice-versa,
-# then uncomment these lines.
-
-#STRICT_OSREV=yes
-#export STRICT_OSREV
-
-# Uncomment and/or modify on HP/UX or similar where the UCB "rsh"
-# command has been renamed.  See scripts/crack-rsh also
-#CRACK_RSH=remsh
-#CRACK_RCP=rcp
-
-###########################################################
-###########################################################
-#################### THAT'S ALL, FOLKS ####################
-#### NOW GO CONFIGURE YOUR CRYPT ALGORITHM, EG: LIBDES ####
-###########################################################
-###########################################################
-
 ###
 # security
 ###
 
 umask 077
-export CRACK_PATH                       # So it can be picked up later
-PATH=$CRACK_PATH                        # For temporary use...
-export PATH
 
 ###
 # Defaults
@@ -108,12 +34,9 @@
 # home base
 ###
 
-CRACK_HOME=`echo $0 | sed -e 's/Crack$//'`
+old_wd=`pwd`
 
-if [ "$CRACK_HOME" = "" ]
-then
-	CRACK_HOME=.
-fi
+CRACK_HOME=${CRACK_HOME:-"/var/lib/crack"}
 
 if cd $CRACK_HOME
 then
@@ -126,25 +49,6 @@
 export CRACK_HOME
 
 ###
-# sanity check
-###
-
-if [ ! -f "$CRACK_HOME/Crack" ]
-then
-	echo "Fatal Error: $CRACK_HOME: something weird going down" 1>&2
-	exit 1
-fi
-
-###
-# Hierarchy
-###
-
-for dir in run run/bin
-do
-	test -d $dir || mkdir $dir || exit 1
-done
-
-###
 # Flagwaving
 ###
 
@@ -158,8 +62,6 @@
 # Parse Arguments
 ###
 
-argbackup1="$*"
-
 while [ "x$1" != "x" ]
 do
 	case $1 in
@@ -275,50 +177,24 @@
 	exit 1
 fi
 
-###
-# Sanity test bindir - written in gruntscript for clarity.
-###
-
-bdname=`scripts/binstamp 2>/dev/null`
-
-if [ "x$bdname" = "x" ]
-then
-	echo "Crack: error: cannot continue as binstamp returned empty string" 1>&2
-	exit 0
-fi
-
-echo "Stamp: $bdname"
 echo ""
 
 
 if [ "x$1" != "x" ]
 then
-	if [ "$1" = "-fmt" ]            # use generic name
-	then
-		bindir=run/bin/$bdname
-	elif [ -d run/bin/$1 ]          # have been here before
-	then
-		bindir=run/bin/$1
-		shift
-	elif [ ! -f $1 ]                # use specified name
-	then
-		bindir=run/bin/$1
-		shift
-	else                            # use generic name
-		bindir=run/bin/$bdname
-	fi
+	bindir=bin
 else                                    # supporting "-makeonly"
 	if [ "$makeonlyflag" != "" ]
 	then
-		bindir=run/bin/$bdname
+		bindir=bin
 
 	elif [ "$makedictflag" != "" ]
 	then
-		bindir=run/bin/$bdname
+		bindir=bin
 
 	elif [ "$remoteflag" != "" ]
 	then
-		bindir=run/bin/$bdname
+		bindir=bin
 	else
 		echo $usage 1>&2
 		exit 1
@@ -333,21 +209,6 @@
 export PATH
 
 ###
-# Make the binaries
-###
-
-echo "Crack: making utilities in $bindir"
-
-if [ ! -d $bindir ] # small redundancy, big benefit
-then
-	mkdir $bindir || exit 1
-fi
-
-make clean || exit 1
-
-make ARGS="\"XDIR=../../$bindir\" \"XCFLAGS=$CFLAGS\" \"XCC=$CC\" \"XLIBS=$LIBS\"" utils || exit 1
-
-###
 # Make Only ?
 ###
 
@@ -439,7 +300,6 @@
 	fbmerge
 
 	echo "Crack: Merging password files..."
-	argbackup2="$*"
 
 	(
 		cat run/F-merged        # first the feedback
@@ -451,16 +311,22 @@
 				shift || exit 1
 				deffmt=$1
 
-			elif [ "$deffmt" = "spf" ]
-			then
-				cat $1 1>&3 # skip the sort
 			else
-				${deffmt}2spf $1
+			  theFile=$1
+			  if [ ! -r $theFile ]; then
+			    theFile="$old_wd/$theFile"
+			  fi
+			  if [ "$deffmt" = "spf" ]
+			  then
+			  	  cat $theFile 1>&3 # skip the sort
+			  else
+			  	  ${deffmt}2spf $theFile
+			  fi
 			fi
 
 			shift
 		done |
-		crack-sort -t: +1
+		crack-sort -t: -k 2
 	) 3>&1 |
 	fbfilt $crackfb $crackmf > $crackin # remove feedback-guessable users
 
--- c50a/Reporter.chris	1996-12-13 20:13:55.000000000 +0100
+++ c50a/Reporter	2007-05-10 13:46:45.000000000 +0200
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 ###
 # This program was written by and is copyright Alec Muffett 1991,
 # 1992, 1993, 1994, 1995, and 1996, and is provided as part of the
@@ -10,6 +10,9 @@
 # document which accompanies distributions of Crack v5.0 and upwards.
 ###
 
+CRACK_HOME=${CRACK_HOME:-"/var/lib/crack"}
+cd $CRACK_HOME
+
 tfile=run/T$$
 date=`date`