Table of Contents
Passpal was inspired by Pipal. Passpal 0.4 is an extremely early version. Feedback welcome nonetheless. Use the comment section below, email or Twitter.
Requirements
Passpal is being developed and tested on Ruby 1.9.3. Ruby 1.9 is probably required.
Download
Features
- Much faster than Pipal
- Made for UTF-8 (which should mean no encoding problems - use dictclean to clean your text file)
- Extendable (to extend Passpal with a module you just extend the Agent class and implement two methods: analyze(word) and report())
- Configurable (you can via the command-line specify which modules you want to run or not run, by using the –include and –exclude options)
- Some stats try to focus on effectiveness (count/keyspace), not just frequency
- Only one file (passpal.rb)
- Progress bar on a per module basis
Help output
C:\passpal>ruby passpal.rb --help passpal 0.4, T. Alexander Lystad <tal@lystadonline.no> (www.thepasswordproject.com) Usage on Windows: ruby passpal.rb [switches] filename [> outfile.txt] Usage on Linux: ./passpal.rb [switches] filename [> outfile.txt] --help Show help --top Show top X results. Defaults to 10. Some reports are always shown in full. Example: --top 20 --include STRING Run these modules, separate with comma. Example: --include 1,3,5 --exclude STRING Run all modules except these, separate with comma. Example: --exclude 6 --profile Pretty inaccurate profiling, but should give you an idea what the relative time cost of the modules are --outfile filename Output to this file filename The file to analyze. Must be UTF-8 encoded. Available modules: 1 = WordFrequencyAgent 2 = BaseWordFrequencyAgent 3 = LengthFrequencyAgent 4 = CharsetFrequencyAgent 5 = HashcatMaskFrequencyAgent 6 = CharsetPositionAgent 7 = CharacterFrequencyAgent 8 = SymbolFrequencyAgent
Example output
passpal 0.4 report (www.thepasswordproject.com) Total words: 24289 Unique words: 22548 (92.83 %) Word frequency, sorted by count, top 10 +------------------------------+ | Word | Count | Of total | +------------------------------+ | 4v85ewau | 433 | 1.7827 % | | 123456 | 74 | 0.3047 % | | passord | 23 | 0.0947 % | | liverpool | 17 | 0.07 % | | hemmelig | 14 | 0.0576 % | | 12345678 | 12 | 0.0494 % | | 666666 | 11 | 0.0453 % | | general | 10 | 0.0412 % | | 123456789 | 10 | 0.0412 % | | 12345 | 9 | 0.0371 % | +------------------------------+ Base word (len>=3) frequency, sorted by count, top 10 +------------------------------+ | Word | Count | Of total | +------------------------------+ | v85ewau | 433 | 1.7827 % | | passord | 30 | 0.1235 % | | volvo | 25 | 0.1029 % | | hemmelig | 24 | 0.0988 % | | liverpool | 24 | 0.0988 % | | abc | 17 | 0.07 % | | toyota | 13 | 0.0535 % | | fitte | 12 | 0.0494 % | | general | 11 | 0.0453 % | | pwd | 10 | 0.0412 % | +------------------------------+ Length frequency, sorted by length, full table +----------------------------+ | Length | Count | Of total | +----------------------------+ | 0 | 6 | 0.0247 % | | 1 | 8 | 0.0329 % | | 2 | 1 | 0.0041 % | | 3 | 9 | 0.0371 % | | 4 | 229 | 0.9428 % | | 5 | 376 | 1.548 % | | 6 | 2116 | 8.7118 % | | 7 | 1550 | 6.3815 % | | 8 | 17944 | 73.8771 % | | 9 | 1044 | 4.2982 % | | 10 | 589 | 2.425 % | | 11 | 241 | 0.9922 % | | 12 | 105 | 0.4323 % | | 13 | 44 | 0.1812 % | | 14 | 12 | 0.0494 % | | 15 | 13 | 0.0535 % | | 16 | 2 | 0.0082 % | +----------------------------+ Charset frequency, sorted by count, full table +------------------------------------------------------------------------+ | Charset | Count | Of total | Count/keyspace | +------------------------------------------------------------------------+ | lower-upper-numeric-symbolic | 24278 | 99.9547 % | 255.55789473684212 | | lower-upper-numeric | 24228 | 99.7489 % | 390.7741935483871 | | lower-numeric-symbolic | 23579 | 97.0769 % | 341.72463768115944 | | lower-numeric | 23537 | 96.9039 % | 653.8055555555555 | | lower-upper-symbolic | 4864 | 20.0255 % | 57.22352941176471 | | lower-upper | 4835 | 19.9061 % | 92.98076923076923 | | lower-symbolic | 4652 | 19.1527 % | 78.84745762711864 | | lower | 4624 | 19.0374 % | 177.84615384615384 | | upper-numeric-symbolic | 1148 | 4.7264 % | 16.63768115942029 | | upper-numeric | 1139 | 4.6894 % | 31.63888888888889 | | numeric-symbolic | 1107 | 4.5576 % | 25.74418604651163 | | numeric | 1099 | 4.5247 % | 109.9 | | upper-symbolic | 20 | 0.0823 % | 0.3389830508474576 | | upper | 12 | 0.0494 % | 0.46153846153846156 | | symbolic | 8 | 0.0329 % | 0.24242424242424243 | +------------------------------------------------------------------------+ Charset frequency, sorted by count/keyspace, full table +------------------------------------------------------------------------+ | Charset | Count | Of total | Count/keyspace | +------------------------------------------------------------------------+ | lower-numeric | 23537 | 96.9039 % | 653.8055555555555 | | lower-upper-numeric | 24228 | 99.7489 % | 390.7741935483871 | | lower-numeric-symbolic | 23579 | 97.0769 % | 341.72463768115944 | | lower-upper-numeric-symbolic | 24278 | 99.9547 % | 255.55789473684212 | | lower | 4624 | 19.0374 % | 177.84615384615384 | | numeric | 1099 | 4.5247 % | 109.9 | | lower-upper | 4835 | 19.9061 % | 92.98076923076923 | | lower-symbolic | 4652 | 19.1527 % | 78.84745762711864 | | lower-upper-symbolic | 4864 | 20.0255 % | 57.22352941176471 | | upper-numeric | 1139 | 4.6894 % | 31.63888888888889 | | numeric-symbolic | 1107 | 4.5576 % | 25.74418604651163 | | upper-numeric-symbolic | 1148 | 4.7264 % | 16.63768115942029 | | upper | 12 | 0.0494 % | 0.46153846153846156 | | upper-symbolic | 20 | 0.0823 % | 0.3389830508474576 | | symbolic | 8 | 0.0329 % | 0.24242424242424243 | +------------------------------------------------------------------------+ Hashcat mask frequency, sorted by count, top 10 +--------------------------------------------------------------+ | Mask | Count | Of total | Count/keyspace | +--------------------------------------------------------------+ | ?l?l?l?l?l?l?l?l | 1849 | 7.6125 % | 8.854216304549353e-09 | | ?l?l?l?l?l?l | 1055 | 4.3435 % | 3.415170353747165e-06 | | ?l?l?l?l?l?l?l | 629 | 2.5896 % | 7.831360380995139e-08 | | ?l?l?l?l?l?l?l?d | 587 | 2.4167 % | 7.3084396560320305e-09 | | ?d?l?l?l?l?l?l?l | 542 | 2.2315 % | 6.748167450714413e-09 | | ?l?l?l?l?l?l?d?d | 525 | 2.1615 % | 1.699492356130106e-08 | | ?l?l?d?l?l?l?l?l | 514 | 2.1162 % | 6.39955363407234e-09 | | ?l?l?l?l?l?l?d?l | 502 | 2.0668 % | 6.250147712654309e-09 | | ?l?l?l?l?d?l?l?l | 502 | 2.0668 % | 6.250147712654309e-09 | | ?l?l?l?d?l?l?l?l | 498 | 2.0503 % | 6.200345738848298e-09 | +--------------------------------------------------------------+ Words that didn't match any ?l?u?d?s mask: 11 (0.0453 %) Hashcat mask frequency, sorted by count/keyspace, top 10 +----------------------------------------------------------+ | Mask | Count | Of total | Count/keyspace | +----------------------------------------------------------+ | ?s | 8 | 0.0329 % | 0.24242424242424243 | | ?d?d?d?d | 143 | 0.5887 % | 0.0143 | | ?d?d?d | 2 | 0.0082 % | 0.002 | | ?d?d?d?d?d | 50 | 0.2059 % | 0.0005 | | ?d?d?d?d?d?d | 455 | 1.8733 % | 0.000455 | | ?l?l?l | 7 | 0.0288 % | 0.00039827036868456985 | | ?l?l?l?l | 78 | 0.3211 % | 0.00017068730086481566 | | ?l?d?d?d | 1 | 0.0041 % | 3.846153846153846e-05 | | ?l?l?l?l?l | 259 | 1.0663 % | 2.1798821954628825e-05 | | ?l?l?d?d | 1 | 0.0041 % | 1.4792899408284024e-05 | +----------------------------------------------------------+ Words that didn't match any ?l?u?d?s mask: 11 (0.0453 %) Charset distribution of characters in beginning and end of words (len>=6) +-------------------------------------------------------------------------------------------------+ | Charset\Index | 0 (first char) | 1 | 2 | -3 | -2 | -1 (last char) | +-------------------------------------------------------------------------------------------------+ | lower | 73.6306 % | 78.0558 % | 75.5897 % | 73.1741 % | 68.8617 % | 67.0865 % | | upper | 2.4979 % | 0.3297 % | 0.2874 % | 0.2071 % | 0.2071 % | 0.1691 % | | digits | 23.8208 % | 21.6019 % | 24.1145 % | 26.6061 % | 30.9058 % | 32.6641 % | | symbols | 0.0507 % | 0.0127 % | 0.0085 % | 0.0127 % | 0.0254 % | 0.0803 % | +-------------------------------------------------------------------------------------------------+ Total characters: 190095 Unique characters: 72 Top 50 characters: eanrstm8u453k69d7gphvbcfywj2xzqio1l0SABMTLHDNCKPRE Character frequency, sorted by count, top 10 +------------------------------+ | Character | Count | Of total | +------------------------------+ | e | 9256 | 4.8691 % | | a | 9166 | 4.8218 % | | n | 7428 | 3.9075 % | | r | 7250 | 3.8139 % | | s | 6949 | 3.6555 % | | t | 6505 | 3.422 % | | m | 5837 | 3.0706 % | | 8 | 5725 | 3.0117 % | | u | 5645 | 2.9696 % | | 4 | 5639 | 2.9664 % | +------------------------------+ Symbol frequency, sorted by count, top 10 +----------------+ | Symbol | Count | +----------------+ | . | 20 | | " | 16 | | ! | 9 | | _ | 8 | | @ | 5 | | - | 3 | | * | 2 | | # | 1 | +----------------+