Repository Analysis

secdev/scapy

Scapy: the Python-based interactive packet manipulation program & library.

12.4 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of secdev/scapy, a Python project with 12,501 GitHub stars. SynthScan v2.0 examined 269,246 lines of code across 447 source files, recording 2276 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 12.4 places this repository in the Low AI signal 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).

12.4
Adjusted Score
12.4
Raw Score
100%
Time Factor
2026-08-28
Last Push
12.5K
Stars
Python
Language
269.2K
Lines of Code
447
Files
2.3K
Pattern Hits
2026-08-29
Scan Date
0.12
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 4HIGH 51MEDIUM 479LOW 1742

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 2276 distinct pattern matches across 17 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.

Self-Referential Comments447 hits · 1323 pts
SeverityFileLineSnippetContext
MEDIUM.config/ci/openssl.py2# This file is part of ScapyCOMMENT
MEDIUM.config/ci/install.sh4# This file is part of ScapyCOMMENT
MEDIUM.config/ci/zipapp.sh4# This file is part of ScapyCOMMENT
MEDIUM.config/ci/test.sh4# This file is part of ScapyCOMMENT
MEDIUM.config/ci/openldap/install.sh4# This file is part of ScapyCOMMENT
MEDIUM.config/mypy/mypy_check.py2# This file is part of ScapyCOMMENT
MEDIUM.config/mypy/mypy_deployment_stats.py2# This file is part of ScapyCOMMENT
MEDIUMtest/testsocket.py2# This file is part of ScapyCOMMENT
MEDIUMtest/benchmark/latency_router.py2# This file is part of ScapyCOMMENT
MEDIUMtest/benchmark/common.py2# This file is part of ScapyCOMMENT
MEDIUMtest/benchmark/dissection_and_build.py2# This file is part of ScapyCOMMENT
MEDIUMtest/scapy/layers/tls/__init__.py2# This file is part of ScapyCOMMENT
MEDIUMtest/scapy/layers/tls/example_client.py4# This file is part of ScapyCOMMENT
MEDIUMtest/scapy/layers/tls/example_server.py4# This file is part of ScapyCOMMENT
MEDIUMtest/contrib/automotive/interface_mockup.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/themes.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/interfaces.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/sendrecv.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/pipetool.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/dadict.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/sessions.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/plist.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/asn1packet.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/config.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/config.py664 # Create the extensionCOMMENT
MEDIUMscapy/compat.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/error.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/fields.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/fields.py1760 default = [] # Create a new list for each instanceCODE
MEDIUMscapy/fields.py2114 default = [] # Create a new list for each instanceCODE
MEDIUMscapy/pton_ntop.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/autorun.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/cborpacket.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/route.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/base_classes.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/ansmachine.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/fwdmachine.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/__init__.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/all.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/supersocket.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/supersocket.py299 """This function is called during sendrecv() routine to selectSTRING
MEDIUMscapy/consts.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/asn1fields.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/utils.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/route6.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/packet.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/volatile.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/scapypipes.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/main.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/utils6.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/automaton.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/as_resolvers.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/__main__.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/data.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/asn1/mib.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/asn1/mib.py191 # Create the new MIBCOMMENT
MEDIUMscapy/asn1/__init__.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/asn1/ber.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/asn1/asn1.py2# This file is part of ScapyCOMMENT
MEDIUMscapy/tools/generate_manuf.py2# This file is part of ScapyCOMMENT
387 more matches not shown…
Unused Imports759 hits · 717 pts
SeverityFileLineSnippetContext
LOWtest/testsocket.py17CODE
LOWtest/testsocket.py21CODE
LOWtest/testsocket.py21CODE
LOWtest/testsocket.py21CODE
LOWtest/testsocket.py21CODE
LOWtest/testsocket.py21CODE
LOWtest/testsocket.py30CODE
LOWtest/testsocket.py30CODE
LOWtest/benchmark/latency_router.py9CODE
LOWtest/benchmark/common.py12CODE
LOWtest/benchmark/dissection_and_build.py6CODE
LOWtest/scapy/layers/tls/example_client.py12CODE
LOWtest/scapy/layers/tls/example_client.py17CODE
LOWtest/scapy/layers/tls/example_server.py15CODE
LOWtest/scapy/layers/tls/example_server.py16CODE
LOWtest/scapy/layers/tls/example_server.py19CODE
LOWtest/contrib/automotive/interface_mockup.py75CODE
LOWtest/contrib/automotive/interface_mockup.py83CODE
LOWscapy/themes.py17CODE
LOWscapy/themes.py17CODE
LOWscapy/interfaces.py20CODE
LOWscapy/interfaces.py22CODE
LOWscapy/interfaces.py22CODE
LOWscapy/interfaces.py22CODE
LOWscapy/interfaces.py22CODE
LOWscapy/interfaces.py22CODE
LOWscapy/interfaces.py22CODE
LOWscapy/sendrecv.py29CODE
LOWscapy/sendrecv.py42CODE
LOWscapy/sendrecv.py42CODE
LOWscapy/sendrecv.py42CODE
LOWscapy/sendrecv.py42CODE
LOWscapy/sendrecv.py59CODE
LOWscapy/pipetool.py22CODE
LOWscapy/pipetool.py22CODE
LOWscapy/pipetool.py22CODE
LOWscapy/pipetool.py22CODE
LOWscapy/pipetool.py22CODE
LOWscapy/pipetool.py22CODE
LOWscapy/pipetool.py22CODE
LOWscapy/pipetool.py22CODE
LOWscapy/dadict.py14CODE
LOWscapy/dadict.py14CODE
LOWscapy/dadict.py14CODE
LOWscapy/dadict.py14CODE
LOWscapy/dadict.py14CODE
LOWscapy/dadict.py14CODE
LOWscapy/dadict.py14CODE
LOWscapy/dadict.py25CODE
LOWscapy/sessions.py20CODE
LOWscapy/sessions.py20CODE
LOWscapy/sessions.py20CODE
LOWscapy/sessions.py35CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
699 more matches not shown…
Deep Nesting416 hits · 380 pts
SeverityFileLineSnippetContext
LOWscapy/themes.py379CODE
LOWscapy/sendrecv.py373CODE
LOWscapy/sendrecv.py528CODE
LOWscapy/sendrecv.py608CODE
LOWscapy/sendrecv.py778CODE
LOWscapy/sendrecv.py1422CODE
LOWscapy/sendrecv.py119CODE
LOWscapy/sendrecv.py314CODE
LOWscapy/sendrecv.py1170CODE
LOWscapy/sendrecv.py1475CODE
LOWscapy/pipetool.py126CODE
LOWscapy/pipetool.py187CODE
LOWscapy/sessions.py277CODE
LOWscapy/plist.py513CODE
LOWscapy/plist.py615CODE
LOWscapy/plist.py658CODE
LOWscapy/plist.py744CODE
LOWscapy/plist.py621CODE
LOWscapy/config.py827CODE
LOWscapy/error.py48CODE
LOWscapy/fields.py500CODE
LOWscapy/fields.py541CODE
LOWscapy/fields.py789CODE
LOWscapy/fields.py865CODE
LOWscapy/fields.py957CODE
LOWscapy/fields.py995CODE
LOWscapy/fields.py1261CODE
LOWscapy/fields.py1771CODE
LOWscapy/fields.py1800CODE
LOWscapy/fields.py2533CODE
LOWscapy/fields.py2594CODE
LOWscapy/fields.py2609CODE
LOWscapy/fields.py2790CODE
LOWscapy/fields.py3312CODE
LOWscapy/fields.py3579CODE
LOWscapy/fields.py3600CODE
LOWscapy/fields.py3629CODE
LOWscapy/fields.py3883CODE
LOWscapy/pton_ntop.py25CODE
LOWscapy/autorun.py55CODE
LOWscapy/base_classes.py365CODE
LOWscapy/fwdmachine.py241CODE
LOWscapy/fwdmachine.py365CODE
LOWscapy/supersocket.py637CODE
LOWscapy/supersocket.py143CODE
LOWscapy/asn1fields.py759CODE
LOWscapy/asn1fields.py848CODE
LOWscapy/asn1fields.py907CODE
LOWscapy/utils.py400CODE
LOWscapy/utils.py1001CODE
LOWscapy/utils.py1113CODE
LOWscapy/utils.py2991CODE
LOWscapy/utils.py3320CODE
LOWscapy/utils.py3964CODE
LOWscapy/utils.py1417CODE
LOWscapy/utils.py1776CODE
LOWscapy/utils.py1808CODE
LOWscapy/utils.py2024CODE
LOWscapy/utils.py3806CODE
LOWscapy/utils.py3840CODE
356 more matches not shown…
Excessive Try-Catch Wrapping218 hits · 232 pts
SeverityFileLineSnippetContext
LOWsetup.py106except Exception:CODE
LOWtest/contrib/automotive/interface_mockup.py64 except Exception as e:CODE
LOWscapy/themes.py385 except Exception:CODE
LOWscapy/sendrecv.py1338 except Exception:CODE
LOWscapy/sendrecv.py1342 except Exception as ex:CODE
LOWscapy/sendrecv.py1347 except Exception as ex2:CODE
LOWscapy/sendrecv.py291 except Exception:CODE
LOWscapy/sendrecv.py592 except Exception:CODE
LOWscapy/sendrecv.py658 except Exception as parse_exception:CODE
LOWscapy/sendrecv.py1159 except Exception as ex:CODE
LOWscapy/sendrecv.py1484 except Exception:CODE
LOWscapy/sendrecv.py1502 except Exception:CODE
LOWscapy/pipetool.py156 except Exception as e:CODE
LOWscapy/pipetool.py196 except Exception:CODE
LOWscapy/plist.py494 except Exception:CODE
LOWscapy/plist.py552 except Exception:CODE
LOWscapy/config.py684 except Exception as ex:CODE
LOWscapy/config.py777 except Exception:CODE
LOWscapy/config.py796 except Exception:CODE
LOWscapy/config.py816 except Exception:CODE
LOWscapy/config.py1260 except Exception:CODE
LOWscapy/fields.py894 except Exception:CODE
LOWscapy/fields.py1630 except Exception:CODE
LOWscapy/fields.py1832 except Exception:CODE
LOWscapy/fields.py1919 except Exception:CODE
LOWscapy/base_classes.py470 except Exception:CODE
LOWscapy/ansmachine.py271 except Exception:CODE
LOWscapy/fwdmachine.py183 except Exception:CODE
LOWscapy/fwdmachine.py442 except Exception as ex:CODE
LOWscapy/fwdmachine.py520 except Exception as ex:CODE
LOWscapy/__init__.py164 except Exception:CODE
LOWscapy/__init__.py174 except Exception:CODE
LOWscapy/supersocket.py222 except Exception:CODE
LOWscapy/supersocket.py386 except Exception:CODE
LOWscapy/utils.py3449 except Exception:CODE
LOWscapy/utils.py3452 except Exception:CODE
LOWscapy/utils.py3459 except Exception:CODE
LOWscapy/utils.py3462 except Exception:CODE
LOWscapy/utils.py1069 except Exception:CODE
LOWscapy/utils.py1586 except Exception:CODE
LOWscapy/utils.py2078 except Exception:CODE
LOWscapy/utils.py2803 except Exception:CODE
LOWscapy/utils.py2930 except Exception:CODE
LOWscapy/utils.py3303 except Exception:CODE
LOWscapy/utils.py3544 except Exception:CODE
LOWscapy/utils.py3951 except Exception as ex:CODE
LOWscapy/utils.py3960 except Exception as ex:CODE
LOWscapy/packet.py793 except Exception as ex:CODE
LOWscapy/packet.py1057 except Exception:CODE
LOWscapy/packet.py1141 except Exception:CODE
LOWscapy/packet.py1698 except Exception:CODE
LOWscapy/main.py77 except Exception:CODE
LOWscapy/main.py128 except Exception:CODE
LOWscapy/main.py190 except Exception:CODE
LOWscapy/main.py326 except Exception:STRING
LOWscapy/main.py454 except Exception:CODE
LOWscapy/main.py880 except Exception:CODE
LOWscapy/utils6.py254 except Exception:CODE
LOWscapy/utils6.py333 except Exception:CODE
LOWscapy/utils6.py352 except Exception:CODE
158 more matches not shown…
Cross-File Repetition35 hits · 175 pts
SeverityFileLineSnippetContext
HIGHscapy/layers/smb2.py0util function to build the offset and populate the lengthsSTRING
HIGHscapy/layers/ntlm.py0util function to build the offset and populate the lengthsSTRING
HIGHscapy/layers/spnego.py0util function to build the offset and populate the lengthsSTRING
HIGHscapy/layers/ntlm.py0returns the maximum signature length. this will be used in auth_len in dcerpc5, and is necessary for pfc_support_header_STRING
HIGHscapy/layers/gssapi.py0returns the maximum signature length. this will be used in auth_len in dcerpc5, and is necessary for pfc_support_header_STRING
HIGHscapy/layers/msrpce/msnrpc.py0returns the maximum signature length. this will be used in auth_len in dcerpc5, and is necessary for pfc_support_header_STRING
HIGHscapy/layers/tls/crypto/cipher_aead.py0hash classes are automatically registered through this metaclass. furthermore, their name attribute is extracted from thSTRING
HIGHscapy/layers/tls/crypto/cipher_stream.py0hash classes are automatically registered through this metaclass. furthermore, their name attribute is extracted from thSTRING
HIGHscapy/layers/tls/crypto/cipher_block.py0hash classes are automatically registered through this metaclass. furthermore, their name attribute is extracted from thSTRING
HIGHscapy/layers/tls/crypto/hash.py0hash classes are automatically registered through this metaclass. furthermore, their name attribute is extracted from thSTRING
HIGHscapy/contrib/sdnv.py0.. centered:: notice this software/technical data was produced for the u.s. government under prime contract no. nasa-030STRING
HIGHscapy/contrib/bp.py0.. centered:: notice this software/technical data was produced for the u.s. government under prime contract no. nasa-030STRING
HIGHscapy/contrib/ltp.py0.. centered:: notice this software/technical data was produced for the u.s. government under prime contract no. nasa-030STRING
HIGHscapy/contrib/__init__.py0package of contrib automotive autosar modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/__init__.py0package of contrib automotive autosar modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/autosar/__init__.py0package of contrib automotive autosar modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/isotp/isotp_native_socket.py0receives a packet, then returns a tuple containing (cls, pkt_data, time)STRING
HIGHscapy/arch/libpcap.py0receives a packet, then returns a tuple containing (cls, pkt_data, time)STRING
HIGHscapy/arch/linux/__init__.py0receives a packet, then returns a tuple containing (cls, pkt_data, time)STRING
HIGHscapy/contrib/automotive/volkswagen/__init__.py0package of contrib automotive gm specific modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/bmw/__init__.py0package of contrib automotive gm specific modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/xcp/__init__.py0package of contrib automotive gm specific modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/obd/__init__.py0package of contrib automotive gm specific modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/obd/mid/__init__.py0package of contrib automotive gm specific modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/obd/iid/__init__.py0package of contrib automotive gm specific modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/obd/tid/__init__.py0package of contrib automotive gm specific modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/obd/pid/__init__.py0package of contrib automotive gm specific modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/automotive/gm/__init__.py0package of contrib automotive gm specific modules that have to be loaded explicitly.STRING
HIGHscapy/contrib/rtps/rtps.py0real-time publish-subscribe protocol (rtps) dissectionSTRING
HIGHscapy/contrib/rtps/common_types.py0real-time publish-subscribe protocol (rtps) dissectionSTRING
HIGHscapy/contrib/rtps/__init__.py0real-time publish-subscribe protocol (rtps) dissectionSTRING
HIGHscapy/contrib/rtps/pid_types.py0real-time publish-subscribe protocol (rtps) dissectionSTRING
HIGHscapy/arch/unix.py0returns a list of 3-tuples of the form (addr, scope, iface) where 'addr' is the address of scope 'scope' associated to tSTRING
HIGHscapy/arch/linux/rtnetlink.py0returns a list of 3-tuples of the form (addr, scope, iface) where 'addr' is the address of scope 'scope' associated to tSTRING
HIGHscapy/arch/bpf/core.py0returns a list of 3-tuples of the form (addr, scope, iface) where 'addr' is the address of scope 'scope' associated to tSTRING
Hyper-Verbose Identifiers148 hits · 145 pts
SeverityFileLineSnippetContext
LOWsetup.py95 def _patched_apply_configuration(dist, filepath, *_):CODE
LOWtest/contrib/automotive/interface_mockup.py38def test_and_setup_socket_can(iface_name):CODE
LOWscapy/fields.py1261 def _build_config_representation(self, config):CODE
LOWscapy/autorun.py169def autorun_get_interactive_session(cmds, **kargs):CODE
LOWscapy/autorun.py198def autorun_get_interactive_live_session(cmds, **kargs):CODE
LOWscapy/autorun.py221def autorun_get_text_interactive_session(cmds, **kargs):CODE
LOWscapy/autorun.py232def autorun_get_live_interactive_session(cmds, **kargs):CODE
LOWscapy/autorun.py243def autorun_get_ansi_interactive_session(cmds, **kargs):CODE
LOWscapy/autorun.py254def autorun_get_html_interactive_session(cmds, **kargs):CODE
LOWscapy/autorun.py274def autorun_get_latex_interactive_session(cmds, **kargs):CODE
LOWscapy/__init__.py48def _version_from_git_archive():CODE
LOWscapy/__init__.py82def _version_from_git_describe():CODE
LOWscapy/packet.py732 def _raw_packet_cache_field_value(self, fld, val, copy=False):CODE
LOWscapy/utils6.py41def construct_source_candidate_set(CODE
LOWscapy/utils6.py100def get_source_addr_from_candidate_set(dst, candidate_set):CODE
LOWscapy/automaton.py1496 def remove_interception_points(self, *ipts):CODE
LOWscapy/tools/UTscapy.py504def filter_tests_keep_on_keywords(test_campaign, kw):CODE
LOWscapy/tools/UTscapy.py508def filter_tests_remove_on_keywords(test_campaign, kw):CODE
LOWscapy/layers/smbclient.py386 def receive_negotiate_response(self, pkt):CODE
LOWscapy/layers/smbclient.py497 def should_retry_without_blob(self, ssp_tuple):CODE
LOWscapy/layers/smbclient.py505 def should_send_session_setup_request(self, ssp_tuple):CODE
LOWscapy/layers/smbclient.py518 def send_setup_session_request(self, ssp_tuple):CODE
LOWscapy/layers/smbclient.py566 def receive_session_setup_response(self, pkt):CODE
LOWscapy/layers/smbclient.py653 def authenticated_post_actions(self):CODE
LOWscapy/layers/smbclient.py671 def incoming_data_received_smb(self, pkt):CODE
LOWscapy/layers/smbclient.py690 def outgoing_data_received_smb(self, fd):CODE
LOWscapy/layers/inet.py1450def _defrag_iter_and_check_offsets(frags):CODE
LOWscapy/layers/inet.py1569def _packetlist_timeskew_graph(self, ip, **kargs):CODE
LOWscapy/layers/lltd.py310def _register_lltd_specific_class(*attr_types):CODE
LOWscapy/layers/smbserver.py641 def receive_setup_andx_request(self, pkt):CODE
LOWscapy/layers/smbserver.py837 def receive_setup_andx_request_in_serving(self, pkt):CODE
LOWscapy/layers/smbserver.py854 def send_tree_connect_response(self, pkt, tree_name):CODE
LOWscapy/layers/smbserver.py1167 def send_create_file_response(self, pkt):CODE
LOWscapy/layers/smbserver.py1315 def receive_change_notify_info(self, pkt):CODE
LOWscapy/layers/smbserver.py1320 def send_change_notify_info_response(self, pkt):CODE
LOWscapy/layers/smbserver.py1332 def receive_query_directory_info(self, pkt):CODE
LOWscapy/layers/smbserver.py1337 def send_query_directory_response(self, pkt):CODE
LOWscapy/layers/smbserver.py1605 def receive_tree_disconnect_request(self, pkt):CODE
LOWscapy/layers/smbserver.py1610 def send_tree_disconnect_response(self, pkt):CODE
LOWscapy/layers/smbserver.py1627 def send_notify_cancel_response(self, pkt):CODE
LOWscapy/layers/kerberos.py4425 def receive_krb_error_tgs_req(self, pkt):STRING
LOWscapy/layers/radius.py641 def compute_message_authenticator(radius_packet, packed_req_authenticator,CODE
LOWscapy/layers/bluetooth.py3413 def build_set_advertising_data(self):CODE
LOWscapy/layers/dhcp6.py319 def _just_guess_payload_class(cls, payload):CODE
LOWscapy/layers/dcerpc.py1276def register_dcerpc_interface(name, uuid, version, opnums):CODE
LOWscapy/layers/dcerpc.py3404 def register_possible_payload(cls, pay):CODE
LOWscapy/layers/tls/handshake.py760 def post_build_tls_session_update(self, msg_str):CODE
LOWscapy/layers/tls/handshake.py793 def post_dissection_tls_session_update(self, msg_str):CODE
LOWscapy/layers/tls/handshake.py968 def post_dissection_tls_session_update(self, msg_str):CODE
LOWscapy/layers/tls/handshake.py1005 def post_dissection_tls_session_update(self, msg_str):CODE
LOWscapy/layers/tls/handshake.py1439 def post_build_tls_session_update(self, msg_str):STRING
LOWscapy/layers/tls/handshake.py1459 def post_dissection_tls_session_update(self, msg_str):STRING
LOWscapy/layers/tls/handshake.py1650 def post_dissection_tls_session_update(self, msg_str):STRING
LOWscapy/layers/tls/handshake.py1704 def post_dissection_tls_session_update(self, msg_str):STRING
LOWscapy/layers/tls/handshake.py1732 def post_build_tls_session_update(self, msg_str):STRING
LOWscapy/layers/tls/handshake.py1740 def post_dissection_tls_session_update(self, msg_str):STRING
LOWscapy/layers/tls/automaton_cli.py723 def should_store_session_ticket_file(self):STRING
LOWscapy/layers/tls/session.py634 def use_nss_master_secret_if_present(self) -> bool:CODE
LOWscapy/layers/tls/session.py643 def compute_ms_and_derive_keys(self):CODE
LOWscapy/layers/tls/session.py1095 def post_build_tls_session_update(self, msg_str):CODE
88 more matches not shown…
Over-Commented Block102 hits · 102 pts
SeverityFileLineSnippetContext
LOWsetup.py41COMMENT
LOW.config/ci/test.sh1#!/bin/bashCOMMENT
LOW.config/mypy/mypy_check.py1# SPDX-License-Identifier: GPL-2.0-onlyCOMMENT
LOWscapy/config.py961 ASN1_default_codec = None # type: 'scapy.asn1.asn1.ASN1Codec'COMMENT
LOWscapy/config.py1021 #: When 1, print some TLS session secrets when they are computed, andCOMMENT
LOWscapy/fields.py401COMMENT
LOWscapy/asn1fields.py481 # with an unknown, private high-tag prefix :COMMENT
LOWscapy/route6.py301COMMENT
LOWscapy/asn1/ber.py181def BER_id_dec(s):COMMENT
LOWscapy/layers/smb2.py4061 # Note: impacket and wireshark get crazy on compounded+signature, butCOMMENT
LOWscapy/layers/inet6.py1561# ICMPv6 Multicast Listener Discovery (RFC2710) #COMMENT
LOWscapy/layers/inet6.py1781 7: "ICMPv6NDOptAdvInterval",COMMENT
LOWscapy/layers/inet6.py2341###############################################################################COMMENT
LOWscapy/layers/inet6.py2401#COMMENT
LOWscapy/layers/quic.py341# bind_bottom_up(UDP, QUIC, sport=443)COMMENT
LOWscapy/layers/smbserver.py921 # FSCTL_VALIDATE_NEGOTIATE_INFOCOMMENT
LOWscapy/layers/ntp.py281 #COMMENT
LOWscapy/layers/ntp.py361 """COMMENT
LOWscapy/layers/ntp.py381 ]COMMENT
LOWscapy/layers/ntp.py401 # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+COMMENT
LOWscapy/layers/ntp.py421 # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+COMMENT
LOWscapy/layers/ntp.py1621 # ntpd source code: ntp_request.hCOMMENT
LOWscapy/layers/ntp.py1641 # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+COMMENT
LOWscapy/layers/ntp.py1661 # Authenticated bit: If set, this packet is authenticated.COMMENT
LOWscapy/layers/ntp.py1681 #COMMENT
LOWscapy/layers/ntp.py1701 # data area may be any length between 0 and 500 octetsCOMMENT
LOWscapy/layers/spnego.py1041 )COMMENT
LOWscapy/layers/kerberos.py2141 elif pkt.errorCode.val in [6, 7, 12, 13, 18, 23, 29, 32, 41, 60, 62]:COMMENT
LOWscapy/layers/kerberos.py5621 if chan_bindings != GSS_C_NO_CHANNEL_BINDINGSCOMMENT
LOWscapy/layers/dhcp6.py501COMMENT
LOWscapy/layers/dhcp6.py521# . .COMMENT
LOWscapy/layers/dhcp6.py1141# les options preferenceCOMMENT
LOWscapy/layers/dhcp6.py1181# - sent by clientCOMMENT
LOWscapy/layers/dhcp6.py1221 name = "DHCPv6 Advertise Message"COMMENT
LOWscapy/layers/dhcp6.py1241# client to which the server has not sent a unicast option, the serverCOMMENT
LOWscapy/layers/dhcp6.py1261class DHCP6_Confirm(DHCP6):COMMENT
LOWscapy/layers/dhcp6.py1301# - the message must include a server identifier optionCOMMENT
LOWscapy/layers/dhcp6.py1361#####################################################################COMMENT
LOWscapy/layers/dhcp6.py1381#####################################################################COMMENT
LOWscapy/layers/dhcp6.py1421COMMENT
LOWscapy/layers/dhcp6.py1901 elif msgtype == 5: # RENEWCOMMENT
LOWscapy/layers/dhcp6.py1921 # to its previous Renew message.COMMENT
LOWscapy/layers/netbios.py61 ]COMMENT
LOWscapy/layers/dcerpc.py1821COMMENT
LOWscapy/layers/dcerpc.py1841# than inside the PACKET. This is faster to compute because whether a constructed typeCOMMENT
LOWscapy/layers/tls/handshake.py421 hash_len = hkdf.hash.digest_sizeCOMMENT
LOWscapy/layers/tls/automaton_cli.py721COMMENT
LOWscapy/layers/tls/session.py401 # other messages in case of TLS 1.3.COMMENT
LOWscapy/layers/tls/session.py421 self.server_key = NoneCOMMENT
LOWscapy/layers/tls/extensions.py41from scapy.config import confCOMMENT
LOWscapy/layers/tls/record.py481 self.tls_session.rcs.cipher.iv = ivCOMMENT
LOWscapy/layers/tls/crypto/groups.py521 curve = curve()COMMENT
LOWscapy/layers/tls/crypto/groups.py541# def encode_point(point, point_format=0):COMMENT
LOWscapy/layers/tls/crypto/groups.py561# except ImportError:COMMENT
LOWscapy/layers/tls/crypto/groups.py581# point_format = g[0]COMMENT
LOWscapy/layers/tls/crypto/groups.py601# raise Exception("Point starts with %s. This encoding "COMMENT
LOWscapy/layers/tls/crypto/groups.py621# curve = CurveFp(p, a, b)COMMENT
LOWscapy/layers/tls/crypto/groups.py641# generator = Point(curve, _Gx, _Gy, _r)COMMENT
LOWscapy/layers/tls/crypto/groups.py661# _p = long_converter("""COMMENT
LOWscapy/layers/tls/crypto/groups.py681# _Gx = long_converter("""COMMENT
42 more matches not shown…
Cross-Language Confusion16 hits · 56 pts
SeverityFileLineSnippetContext
HIGHscapy/pipetool.py270 s.push(msg)CODE
HIGHscapy/utils6.py315 returned address are null). If a group id is provided through 'grpid'STRING
HIGHscapy/tools/UTscapy.py322 "outputfile": null,STRING
HIGHscapy/tools/UTscapy.py325 "num": null,STRING
HIGHscapy/layers/kerberos.py1629 self.sname.toString(),STRING
HIGHscapy/layers/kerberos.py1832 self.cname.toString(),STRING
HIGHscapy/layers/kerberos.py1846 self.cname.toString(),STRING
HIGHscapy/layers/kerberos.py2291 self.sname.toString(),STRING
HIGHscapy/layers/tls/crypto/prf.py97 MD5(secret || SHA-1("A" || secret || seed)) ||STRING
HIGHscapy/layers/tls/crypto/prf.py98 MD5(secret || SHA-1("BB" || secret || seed)) ||STRING
HIGHscapy/layers/tls/crypto/prf.py99 MD5(secret || SHA-1("CCC" || secret || seed)) || ...STRING
HIGHscapy/cbor/cborfields.py410 "Expected null, got %r" % obj)CODE
HIGHscapy/cbor/cborfields.py442 "Expected undefined, got %r" % obj)CODE
HIGHscapy/contrib/isotp/isotp_utils.py101 self.push(first_piece)CODE
HIGHscapy/contrib/isotp/isotp_utils.py283 bucket.push(isotp_data)CODE
HIGHscapy/contrib/rtps/rtps.py232 ~ SerializedData serializedData [only if D==1 || K==1] ~STRING
Redundant / Tautological Comments45 hits · 51 pts
SeverityFileLineSnippetContext
LOWscapy/route.py223 # Check if source is 0.0.0.0. This is a 'via' route with no src.COMMENT
LOWscapy/fwdmachine.py314 # Set SubjectPublicKeyInfo to the one from our private keyCOMMENT
LOWscapy/utils.py211 # Close the file so something else can take it.COMMENT
LOWscapy/utils.py2783 # Check if the type != 0x02, type EthernetCOMMENT
LOWscapy/utils6.py252 # Set ifaceid to a binary formCOMMENT
LOWscapy/asn1/mib.py168 # Read the filesCOMMENT
LOWscapy/layers/smb2.py1087 # Set SecuritySignature to nulCOMMENT
LOWscapy/layers/smbclient.py1228 # Check if target is IPv4 or IPv6STRING
LOWscapy/layers/smbclient.py1633 # Open fileSTRING
LOWscapy/layers/smbclient.py1654 # Read the fileSTRING
LOWscapy/layers/smbclient.py1663 # Close the fileSTRING
LOWscapy/layers/smbclient.py1674 # Open fileSTRING
LOWscapy/layers/smbclient.py1693 # Close the fileSTRING
LOWscapy/layers/smbclient.py1959 # Open fileSTRING
LOWscapy/layers/smbclient.py1966 # Close the fileSTRING
LOWscapy/layers/smbclient.py2002 # Open fileSTRING
LOWscapy/layers/smbclient.py2028 # Open fileSTRING
LOWscapy/layers/inet6.py4060 # Check if this is an advertisement for a Default RouterCOMMENT
LOWscapy/layers/ldap.py1631 # Check if we have a search responseCOMMENT
LOWscapy/layers/inet.py1265 # Check if IP addresses matchSTRING
LOWscapy/layers/inet.py1269 # Check if IP ids matchSTRING
LOWscapy/layers/inet.py1273 # Check if IP protocols matchSTRING
LOWscapy/layers/dns.py1386 # Check if the length is validCOMMENT
LOWscapy/layers/smbserver.py1212 # Check if there is a Durable Handle Reconnect RequestCOMMENT
LOWscapy/layers/smbserver.py1387 # Increment indexCOMMENT
LOWscapy/layers/smbserver.py1544 # Write fileCOMMENT
LOWscapy/layers/smbserver.py1569 # Read file and send contentCOMMENT
LOWscapy/layers/spnego.py829 # Check if target is a hostname / Check IPCOMMENT
LOWscapy/layers/http.py1031 # Write fileCOMMENT
LOWscapy/layers/tls/handshake.py766 # Check if the server early_data extension is present inCOMMENT
LOWscapy/layers/tls/handshake.py798 # Check if the server early_data extension is present inCOMMENT
LOWscapy/layers/tls/automaton_cli.py1126 # Check if DHE is need (both for out of band and resumption PSK)STRING
LOWscapy/layers/tls/cert.py1621 # Check if this certificate matches the one we're looking atCOMMENT
LOWscapy/layers/tls/automaton_srv.py622 # Check if we have to send an HelloRetryRequestCOMMENT
LOWscapy/layers/tls/automaton_srv.py1132 # Check if there's a NewSessionTicket to sendCOMMENT
LOWscapy/cbor/cborcodec.py517 # Check if obj is a CBOR object instance (for special cases like UNDEFINED)COMMENT
LOWscapy/contrib/cdp.py333 # Check if field length is fixed (2 bytes)COMMENT
LOWscapy/contrib/cdp.py341 # Check if field length is fixed (2 bytes)COMMENT
LOWscapy/contrib/coap_socket.py729 # Assign payload to packetCOMMENT
LOWscapy/contrib/diameter.py88 if x & 15: # Check if reserved bits are usedCODE
LOWscapy/contrib/diameter.py129 if x & 31: # Check if reserved bits are usedCODE
LOWscapy/contrib/diameter.py356 # Check if vendor and code defined and fetch the corresponding AVPCOMMENT
LOWscapy/arch/unix.py229 # Check if it is a valid IPv6 addressCOMMENT
LOWscapy/arch/bpf/core.py119 # Check if the interface can be usedCOMMENT
LOWscapy/arch/bpf/core.py127 # Close the file descriptorCOMMENT
Decorative Section Separators16 hits · 48 pts
SeverityFileLineSnippetContext
MEDIUMscapy/contrib/j1939.py71# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py75# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py164# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py166# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py238# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py240# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py292# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py294# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py336 # ── first 32 bits: CAN flags(3) + J1939 identifier fields(29) ──────COMMENT
MEDIUMscapy/contrib/j1939.py345 # ── standard CAN data-length + padding ────────────────────────────COMMENT
MEDIUMscapy/contrib/j1939.py395# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py397# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py548# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/j1939.py550# ---------------------------------------------------------------------------COMMENT
MEDIUMscapy/contrib/rtps/rtps.py266 # -------------------------------------COMMENT
MEDIUMscapy/contrib/rtps/rtps.py496 # ----------------------------COMMENT
Hallucination Indicators4 hits · 40 pts
SeverityFileLineSnippetContext
CRITICALscapy/layers/spnego.py1050 # resp.SecurityBlob.innerToken.token.mechTypes.insert(COMMENT
CRITICALscapy/layers/kerberos.py3713 pafastreq.armoredData.armor.armorValue.authenticator.encrypt(STRING
CRITICALscapy/layers/tls/basefields.py171 False in pkt.tls_session.rcs.cipher.ready.values()CODE
CRITICALscapy/layers/tls/record.py150 if False in pkt.tls_session.rcs.cipher.ready.values():CODE
AI Structural Patterns40 hits · 36 pts
SeverityFileLineSnippetContext
LOWscapy/sendrecv.py437CODE
LOWscapy/sendrecv.py528CODE
LOWscapy/sendrecv.py119CODE
LOWscapy/sendrecv.py1170CODE
LOWscapy/fwdmachine.py105CODE
LOWscapy/utils.py2991CODE
LOWscapy/utils.py2281CODE
LOWscapy/layers/smbclient.py1180CODE
LOWscapy/layers/inet6.py145CODE
LOWscapy/layers/inet6.py3892CODE
LOWscapy/layers/ldap.py1309CODE
LOWscapy/layers/ldap.py2279CODE
LOWscapy/layers/inet.py2117CODE
LOWscapy/layers/dns.py1563CODE
LOWscapy/layers/ntlm.py1379CODE
LOWscapy/layers/ipsec.py936CODE
LOWscapy/layers/spnego.py786CODE
LOWscapy/layers/kerberos.py4540CODE
LOWscapy/layers/kerberos.py4616CODE
LOWscapy/layers/kerberos.py4724CODE
LOWscapy/layers/kerberos.py3296CODE
LOWscapy/layers/kerberos.py5011CODE
LOWscapy/layers/dhcp6.py1548CODE
LOWscapy/layers/dhcp.py567CODE
LOWscapy/layers/tls/automaton_cli.py118CODE
LOWscapy/layers/tls/session.py359CODE
LOWscapy/layers/tls/cert.py729CODE
LOWscapy/layers/tls/automaton_srv.py110CODE
LOWscapy/contrib/pnio.py146CODE
LOWscapy/contrib/coap_socket.py103CODE
LOWscapy/contrib/coap_socket.py404CODE
LOWscapy/contrib/isotp/isotp_scanner.py234CODE
LOWscapy/contrib/isotp/isotp_scanner.py305CODE
LOWscapy/contrib/isotp/isotp_native_socket.py295CODE
LOWscapy/contrib/isotp/isotp_soft_socket.py118CODE
LOWscapy/contrib/automotive/doip.py365CODE
LOWscapy/modules/ticketer.py2728CODE
LOWscapy/modules/ticketer.py2785CODE
LOWscapy/modules/ldaphero.py153CODE
LOWscapy/modules/krack/automaton.py90CODE
Modern Structural Boilerplate23 hits · 23 pts
SeverityFileLineSnippetContext
LOWscapy/compat.py25__all__ = [CODE
LOWscapy/__init__.py18__all__ = [CODE
LOWscapy/consts.py13__all__ = [CODE
LOWscapy/layers/all.py22__all__ = []CODE
LOWscapy/layers/can.py42__all__ = ["CAN", "SignalPacket", "SignalField", "LESignedSignalField",CODE
LOWscapy/layers/msrpce/all.py20__all__ = []CODE
LOWscapy/cbor/__init__.py67__all__ = [CODE
LOWscapy/contrib/tcpao.py24logger = logging.getLogger(__name__)CODE
LOWscapy/contrib/icmp_extensions.py8__all__ = [CODE
LOWscapy/contrib/cansocket_python_can.py42__all__ = ["CANSocket", "PythonCANSocket"]CODE
LOWscapy/contrib/dicom.py42__all__ = [CODE
LOWscapy/contrib/mysql.py64__all__ = [CODE
LOWscapy/contrib/isotp/__init__.py23__all__ = ["ISOTP", "ISOTPHeader", "ISOTPHeaderEA", "ISOTP_SF", "ISOTP_FF",CODE
LOWscapy/contrib/automotive/uds_ecu_states.py14__all__ = ["UDS_DSCPR_modify_ecu_state", "UDS_CCPR_modify_ecu_state",CODE
LOWscapy/contrib/automotive/ecu.py40__all__ = ["EcuState", "Ecu", "EcuResponse", "EcuSession",CODE
LOWscapy/contrib/automotive/gm/gmlanutils.py28__all__ = ["GMLAN_TesterPresentSender", "GMLAN_InitDiagnostics",CODE
LOWscapy/contrib/automotive/gm/gmlan_scanner.py56__all__ = ["GMLAN_Scanner", "GMLAN_ServiceEnumerator", "GMLAN_RDBIEnumerator",CODE
LOWscapy/contrib/automotive/gm/gmlan_ecu_states.py12__all__ = ["GMLAN_modify_ecu_state", "GMLAN_SAPR_modify_ecu_state"]CODE
LOWscapy/libs/crc.py12__all__ = [CODE
LOWscapy/libs/test_pyx.py17__all__ = [CODE
LOWscapy/libs/matplot.py16__all__ = [CODE
LOWscapy/libs/rfc3961.py24__all__ = [CODE
LOWscapy/arch/__init__.py45__all__ = [ # noqa: F405CODE
AI Slop Vocabulary3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMscapy/contrib/bfd.py150 7784, # seamless BFDCODE
MEDIUMscapy/libs/winpcapy.py655# return the error text pertaining to the last pcap library error.COMMENT
LOWscapy/arch/windows/structures.py224# for now, just use void * for pointers to unused structuresCOMMENT
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOW.config/ci/install.sh8# Usage:COMMENT
LOW.config/ci/test.sh8# Usage:COMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscapy/layers/zigbee.py775 # TODO: implement 10 to 13COMMENT
Verbosity Indicators1 hit · 0 pts
SeverityFileLineSnippetContext
LOWscapy/layers/inet6.py4124 The purpose of this function is to send provided RA message at layer 2STRING