diff --git a/Makefile.am b/Makefile.am index e63ce85..0282b1d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,4 @@ AUTOMAKE_OPTIONS = subdir-objects bin_PROGRAMS = bruteforce-luks -bruteforce_luks_SOURCES = src/bruteforce-luks.c +bruteforce_luks_SOURCES = src/bruteforce-luks.c src/version.h +man_MANS = doc/bruteforce-luks.1 diff --git a/doc/bruteforce-luks.1 b/doc/bruteforce-luks.1 new file mode 100644 index 0000000..a242a3e --- /dev/null +++ b/doc/bruteforce-luks.1 @@ -0,0 +1,120 @@ +.TH BRUTEFORCE-LUKS "1" "Nov 2015" "BRUTEFORCE-LUKS 1.1" "Bruteforce LUKS encrypted volume" +.SH NAME +bruteforce-luks \- try to find the password of a LUKS volume +.SH SYNOPSIS +\fBbruteforce-luks\fP [\fBoptions\fP] <\fIpath to LUKS volume\fP> +.SH DESCRIPTION +The program tries to decrypt at least one of the key slots by trying +all the possible passwords. It is especially useful if you know +something about the password (i.e. you forgot a part of your password but still +remember most of it). Finding the password of a volume without knowing +anything about it would take way too much time (unless the password is really +short and/or weak). +.PP +There are command line options to specify: +.RS +.IP \(bu 2 +the minimum password length to try +.IP \(bu 2 +the maximum password length to try +.IP \(bu 2 +the beginning of the password +.IP \(bu 2 +the end of the password +.IP \(bu 2 +the character set to use (among the characters of the current locale) +.SH OPTIONS +.TP +.B \-b +.nf +Beginning of the password. +.nf +Default: "" +.TP +.B \-e +.nf +End of the password. +.nf +Default: "" +.TP +.B \-f +.nf +Read the passwords from a file instead of generating them. +.TP +.B \-h +.nf +Show help and quit. +.TP +.B \-l +.nf +Minimum password length (beginning and end included). +.nf +Default: 1 +.TP +.B \-m +.nf +Maximum password length (beginning and end included). +.nf +Default: 8 +.TP +.B \-s +.nf +Password character set. +.nf +Default: "0123456789ABCDEFGHIJKLMNOPQRSTU + VWXYZabcdefghijklmnopqrstuvwxyz" +.TP +.B \-t +.nf +Number of threads to use. +.nf +Default: 1 +.PP +Sending a USR1 signal to a running \fBbruteforce-luks\fP process +makes it print progress info to standard error and continue. +.SH EXAMPLES +Try to find the password of a LUKS encrypted volume using 4 threads, trying +only passwords with 5 characters: +.PP +.nf +.fam C + bruteforce-luks -t 4 -l 5 -m 5 /dev/sdb1 + + +.fam T +.fi +Try to find the password of a LUKS encrypted volume using 8 threads, trying +only passwords with 5 to 10 characters beginning with "W4l" and ending with "z": +.PP +.nf +.fam C + bruteforce-luks -t 8 -l 5 -m 10 -b "W4l" -e "z" /dev/sda2 + + +.fam T +.fi +Try to find the password of a LUKS encrypted volume using 8 threads, trying +only passwords with 10 characters using the character set "P情8ŭ": +.PP +.nf +.fam C + bruteforce-luks -t 8 -l 10 -m 10 -s "P情8ŭ" /dev/sdc3 + + +.fam T +.fi +Try to find the password of a LUKS encrypted volume using 6 threads, trying +the passwords contained in a dictionary file: +.PP +.nf +.fam C + bruteforce-luks -t 6 -f dictionary.txt /dev/sdd1 + + +.fam T +.fi +Print progress info: +.PP +.nf +.fam C + pkill -USR1 -f bruteforce-luks