X-Git-Url: https://git.ao2.it/crackpop.git/blobdiff_plain/2258ef0e945e565f4d5fef0fa9ac8c6d47444293..38d8e69e7cc789683e68005846a747aa6e23f1cc:/crackpop.py diff --git a/crackpop.py b/crackpop.py index b032da6..8d9a45b 100755 --- a/crackpop.py +++ b/crackpop.py @@ -26,26 +26,31 @@ __version = "0.1" __author_info = "Antonio Ospite" +# returns a tuple: (num_passwords, passwords) +# where passwords is an iterable type def generate_passwords(password_pattern, dry_run=False): - passwords = list(exrex.generate(password_pattern)) + num_passwords = exrex.count(password_pattern) + passwords = exrex.generate(password_pattern) if dry_run: - print "Generated %d passwords." % len(passwords) + print "Generated %d passwords." % num_passwords for p in passwords: print p - return [] + return (0, iter([])) - return passwords + return (num_passwords, passwords) +# the passwords parameter is a tuple: (n, L) +# where L is an iterable type and n is the number of elements in L def crackpop(host, port, ssl, user, passwords): if ssl: pop3_connect = poplib.POP3_SSL else: pop3_connect = poplib.POP3 - print "Testing %d passwords." % len(passwords) - for p in passwords: + print "Testing %d passwords." % passwords[0] + for p in passwords[1]: # TODO maybe the same connection can be reused for more than one try, # but some logic needs to be added to detect the maximum allowed # authentication attempts or a disconnection from the server.