Repository Analysis

secdev/scapy

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

12.5 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of secdev/scapy, a Python project with 12,409 GitHub stars. SynthScan v2.0 examined 267,666 lines of code across 444 source files, recording 2275 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 12.5 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.5
Adjusted Score
12.5
Raw Score
100%
Time Factor
2026-07-10
Last Push
12.4K
Stars
Python
Language
267.7K
Lines of Code
444
Files
2.3K
Pattern Hits
2026-07-14
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 477LOW 1743

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 2275 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 Comments445 hits · 1317 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.py1748 default = [] # Create a new list for each instanceCODE
MEDIUMscapy/fields.py2102 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
385 more matches not shown…
Unused Imports763 hits · 721 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.py19CODE
LOWscapy/sessions.py19CODE
LOWscapy/sessions.py19CODE
LOWscapy/sessions.py34CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
LOWscapy/plist.py28CODE
703 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.py1415CODE
LOWscapy/sendrecv.py119CODE
LOWscapy/sendrecv.py314CODE
LOWscapy/sendrecv.py1147CODE
LOWscapy/sendrecv.py1468CODE
LOWscapy/pipetool.py126CODE
LOWscapy/pipetool.py187CODE
LOWscapy/sessions.py262CODE
LOWscapy/plist.py513CODE
LOWscapy/plist.py615CODE
LOWscapy/plist.py658CODE
LOWscapy/plist.py744CODE
LOWscapy/plist.py621CODE
LOWscapy/config.py827CODE
LOWscapy/error.py48CODE
LOWscapy/fields.py490CODE
LOWscapy/fields.py531CODE
LOWscapy/fields.py779CODE
LOWscapy/fields.py855CODE
LOWscapy/fields.py947CODE
LOWscapy/fields.py985CODE
LOWscapy/fields.py1249CODE
LOWscapy/fields.py1759CODE
LOWscapy/fields.py1788CODE
LOWscapy/fields.py2524CODE
LOWscapy/fields.py2585CODE
LOWscapy/fields.py2600CODE
LOWscapy/fields.py2781CODE
LOWscapy/fields.py3303CODE
LOWscapy/fields.py3570CODE
LOWscapy/fields.py3591CODE
LOWscapy/fields.py3620CODE
LOWscapy/fields.py3874CODE
LOWscapy/pton_ntop.py25CODE
LOWscapy/autorun.py55CODE
LOWscapy/base_classes.py365CODE
LOWscapy/fwdmachine.py238CODE
LOWscapy/fwdmachine.py362CODE
LOWscapy/supersocket.py637CODE
LOWscapy/supersocket.py143CODE
LOWscapy/asn1fields.py713CODE
LOWscapy/asn1fields.py796CODE
LOWscapy/asn1fields.py860CODE
LOWscapy/utils.py401CODE
LOWscapy/utils.py1002CODE
LOWscapy/utils.py1114CODE
LOWscapy/utils.py2977CODE
LOWscapy/utils.py3306CODE
LOWscapy/utils.py3950CODE
LOWscapy/utils.py1414CODE
LOWscapy/utils.py1766CODE
LOWscapy/utils.py1794CODE
LOWscapy/utils.py2010CODE
LOWscapy/utils.py3792CODE
LOWscapy/utils.py3826CODE
356 more matches not shown…
Excessive Try-Catch Wrapping217 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.py1331 except Exception:CODE
LOWscapy/sendrecv.py1335 except Exception as ex:CODE
LOWscapy/sendrecv.py1340 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.py1136 except Exception as ex:CODE
LOWscapy/sendrecv.py1477 except Exception:CODE
LOWscapy/sendrecv.py1495 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.py884 except Exception:CODE
LOWscapy/fields.py1618 except Exception:CODE
LOWscapy/fields.py1820 except Exception:CODE
LOWscapy/fields.py1907 except Exception:CODE
LOWscapy/base_classes.py470 except Exception:CODE
LOWscapy/ansmachine.py271 except Exception:CODE
LOWscapy/fwdmachine.py180 except Exception:CODE
LOWscapy/fwdmachine.py438 except Exception as ex:CODE
LOWscapy/fwdmachine.py516 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.py3435 except Exception:CODE
LOWscapy/utils.py3438 except Exception:CODE
LOWscapy/utils.py3445 except Exception:CODE
LOWscapy/utils.py3448 except Exception:CODE
LOWscapy/utils.py1070 except Exception:CODE
LOWscapy/utils.py1576 except Exception:CODE
LOWscapy/utils.py2064 except Exception:CODE
LOWscapy/utils.py2789 except Exception:CODE
LOWscapy/utils.py2916 except Exception:CODE
LOWscapy/utils.py3289 except Exception:CODE
LOWscapy/utils.py3530 except Exception:CODE
LOWscapy/utils.py3937 except Exception as ex:CODE
LOWscapy/utils.py3946 except Exception as ex:CODE
LOWscapy/packet.py780 except Exception as ex:CODE
LOWscapy/packet.py1044 except Exception:CODE
LOWscapy/packet.py1128 except Exception:CODE
LOWscapy/packet.py1685 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
157 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.py1249 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.py726 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.py4228 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.py3366 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 Block100 hits · 100 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/asn1fields.py421COMMENT
LOWscapy/route6.py301COMMENT
LOWscapy/asn1/ber.py181 # For instance, with low-tag-number b'\x81', class would be 0b10COMMENT
LOWscapy/layers/smb2.py4061 # Note: impacket and wireshark get crazy on compounded+signature, butCOMMENT
LOWscapy/layers/inet6.py1561# -> Y veiller dans le post_build si aucune n'est specifieeCOMMENT
LOWscapy/layers/inet6.py1781 10: "ICMPv6NDOptTgtAddrList",COMMENT
LOWscapy/layers/inet6.py2341# in IPv6 class (Scapy6 modification when integrated) if :COMMENT
LOWscapy/layers/inet6.py2401# - IPv4 if acceptable for inet_pton(AF_INET, ): code is set to 2,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.py361class NTPExtensions(Packet):COMMENT
LOWscapy/layers/ntp.py401 # | Root Delay |COMMENT
LOWscapy/layers/ntp.py421 # | |COMMENT
LOWscapy/layers/ntp.py1621 #########################################################################COMMENT
LOWscapy/layers/ntp.py1641 # | |COMMENT
LOWscapy/layers/ntp.py1661 #COMMENT
LOWscapy/layers/ntp.py1681 # requested wasn't performed.COMMENT
LOWscapy/layers/ntp.py1701 # must be exactly 40 octets in length. For responses theCOMMENT
LOWscapy/layers/kerberos.py2141 # 7: KDC_ERR_S_PRINCIPAL_UNKNOWNCOMMENT
LOWscapy/layers/kerberos.py3801 # [MS-SFU] note 4:COMMENT
LOWscapy/layers/kerberos.py5361 chan_bindings.digestMD5()COMMENT
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#COMMENT
LOWscapy/layers/tls/crypto/groups.py541# else:COMMENT
LOWscapy/layers/tls/crypto/groups.py561#COMMENT
LOWscapy/layers/tls/crypto/groups.py581# x = pkcs_os2ip(x_bytes) % pCOMMENT
LOWscapy/layers/tls/crypto/groups.py601# if isinstance(p, str):COMMENT
LOWscapy/layers/tls/crypto/groups.py621# _b = 7COMMENT
LOWscapy/layers/tls/crypto/groups.py641# 23a62855 3168947d 59dcc912 04235137 7ac5fb32""")COMMENT
LOWscapy/layers/tls/crypto/groups.py661# generator = Point(curve, _Gx, _Gy, _r)COMMENT
LOWscapy/layers/tls/crypto/groups.py681# ffffffff ffffffff ffffffff ffffffff ffffffff fffffffeCOMMENT
LOWscapy/layers/tls/crypto/groups.py701# 2013481D 1F6E5377""")COMMENT
LOWscapy/layers/tls/crypto/groups.py721COMMENT
40 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.py1627 self.sname.toString(),STRING
HIGHscapy/layers/kerberos.py1830 self.cname.toString(),STRING
HIGHscapy/layers/kerberos.py1844 self.cname.toString(),STRING
HIGHscapy/layers/kerberos.py2289 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.py311 # Set SubjectPublicKeyInfo to the one from our private keyCOMMENT
LOWscapy/utils.py212 # Close the file so something else can take it.COMMENT
LOWscapy/utils.py2769 # 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.py4057 # Check if this is an advertisement for a Default RouterCOMMENT
LOWscapy/layers/ldap.py1629 # 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.py755 # 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.py507 # 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.py936 # resp.SecurityBlob.innerToken.token.mechTypes.insert(COMMENT
CRITICALscapy/layers/kerberos.py3516 pafastreq.armoredData.armor.armorValue.authenticator.encrypt(STRING
CRITICALscapy/layers/tls/basefields.py172 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.py1147CODE
LOWscapy/fwdmachine.py104CODE
LOWscapy/utils.py2977CODE
LOWscapy/utils.py2267CODE
LOWscapy/layers/smbclient.py1180CODE
LOWscapy/layers/inet6.py145CODE
LOWscapy/layers/inet6.py3889CODE
LOWscapy/layers/ldap.py1307CODE
LOWscapy/layers/ldap.py2277CODE
LOWscapy/layers/inet.py2117CODE
LOWscapy/layers/dns.py1563CODE
LOWscapy/layers/ntlm.py1379CODE
LOWscapy/layers/ipsec.py936CODE
LOWscapy/layers/spnego.py713CODE
LOWscapy/layers/kerberos.py4343CODE
LOWscapy/layers/kerberos.py4419CODE
LOWscapy/layers/kerberos.py4527CODE
LOWscapy/layers/kerberos.py3107CODE
LOWscapy/layers/kerberos.py4805CODE
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.py235CODE
LOWscapy/contrib/isotp/isotp_scanner.py306CODE
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.py26__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.py25logger = 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.py65__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.py41__all__ = ["EcuState", "Ecu", "EcuResponse", "EcuSession",CODE
LOWscapy/contrib/automotive/gm/gmlanutils.py28__all__ = ["GMLAN_TesterPresentSender", "GMLAN_InitDiagnostics",CODE
LOWscapy/contrib/automotive/gm/gmlan_scanner.py57__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__.py46__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.py776 # TODO: implement 10 to 13COMMENT
Verbosity Indicators1 hit · 0 pts
SeverityFileLineSnippetContext
LOWscapy/layers/inet6.py4121 The purpose of this function is to send provided RA message at layer 2STRING