File: Crack7

package info (click to toggle)
crack 5.0a-19
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,248 kB
  • sloc: ansic: 7,445; perl: 1,375; sh: 1,066; makefile: 216
file content (88 lines) | stat: -rwxr-xr-x 2,499 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/sh
###
# This program was written by and is copyright Alec Muffett 1991,
# 1992, 1993, 1994, 1995, and 1996, and is provided as part of the
# Crack v5.0 Password Cracking package.
#
# The copyright holder disclaims all responsibility or liability with
# respect to its usage or its effect upon hardware or computer
# systems, and maintains copyright as set out in the "LICENCE"
# document which accompanies distributions of Crack v5.0 and upwards.
###

#
# Usage: Crack7 ciphertext ...
#

##################################################################

# The bottom three runs of "brute" (length=6..8) are comented out
# because of estimated time constraints.  Feel free to uncomment them
# (or comment out the others) if you feel you know what you are doing.

###
# Make the brute binary; Makefile assumes existence of
# ../src/libdes/libdes.a so it may need reconfiguring if you are not
# using plain-old Unix crypt().
###

make || exit 1

###
# set up a few shorthand charsets
###

lower=a-z
upper=A-Z
digit=0-9
setld=$lower$digit
setud=$upper$digit
setuld=$upper$lower$digit

# these are the charsets we will use for certain characters of the
# plaintext - tweak these if you can be more precise, for instance:
# restrict the values of s1..s8 to match anything that you know for
# certain about the plaintext.

# eg: the first character is on the left side of the keyboard, so we
# can set s1="qwerasdfzxcv" - or similar.  This sort of pruning effect
# causes a massive reduction in time required to brute force
# passwords; as an example, if you know these things:

#  - the first character is alphabetic and on the keyboard LHS
#  - the second character is a digit
#  - the third through sixth characters are in the range "a-z"
#  - the seventh (final) character is "k"

# ...you can set s1..s7 appropriately and comment out all the other
# runs, or just invoke "brute" manually:
#
#    brute CIPHERTEXT qwerasdfzxcv 0-9 a-z a-z a-z a-z k
#

s1=$setld
s2=$setld
s3=$setld
s4=$setld
s5=$setld
s6=$setld
s7=$setld
s8=$setld

###
# go
###

for ciphertext in $*
do
    ./brute $ciphertext $s1 && break
    ./brute $ciphertext $s1 $s2 && break
    ./brute $ciphertext $s1 $s2 $s3 && break
    ./brute $ciphertext $s1 $s2 $s3 $s4 && break
    ./brute $ciphertext $s1 $s2 $s3 $s4 $s5 && break
#   ./brute $ciphertext $s1 $s2 $s3 $s4 $s5 $s6 && break
#   ./brute $ciphertext $s1 $s2 $s3 $s4 $s5 $s6 $s7 && break
#   ./brute $ciphertext $s1 $s2 $s3 $s4 $s5 $s6 $s7 $s8 && break
done

exit 0