John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs
This report summarizes scanner evidence for openwall/john, a C project with 13,752 GitHub stars. SynthScan examined 619,829 lines of code across 1443 source files, recording 2222 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 4.3 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1938 finding(s).
Are imports declared and package/API names verified? 50 finding(s).
Are wrappers, guards, and repeated structures necessary? 266 finding(s).
Which changes need focused human review? 2222 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2222 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit.sh | 1 | #!/bin/sh | COMMENT |
| LOW | .ci/appveyor.yml | 1 | ###################################################################### | COMMENT |
| LOW | doc/DYNAMIC_COMPILER_FORMATS.md | 141 | Added user 'user' to file '~/jboss-as-7.1.1.Final/standalone/configuration/mgmt-users.properties' | COMMENT |
| LOW | doc/Auditing-Kerio-Connect.md | 41 | #!/usr/bin/env python | COMMENT |
| LOW | doc/Auditing-Kerio-Connect.md | 61 | # D3S:c36e4be2280fa230aa5d4a9de5aef11af0cdb947f0ff2757 | COMMENT |
| LOW | doc/extras/AddressSanitizer-HOWTO.txt | 41 | #7 0x405df0 (/home/fd/git/JtR/run/john+0x405df0) | COMMENT |
| LOW | run/pgpdisk2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/keplr2john.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | run/keplr2john.py | 101 | # 'crypto': | COMMENT |
| LOW | run/androidbackup2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/coinomi2john.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | run/staroffice2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/sap2john.pl | 1 | #!/usr/bin/env perl | COMMENT |
| LOW | run/sap2john.pl | 21 | # If the SAP user names (which work as salts for CODVN A, B, D, E, F) | COMMENT |
| LOW | run/sap2john.pl | 41 | # | COMMENT |
| LOW | run/sap2john.pl | 61 | # be considered as valid CODVN B hashes by the current sapB_fmt_plug.c | COMMENT |
| LOW | run/keystore2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/mcafee_epo2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/mcafee_epo2john.py | 21 | # | COMMENT |
| LOW | run/pgpwde2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/axcrypt2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/unrule.pl | 1 | #!/usr/bin/env perl | COMMENT |
| LOW | run/signal2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/signal2john.py | 41 | # of this software and associated documentation files (the "Software"), to deal | COMMENT |
| LOW | run/test_tezos2john.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | run/androidfde2john.py | 41 | import struct | COMMENT |
| LOW | run/androidfde2john.py | 81 | # __le32 flags; /* See above */ | COMMENT |
| LOW | run/cisco2john.pl | 1 | #!/usr/bin/env perl | COMMENT |
| LOW | run/cisco2john.pl | 21 | # enable_secret_level_2:5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 | COMMENT |
| LOW | run/ejabberd2john.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | run/radius2john.pl | 1 | #!/usr/bin/env perl | COMMENT |
| LOW | run/openbsd_softraid2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/keychain2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/keychain2john.py | 21 | # | COMMENT |
| LOW | run/pdf2john.pl | 1 | #!/usr/bin/env perl | COMMENT |
| LOW | run/radius2john.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | run/radius2john.py | 21 | # --- | COMMENT |
| LOW | run/sspr2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/sspr2john.py | 61 | sys.stderr.write("This utility requires ldap3 python package to be installed.\n") | COMMENT |
| LOW | run/electrum2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/zed2john.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | run/lotus2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/bitcoin2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/telegram2john.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | run/telegram2john.py | 21 | # | COMMENT |
| LOW | run/telegram2john.py | 241 | return False | COMMENT |
| LOW | run/apop2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/7z2john.pl | 21 | COMMENT | |
| LOW | run/7z2john.pl | 41 | # the fields of this format are separate by the dollar ("$") sign: | COMMENT |
| LOW | run/7z2john.pl | 61 | # [length of encrypted data] # the encrypted data length in bytes | COMMENT |
| LOW | run/7z2john.pl | 81 | # This field is the first field after the hash signature (i.e. after "$7z$). | COMMENT |
| LOW | run/7z2john.pl | 101 | # - 2 means that the data must be post-processed using BCJ2 (four data streams needed) | COMMENT |
| LOW | run/7z2john.pl | 121 | # - the first attribute/item/codec for both fields (compressor and preprocessor attributes) needs no type and order in | COMMENT |
| LOW | run/pgpsda2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/netntlm.pl | 1 | #!/usr/bin/env perl | COMMENT |
| LOW | run/kirbi2john.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | run/ethereum2john.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | run/kdcdump2john.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | run/pse2john.py | 1 | #!/usr/bin/env python2 | COMMENT |
| LOW | run/multibit2john.py | 1 | #!/usr/bin/env python | COMMENT |
| 1714 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | run/pdf2john.pl | 2 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/pdf2john.pl | 11 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/pdf2john.pl | 261 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/pdf2john.pl | 1398 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | run/pdf2john.pl | 1587 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | run/pdf2john.pl | 1596 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 15 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 448 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 456 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 486 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 568 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 581 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 655 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 715 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 887 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 950 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1067 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1085 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1111 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1337 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1380 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1401 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1418 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1428 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1721 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1934 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1948 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 1 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 30 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 48 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 84 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 93 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 112 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 128 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 161 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 235 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 299 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 315 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 324 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/RandomAccess.pm | 377 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | run/lib/ExifTool.pm | 4565 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | run/lib/ExifTool.pm | 4574 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | run/lib/ExifTool.pm | 4583 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 14 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 842 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 867 | #============================================================================== | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 892 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 936 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1018 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1093 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1369 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1472 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1502 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1573 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1587 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1597 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1851 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 1865 | #------------------------------------------------------------------------------ | COMMENT |
| 87 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | run/blockchain2john.py | 66 | except: | CODE |
| HIGH | run/signal2john.py | 364 | except AttributeError: | CODE |
| HIGH | run/signal2john.py | 395 | except ValueError: | CODE |
| HIGH | run/signal2john.py | 512 | except AttributeError: # pragma no cover | CODE |
| HIGH | run/sspr2john.py | 392 | except AttributeError: | CODE |
| HIGH | run/sspr2john.py | 423 | except ValueError: | CODE |
| HIGH | run/sspr2john.py | 540 | except AttributeError: # pragma no cover | CODE |
| HIGH | run/electrum2john.py | 73 | except: | CODE |
| HIGH | run/hccapx2john.py | 55 | except struct.error: | CODE |
| HIGH | run/mac2john.py | 318 | except ValueError as e: | CODE |
| HIGH | run/mac2john.py | 571 | except: pass | CODE |
| HIGH | run/adxcsouf2john.py | 104 | except: | CODE |
| HIGH | run/pcap2john.py | 346 | except: | CODE |
| HIGH | run/pcap2john.py | 1426 | except: | CODE |
| HIGH | run/pcap2john.py | 1430 | except: | CODE |
| HIGH | run/pcap2john.py | 1434 | except: | CODE |
| HIGH | run/pcap2john.py | 1439 | except: | CODE |
| HIGH | run/pcap2john.py | 1443 | except: | CODE |
| HIGH | run/pcap2john.py | 1447 | except: | CODE |
| HIGH | run/pcap2john.py | 1451 | except: | CODE |
| HIGH | run/pcap2john.py | 1455 | except: | CODE |
| HIGH | run/pcap2john.py | 1459 | except: | CODE |
| HIGH | run/pcap2john.py | 1463 | except: | CODE |
| HIGH | run/pcap2john.py | 1467 | except: | CODE |
| HIGH | run/pcap2john.py | 1472 | except: | CODE |
| HIGH | run/pcap2john.py | 1477 | except: | CODE |
| HIGH | run/pcap2john.py | 1481 | except: | CODE |
| HIGH | run/pcap2john.py | 1485 | except: | CODE |
| HIGH | run/pcap2john.py | 1489 | except: | CODE |
| HIGH | run/pcap2john.py | 1494 | except: | CODE |
| HIGH | run/pcap2john.py | 1499 | except: | CODE |
| HIGH | run/pcap2john.py | 1407 | except Exception: | CODE |
| HIGH | run/dns/set.py | 61 | except ValueError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run/staroffice2john.py | 23 | CODE | |
| LOW | run/keystore2john.py | 79 | CODE | |
| LOW | run/signal2john.py | 405 | CODE | |
| LOW | run/signal2john.py | 154 | CODE | |
| LOW | run/fvde2john.py | 305 | CODE | |
| LOW | run/fvde2john.py | 352 | CODE | |
| LOW | run/ejabberd2john.py | 59 | CODE | |
| LOW | run/pem2john.py | 56 | CODE | |
| LOW | run/radius2john.py | 65 | CODE | |
| LOW | run/sspr2john.py | 433 | CODE | |
| LOW | run/sspr2john.py | 547 | CODE | |
| LOW | run/sspr2john.py | 182 | CODE | |
| LOW | run/electrum2john.py | 57 | CODE | |
| LOW | run/telegram2john.py | 284 | CODE | |
| LOW | run/ethereum2john.py | 53 | CODE | |
| LOW | run/pfx2john.py | 38 | CODE | |
| LOW | run/multibit2john.py | 26 | CODE | |
| LOW | run/cardano2john.py | 34 | CODE | |
| LOW | run/ssh2john.py | 50 | CODE | |
| LOW | run/ssh2john.py | 72 | CODE | |
| LOW | run/aem2john.py | 39 | CODE | |
| LOW | run/1password2john.py | 241 | CODE | |
| LOW | run/mac2john.py | 154 | CODE | |
| LOW | run/mac2john.py | 186 | CODE | |
| LOW | run/mac2john.py | 321 | CODE | |
| LOW | run/mac2john.py | 499 | CODE | |
| LOW | run/libreoffice2john.py | 27 | CODE | |
| LOW | run/office2john.py | 32 | CODE | |
| LOW | run/office2john.py | 170 | CODE | |
| LOW | run/office2john.py | 246 | CODE | |
| LOW | run/office2john.py | 357 | CODE | |
| LOW | run/office2john.py | 439 | CODE | |
| LOW | run/office2john.py | 657 | CODE | |
| LOW | run/krb2john.py | 43 | CODE | |
| LOW | run/DPAPImk2john.py | 410 | CODE | |
| LOW | run/DPAPImk2john.py | 608 | CODE | |
| LOW | run/pcap2john.py | 75 | CODE | |
| LOW | run/pcap2john.py | 240 | CODE | |
| LOW | run/pcap2john.py | 316 | CODE | |
| LOW | run/pcap2john.py | 484 | CODE | |
| LOW | run/pcap2john.py | 641 | CODE | |
| LOW | run/pcap2john.py | 689 | CODE | |
| LOW | run/pcap2john.py | 842 | CODE | |
| LOW | run/pcap2john.py | 933 | CODE | |
| LOW | run/pcap2john.py | 972 | CODE | |
| LOW | run/pcap2john.py | 1093 | CODE | |
| LOW | run/pcap2john.py | 1164 | CODE | |
| LOW | run/pcap2john.py | 1239 | CODE | |
| LOW | run/pcap2john.py | 1327 | CODE | |
| LOW | run/pcap2john.py | 122 | CODE | |
| LOW | run/pcap2john.py | 139 | CODE | |
| LOW | run/aix2john.py | 24 | CODE | |
| LOW | run/ecryptfs2john.py | 18 | CODE | |
| LOW | run/bks2john.py | 97 | CODE | |
| LOW | run/openssl2john.py | 24 | CODE | |
| LOW | run/bitwarden2john.py | 85 | CODE | |
| LOW | run/ccl_chrome_indexeddb/ccl_leveldb.py | 295 | CODE | |
| LOW | run/ccl_chrome_indexeddb/ccl_leveldb.py | 335 | CODE | |
| LOW | run/ccl_chrome_indexeddb/ccl_leveldb.py | 405 | CODE | |
| LOW | run/ccl_chrome_indexeddb/ccl_leveldb.py | 491 | CODE | |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | run/keplr2john.py | 138 | print(f"Error: kdf '{key_store['crypto']['kdf']}' different from 'scrypt'", file=sys.stderr) | CODE |
| MEDIUM⚡ | run/keplr2john.py | 145 | print(f"Error: kdfparams:dklen '{key_store['crypto']['kdfparams']['dklen']}' different from 32", fil | CODE |
| MEDIUM⚡ | run/keplr2john.py | 148 | print(f"Error: kdfparams:n '{key_store['crypto']['kdfparams']['n']}' different from 131072", file=sy | CODE |
| MEDIUM⚡ | run/keplr2john.py | 151 | print(f"Error: kdfparams:p '{key_store['crypto']['kdfparams']['p']}' different from 1", file=sys.std | CODE |
| MEDIUM⚡ | run/keplr2john.py | 154 | print(f"Error: kdfparams:r '{key_store['crypto']['kdfparams']['r']}' different from 8", file=sys.std | CODE |
| MEDIUM⚡ | run/keplr2john.py | 159 | print("Error: No username found", file=sys.stderr) | CODE |
| MEDIUM⚡ | run/keplr2john.py | 165 | print("Error: No ciphertext found", file=sys.stderr) | CODE |
| MEDIUM⚡ | run/keplr2john.py | 169 | print("Error: Ciphertext not in hexadecimal format", file=sys.stderr) | CODE |
| MEDIUM⚡ | run/keplr2john.py | 174 | print("Error: No salt found", file=sys.stderr) | CODE |
| MEDIUM⚡ | run/keplr2john.py | 178 | print("Error: Salt not in hexadecimal format", file=sys.stderr) | CODE |
| MEDIUM⚡ | run/keplr2john.py | 181 | print(f"Error: Salt size is {len(salt_hex)//2} and should be 32", file=sys.stderr) | CODE |
| MEDIUM⚡ | run/keplr2john.py | 186 | print("Error: No mac found", file=sys.stderr) | CODE |
| MEDIUM⚡ | run/keplr2john.py | 190 | print("Error: MAC not in hexadecimal format", file=sys.stderr) | CODE |
| MEDIUM⚡ | run/keplr2john.py | 193 | print(f"Error: Salt size is {len(mac_hex)//2} and should be 32", file=sys.stderr) | CODE |
| MEDIUM | run/keplr2john.py | 39 | print('Error: Too few or too much parameters', file=sys.stderr) | CODE |
| MEDIUM | run/keplr2john.py | 63 | print(f'Error loading database: {e}', file=sys.stderr) | CODE |
| MEDIUM | run/keplr2john.py | 125 | print("Error: No crypto found", file=sys.stderr) | CODE |
| MEDIUM | run/keplr2john.py | 269 | print(f'Error testing supplied password: {e}', file=sys.stderr) | CODE |
| LOW | run/keplr2john.py | 62 | except Exception as e: | CODE |
| LOW | run/keplr2john.py | 268 | except Exception as e: | CODE |
| MEDIUM | run/bitlocker2john.py | 63 | print("Error reading out of bounds of file, exiting.", file=sys.stderr) | CODE |
| LOW | run/gitea2john.py | 38 | except Exception: | CODE |
| LOW | run/bitcoin2john.py | 192 | except Exception: | CODE |
| MEDIUM | run/bitcoin2john.py | 96 | def read_bytes(self, length): | CODE |
| LOW | run/truecrypt2john.py | 30 | except Exception as e: | CODE |
| MEDIUM | run/truecrypt2john.py | 27 | def process_file(filename, keyfiles, options): | CODE |
| LOW | run/mac2john.py | 179 | except Exception as e: | CODE |
| LOW | run/mac2john.py | 647 | except Exception: | CODE |
| MEDIUM | run/mac2john.py | 314 | def endOffsetProtection(self, offset): | CODE |
| LOW | run/office2john.py | 697 | except Exception: | CODE |
| MEDIUM | run/netscreen.py | 107 | print("Error in input file.", file=sys.stderr) | CODE |
| LOW | run/pcap2john.py | 1407 | except Exception: | CODE |
| MEDIUM | run/ccl_chrome_indexeddb/ccl_chromium_sessionstorage.py | 144 | print(f"Error decoding value for {key}") | CODE |
| MEDIUM | run/ccl_chrome_indexeddb/ccl_chromium_localstorage.py | 161 | print(f"Error decoding record value at seq no {record.seq}; " | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_chromium_indexeddb.py | 460 | except Exception: | CODE |
| LOW | run/dns/message.py | 868 | except Exception: | CODE |
| LOW | run/dns/message.py | 901 | except Exception: | CODE |
| LOW | run/dns/message.py | 914 | except Exception: | CODE |
| LOW | run/dns/name.py | 120 | except Exception as e: | CODE |
| LOW | run/dns/name.py | 159 | except Exception as e: | CODE |
| MEDIUM | src/opencl_generate_dynamic_loader.py | 117 | print("Error parsing CL.h header file") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | run/pfx2john.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| HIGH | run/ccl_chrome_indexeddb/ccl_leveldb.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| HIGH | run/ccl_chrome_indexeddb/ccl_chromium_indexeddb.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| HIGH | run/ccl_chrome_indexeddb/ccl_chromium_sessionstorage.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| HIGH | run/ccl_chrome_indexeddb/ccl_chromium_localstorage.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| HIGH | …/ccl_chrome_indexeddb/Chromium_dump_session_storage.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| HIGH | run/ccl_chrome_indexeddb/Chromium_dump_local_storage.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| HIGH | run/ccl_chrome_indexeddb/ccl_simplesnappy.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| HIGH | …n/ccl_chrome_indexeddb/ccl_blink_value_deserializer.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| HIGH | run/ccl_chrome_indexeddb/ccl_v8_value_deserializer.py | 0 | copyright 2020, ccl forensics permission is hereby granted, free of charge, to any person obtaining a copy of this softw | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run/pgpdisk2john.py | 14 | CODE | |
| LOW | run/coinomi2john.py | 30 | CODE | |
| LOW | run/mosquitto2john.py | 11 | CODE | |
| LOW | run/mosquitto2john.py | 11 | CODE | |
| LOW | run/mosquitto2john.py | 12 | CODE | |
| LOW | run/mosquitto2john.py | 13 | CODE | |
| LOW | run/pgpwde2john.py | 14 | CODE | |
| LOW | run/pgpwde2john.py | 17 | CODE | |
| LOW | run/signal2john.py | 25 | CODE | |
| LOW | run/signal2john.py | 27 | CODE | |
| LOW | run/test_tezos2john.py | 25 | CODE | |
| LOW | run/test_tezos2john.py | 28 | CODE | |
| LOW | run/test_tezos2john.py | 29 | CODE | |
| LOW | run/test_tezos2john.py | 30 | CODE | |
| LOW | run/test_tezos2john.py | 31 | CODE | |
| LOW | run/test_tezos2john.py | 32 | CODE | |
| LOW | run/test_tezos2john.py | 33 | CODE | |
| LOW | run/test_tezos2john.py | 36 | CODE | |
| LOW | run/hccapx2john.py | 17 | CODE | |
| LOW | run/zed2john.py | 17 | CODE | |
| LOW | run/zed2john.py | 19 | CODE | |
| LOW | run/zed2john.py | 21 | CODE | |
| LOW | run/zed2john.py | 22 | CODE | |
| LOW | run/apop2john.py | 22 | CODE | |
| LOW | run/apop2john.py | 15 | CODE | |
| LOW | run/oubliette2john.py | 11 | CODE | |
| LOW | run/multibit2john.py | 23 | CODE | |
| LOW | run/mac2john.py | 90 | CODE | |
| LOW | run/mac2john.py | 92 | CODE | |
| LOW | run/mac2john.py | 612 | CODE | |
| LOW | run/vmx2john.py | 14 | CODE | |
| LOW | run/adxcsouf2john.py | 35 | CODE | |
| LOW | run/pcap2john.py | 59 | CODE | |
| LOW | run/pcap2john.py | 68 | CODE | |
| LOW | run/tezos2john.py | 46 | CODE | |
| LOW | run/dns/message.py | 18 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | run/mongodb2john.js | 78 | print(c['user'] + '-' + c['db'] + ':' + '$mongodb$0$' + c['user'] + '$' + c['credentials']['MONGODB-CR']); | CODE |
| HIGH⚡ | run/mongodb2john.js | 79 | print(c['user'] + ':' + '$dynamic_1550$' + c['credentials']['MONGODB-CR']); | CODE |
| HIGH⚡ | run/mongodb2john.js | 85 | print(c['user'] + '-' + c['db'] + ':' + shash); | CODE |
| HIGH⚡ | run/mongodb2john.js | 90 | print(c['user'] + '-' + c['db'] + ':' + shash); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | run/coinomi2john.py | 10 | # This file is part of btcrecover. | COMMENT |
| MEDIUM | run/ssh2john.py | 15 | # This file is part of ssh. | COMMENT |
| MEDIUM | run/DPAPImk2john.py | 9 | # This file is part of DPAPIck | COMMENT |
| MEDIUM | run/DPAPImk2john.py | 43 | """This class is a helper for parsing binary structures.""" | STRING |
| MEDIUM | run/DPAPImk2john.py | 199 | """This class is used to wrap Microsoft algorithm IDs with M2Crypto""" | STRING |
| MEDIUM | run/DPAPImk2john.py | 361 | """This class represents a MasterKey block contained in a MasterKeyFile""" | STRING |
| MEDIUM | run/DPAPImk2john.py | 500 | """This class represents a masterkey file.""" | STRING |
| MEDIUM | run/DPAPImk2john.py | 587 | """This class is the pivot for using DPAPIck. It manages all the DPAPI | STRING |
| MEDIUM | run/fuzz_option.pl | 3 | # This file is part of John the Ripper password cracker, | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 58 | # The following functions defined in ExifTool::Writer are declared | COMMENT |
| MEDIUM | run/lib/ExifTool.pm | 2314 | # Initialize member variables for reading or writing a new file | COMMENT |
| MEDIUM | src/best.sh | 3 | # This file is part of John the Ripper password cracker, | COMMENT |
| MEDIUM | src/Unicode/mkdumb.pl | 3 | # Create an array of every Unicode character, from official Unicode Database | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run/bitlocker2john.py | 104 | def parse_aes_ccm_encrypted_key(data): | CODE |
| LOW | run/bitlocker2john.py | 114 | def parse_volume_header_block(data): | CODE |
| LOW | run/bitlocker2john.py | 185 | def parse_fve_metadata_header_data(header_data): | CODE |
| LOW | run/bitlocker2john.py | 191 | def parse_fve_metadata_header(block): | CODE |
| LOW | run/fvde2john.py | 162 | def get_all_partitions_of_type(partition_dict, part_type): | CODE |
| LOW | run/fvde2john.py | 227 | def parse_metadata_block_header(metadata_block_header): | CODE |
| LOW | run/fvde2john.py | 256 | def parse_volume_group_descriptor(volume_group_descriptor): | CODE |
| LOW | run/zed2john.py | 87 | def parse_decode_global_properties(filename): | CODE |
| LOW | run/telegram2john.py | 125 | def is_correct_ige_decryption(file_path, key, data): | CODE |
| LOW | run/kirbi2john.py | 24 | def extract_ticket_from_kirbi(filename): | CODE |
| LOW | run/pcap2john.py | 1293 | def pcap_parser_http_authorization(fname): | CODE |
| LOW | run/pkcs12kdf.py | 67 | def generate_derived_parameters(self, id): | CODE |
| LOW | run/tezos2john.py | 66 | def from_int_representation_to_bytes(a): | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_leveldb.py | 73 | def read_length_prefixed_blob(stream: typing.BinaryIO): | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_chromium_localstorage.py | 256 | def iter_records_for_storage_key(self, storage_key) -> typing.Iterable[LocalStorageRecord]: | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_chromium_localstorage.py | 268 | def iter_records_for_script_key(self, storage_key, script_key) -> typing.Iterable[LocalStorageRecord]: | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_chromium_localstorage.py | 288 | def iter_metadata_for_storage_key(self, storage_key: str) -> typing.Iterable[StorageMetadata]: | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_chromium_indexeddb.py | 360 | def get_object_store_metadata(self, db_id: int, obj_store_id: int, meta_type: ObjectStoreMetadataType): | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_chromium_indexeddb.py | 376 | def _get_raw_database_metadata(self, live_only=True): | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_chromium_indexeddb.py | 397 | def _get_raw_object_store_metadata(self, live_only=True): | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_v8_value_deserializer.py | 335 | def _read_object_by_reference(self) -> typing.Any: | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_v8_value_deserializer.py | 367 | def _read_js_object_properties(self, end_tag) -> typing.Iterable[typing.Tuple[typing.Any, typing.Any]]: | CODE |
| LOW | run/ccl_chrome_indexeddb/ccl_v8_value_deserializer.py | 502 | def _wrap_js_array_buffer_view(self, raw: bytes) -> tuple: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/dynamic_big_crypt_generated.c | 5 | * NOTE. This file IS 100% auto-generated code. | COMMENT |
| HIGH | src/dynamic_big_crypt_generator.sh | 17 | * NOTE. This file IS 100% auto-generated code. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run/fvde2john.py | 306 | o = offsets[0] # all metadata blocks equal so just use first | CODE |
| LOW⚡ | run/pdf2john.pl | 1598 | # Inputs: 0) ExifTool ref, 1) list ref to just return full file names | COMMENT |
| MEDIUM | run/netntlm.pl | 240 | # Add custom wordlist to utilize NTLM hash for character case cracking | COMMENT |
| MEDIUM | run/krb2john.py | 136 | spnps = msg.xpath('.//field[@name="kerberos.SNameString"]') # is this robust enough? | CODE |
| MEDIUM | run/krb2john.py | 136 | spnps = msg.xpath('.//field[@name="kerberos.SNameString"]') # is this robust enough? | CODE |
| LOW | run/pass_gen.pl | 729 | # if the 'magic' option -tstall is used, we simply call a function that calls | COMMENT |
| LOW | run/lib/RandomAccess.pm | 25 | # May also be used for string i/o (just pass a scalar reference) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | run/mac2john.py | 337 | # bool, null, or fill byte | COMMENT |
| HIGH | src/opencl_generate_dynamic_loader.py | 72 | if ((!num_entries && platforms) || (!num_platforms && !platforms)) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run/deepsound2john.py | 64 | # Check if it's a .wav file | COMMENT |
| LOW | run/ccache2john.py | 767 | # Check if you've reached the end of the file. If not get the next credential | COMMENT |
| LOW | run/ecryptfs2john.py | 28 | version = f.read(2) # Read file version | CODE |
| LOW | run/tezos2john.py | 183 | ### Check if the provided seed words conform to the Tezos ICO rules | COMMENT |
| LOW | run/tezos2john.py | 224 | ### Check if the seed words form a valid checksum. All ICO wallets have a valid seed checksum. | COMMENT |
| LOW | run/tezos2john.py | 290 | #Check if it is a valid email address | COMMENT |
| LOW | src/best.sh | 52 | # Check if bitslice DES is faster | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/mkv.c | 355 | char *dummy_token = NULL; | CODE |
| LOW⚡ | src/mkv.c | 392 | dummy_token = strtokm(NULL, ":"); | CODE |
| LOW⚡ | src/mkv.c | 393 | if (dummy_token) { | CODE |
| LOW⚡ | src/mkv.c | 397 | " %s\n", dummy_token); | CODE |
| LOW | src/formats.c | 1670 | char fake_user[5] = "john"; | CODE |
| LOW | src/formats.c | 1682 | flds[0] = fake_user; | CODE |
| LOW | src/formats.c | 1956 | char fake_user[5] = "john"; | CODE |
| LOW | src/formats.c | 1980 | flds[0] = fake_user; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run/signal2john.py | 405 | CODE | |
| LOW | run/signal2john.py | 100 | CODE | |
| LOW | run/fvde2john.py | 184 | CODE | |
| LOW | run/sspr2john.py | 433 | CODE | |
| LOW | run/sspr2john.py | 128 | CODE | |
| LOW | run/mac2john.py | 397 | CODE | |
| LOW | run/tezos2john.py | 116 | CODE | |
| LOW | …n/ccl_chrome_indexeddb/ccl_blink_value_deserializer.py | 163 | CODE | |
| LOW | run/dns/message.py | 716 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/sapB_fmt_plug.c | 5 | * please note: this code is in a "works for me"-state, feel free to modify/speed up/clean/whatever it... | COMMENT |
| LOW | src/argon2_opt_plug.c | 223 | /* Don't forget to generate the first block of addresses: */ | COMMENT |
| MEDIUM | src/sapG_fmt_plug.c | 6 | * Please note: this code is in a "works for me"-state, feel free to modify/speed up/clean/whatever it... | COMMENT |
| LOW | src/argon2_ref_plug.c | 134 | /* Don't forget to generate the first block of addresses: */ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | run/pkcs12kdf.py | 111 | # Step 1: Construct a string, D (the "diversifier"), by concatenating v copies of ID. | COMMENT |
| LOW⚡ | run/pkcs12kdf.py | 117 | # Step 2: Concatenate copies of the salt, s, together to create a string S of length v * [s/v] bits (the | COMMENT |
| LOW | run/pkcs12kdf.py | 132 | # Step 3: Concatenate copies of the password, p, together to create a string P of length v * [p/v] bits | COMMENT |
| LOW | run/pkcs12kdf.py | 147 | # Step 4: Set I=S||P to be the concatenation of S and P. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | run/pkcs12kdf.py | 111 | # Step 1: Construct a string, D (the "diversifier"), by concatenating v copies of ID. | COMMENT |
| LOW⚡ | run/pkcs12kdf.py | 117 | # Step 2: Concatenate copies of the salt, s, together to create a string S of length v * [s/v] bits (the | COMMENT |
| LOW | run/pkcs12kdf.py | 132 | # Step 3: Concatenate copies of the password, p, together to create a string P of length v * [p/v] bits | COMMENT |
| LOW | run/pkcs12kdf.py | 147 | # Step 4: Set I=S||P to be the concatenation of S and P. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run/pdf2john.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | run/mac2john.py | 110 | __all__ = [ | CODE |
| LOW | run/dns/__init__.py | 18 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run/tokenize.pl | 11 | # Usage example: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run/ccl_chrome_indexeddb/ccl_v8_value_deserializer.py | 404 | # TODO: implement a sparse list so that this isn't so horribly inefficient | COMMENT |