diff --git a/src/ch/kousz/adrian/encfs/EncFSBrute.java b/src/ch/kousz/adrian/encfs/EncFSBrute.java index ff7fd5e..866f1e8 100644 --- a/src/ch/kousz/adrian/encfs/EncFSBrute.java +++ b/src/ch/kousz/adrian/encfs/EncFSBrute.java @@ -1,11 +1,7 @@ package ch.kousz.adrian.encfs; -import ch.kousz.adrian.util.LineIterable; import ch.kousz.adrian.util.StringGenerator; -import java.io.BufferedReader; import java.io.File; -import java.io.FileInputStream; -import java.io.InputStreamReader; import org.mrpdaemon.sec.encfs.EncFSBinaryConfig; import org.mrpdaemon.sec.encfs.EncFSConfig; import org.mrpdaemon.sec.encfs.EncFSConfigParser; @@ -16,30 +12,14 @@ public class EncFSBrute public static void main(String[] args) throws Exception { - if (args.length < 3) { - System.out.println("USAGE: EncFSBrute "); - System.out.println("or: EncFSBrute \"wordlist\" "); - return; - } - String filename = args[0]; String charset = args[1]; - String param = args[2]; - - Iterable passwordGenerator; - - if ("wordlist".equals(charset)) { - BufferedReader rdr = new BufferedReader(new InputStreamReader(new FileInputStream(param), "UTF-8")); - passwordGenerator = new LineIterable(rdr); - } else { - int minLength = Integer.parseInt(param); - passwordGenerator = new StringGenerator(charset, minLength); - } + int minLength = Integer.parseInt(args[2]); EncFSConfig config = EncFSConfigParser.parseFile(new File(filename)); EncFSBinaryConfig binaryConfig = EncFSBinaryConfig.from(config); - for (String pw: passwordGenerator) { + for (String pw: new StringGenerator(charset, minLength)) { System.err.println("Trying: " + pw); boolean ok = EncFSUtil.checkPassword(binaryConfig, pw); if (ok) { diff --git a/src/ch/kousz/adrian/util/LineIterable.java b/src/ch/kousz/adrian/util/LineIterable.java deleted file mode 100644 index 89b5289..0000000 --- a/src/ch/kousz/adrian/util/LineIterable.java +++ /dev/null @@ -1,63 +0,0 @@ -package ch.kousz.adrian.util; - -import java.io.BufferedReader; -import java.io.IOException; - -public class LineIterable -implements Iterable -{ - private final BufferedReader rdr; - - public LineIterable(BufferedReader rdr) - { - this.rdr = rdr; - } - - @Override - public java.util.Iterator iterator() - { - return new LineIterable.Iterator(this); - } - - private static class Iterator - implements java.util.Iterator - { - private final BufferedReader rdr; - private String next; - - public Iterator(LineIterable gen) - { - this.rdr = gen.rdr; - readNext(); - } - - @Override - public boolean hasNext() - { - return next != null; - } - - @Override - public String next() - { - String result = next; - readNext(); - return result; - } - - @Override - public void remove() - { - throw new UnsupportedOperationException(); - } - - private void readNext() - { - try { - next = rdr.readLine(); - } catch (IOException ex) { - throw Throwables.sneakyThrow(ex); - } - } - } -} diff --git a/src/ch/kousz/adrian/util/Throwables.java b/src/ch/kousz/adrian/util/Throwables.java deleted file mode 100644 index be4cc22..0000000 --- a/src/ch/kousz/adrian/util/Throwables.java +++ /dev/null @@ -1,16 +0,0 @@ - -package ch.kousz.adrian.util; - -public class Throwables -{ - public static RuntimeException sneakyThrow(Throwable t) - { - Throwables.sneakyThrowNow(t); - return null; - } - - @SuppressWarnings("unchecked") - private static T sneakyThrowNow(Throwable t) throws T { - throw (T) t; - } -}