Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions maskgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,15 +179,15 @@ def getmaskscoverage(self, checkmasks):

if __name__ == "__main__":

header = " _ \n"
header += " MaskGen %s | |\n" % VERSION
header += " _ __ __ _ ___| | _\n"
header += " | '_ \ / _` |/ __| |/ /\n"
header += " | |_) | (_| | (__| < \n"
header += " | .__/ \__,_|\___|_|\_\\\n"
header += " | | \n"
header += " |_| iphelix@thesprawl.org\n"
header += "\n"
header = " _ \n"
header += " MaskGen %s | |\n" % VERSION
header += " _ __ __ _ ___| | _\n"
header += r" | '_ \ / _` |/ __| |/ /" + "\n"
header += " | |_) | (_| | (__| < \n"
header += r" | .__/ \__,_|\___|_|\_\ " + "\n"
header += " | | \n"
header += " |_| iphelix@thesprawl.org\n"
header += "\n"

parser = OptionParser("%prog pass0.masks [pass1.masks ...] [options]", version="%prog "+VERSION)

Expand Down
18 changes: 9 additions & 9 deletions policygen.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,15 +148,15 @@ def generate_masks(self, noncompliant):

if __name__ == "__main__":

header = " _ \n"
header += " PolicyGen %s | |\n" % VERSION
header += " _ __ __ _ ___| | _\n"
header += " | '_ \ / _` |/ __| |/ /\n"
header += " | |_) | (_| | (__| < \n"
header += " | .__/ \__,_|\___|_|\_\\\n"
header += " | | \n"
header += " |_| iphelix@thesprawl.org\n"
header += "\n"
header = " _ \n"
header += " PolicyGen %s | |\n" % VERSION
header += " _ __ __ _ ___| | _\n"
header += r" | '_ \ / _` |/ __| |/ /" + "\n"
header += " | |_) | (_| | (__| < \n"
header += r" | .__/ \__,_|\___|_|\_\ " + "\n"
header += " | | \n"
header += " |_| iphelix@thesprawl.org\n"
header += "\n"

# parse command line arguments
parser = OptionParser("%prog [options]\n\nType --help for more options", version="%prog " + VERSION)
Expand Down
34 changes: 18 additions & 16 deletions rulegen.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ def __init__(self, language="en", providers="aspell,myspell", basename='analysis
# Preanalysis Password Patterns
self.password_pattern = dict()
self.password_pattern["insertion"] = re.compile('^[^a-z]*(?P<password>.+?)[^a-z]*$', re.IGNORECASE)
self.password_pattern["email"] = re.compile('^(?P<password>.+?)@[A-Z0-9.-]+\.[A-Z]{2,4}', re.IGNORECASE)
self.password_pattern["alldigits"] = re.compile('^(\d+)$', re.IGNORECASE)
self.password_pattern["email"] = re.compile(r'^(?P<password>.+?)@[A-Z0-9.-]+\.[A-Z]{2,4}', re.IGNORECASE)
self.password_pattern["alldigits"] = re.compile(r'^(\d+)$', re.IGNORECASE)
self.password_pattern["allspecial"] = re.compile('^([^a-z0-9]+)$', re.IGNORECASE)

########################################################################
Expand Down Expand Up @@ -1006,9 +1006,11 @@ def analyze_passwords_file(self, passwords_file):
words_queue = multiprocessing.Queue()

# Start workers
pw_procs = []
for i in range(self.threads):
multiprocessing.Process(target=self.password_worker,
args=(i, passwords_queue, rules_queue, words_queue)).start()
pw_procs.append(multiprocessing.Process(target=self.password_worker,
args=(i, passwords_queue, rules_queue, words_queue)))
pw_procs[i].start()
multiprocessing.Process(target=self.rule_worker, args=(rules_queue, "%s.rule" % self.basename)).start()
multiprocessing.Process(target=self.word_worker, args=(words_queue, "%s.word" % self.basename)).start()

Expand Down Expand Up @@ -1045,9 +1047,9 @@ def analyze_passwords_file(self, passwords_file):
for i in range(self.threads):
passwords_queue.put(None)

# Wait for all of the queued passwords to finish.
while not passwords_queue.empty():
time.sleep(1)
# Wait for all of the queued passwords to finish.
for proc in pw_procs:
proc.join()

# Signal writers to stop.
rules_queue.put(None)
Expand Down Expand Up @@ -1129,15 +1131,15 @@ def verify_hashcat_rules(self, word, rules, password):

if __name__ == "__main__":

header = " _ \n"
header += " RuleGen %s | |\n" % VERSION
header += " _ __ __ _ ___| | _\n"
header += " | '_ \ / _` |/ __| |/ /\n"
header += " | |_) | (_| | (__| < \n"
header += " | .__/ \__,_|\___|_|\_\\\n"
header += " | | \n"
header += " |_| iphelix@thesprawl.org\n"
header += "\n"
header = " _ \n"
header += " RuleGen %s | |\n" % VERSION
header += " _ __ __ _ ___| | _\n"
header += r" | '_ \ / _` |/ __| |/ /" + "\n"
header += " | |_) | (_| | (__| < \n"
header += r" | .__/ \__,_|\___|_|\_\ " + "\n"
header += " | | \n"
header += " |_| iphelix@thesprawl.org\n"
header += "\n"

parser = OptionParser("%prog [options] passwords.txt", version="%prog " + VERSION)

Expand Down
18 changes: 9 additions & 9 deletions statsgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,15 +241,15 @@ def print_stats(self):

if __name__ == "__main__":

header = " _ \n"
header += " StatsGen %s | |\n" % VERSION
header += " _ __ __ _ ___| | _\n"
header += " | '_ \ / _` |/ __| |/ /\n"
header += " | |_) | (_| | (__| < \n"
header += " | .__/ \__,_|\___|_|\_\\\n"
header += " | | \n"
header += " |_| iphelix@thesprawl.org\n"
header += "\n"
header = " _ \n"
header += " StatsGen %s | |\n" % VERSION
header += " _ __ __ _ ___| | _\n"
header += r" | '_ \ / _` |/ __| |/ /" + "\n"
header += " | |_) | (_| | (__| < \n"
header += r" | .__/ \__,_|\___|_|\_\ " + "\n"
header += " | | \n"
header += " |_| iphelix@thesprawl.org\n"
header += "\n"

parser = OptionParser("%prog [options] passwords.txt\n\nType --help for more options", version="%prog "+VERSION)

Expand Down