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 presents the forensic synthetic code analysis of openwall/john, a C project with 13,375 GitHub stars. SynthScan v2.0 examined 618,002 lines of code across 1439 source files, recording 2179 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 4.1 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2179 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| 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 |
| 1704 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 | 1933 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | run/lib/PDF.pm | 1947 | #------------------------------------------------------------------------------ | 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 |
|---|---|---|---|---|
| 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 |