graph LR
PacketForge["PacketForge"]
TrafficHandler["TrafficHandler"]
ProtocolLibrary["ProtocolLibrary"]
SessionManager["SessionManager"]
AutomationEngine["AutomationEngine"]
RoutingEngine["RoutingEngine"]
DataProcessing["DataProcessing"]
PacketForge -- "defines packet structure" --> TrafficHandler
PacketForge -- "defines packet structure" --> ProtocolLibrary
TrafficHandler -- "sends and receives packets" --> ProtocolLibrary
PacketForge -- "defines packet structure" --> SessionManager
TrafficHandler -- "sends and receives packets" --> SessionManager
PacketForge -- "defines packet structure" --> AutomationEngine
TrafficHandler -- "sends and receives packets" --> AutomationEngine
RoutingEngine -- "determines packet destination" --> TrafficHandler
PacketForge -- "defines packet structure" --> DataProcessing
click PacketForge href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scapy/PacketForge.md" "Details"
click TrafficHandler href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scapy/TrafficHandler.md" "Details"
click ProtocolLibrary href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scapy/ProtocolLibrary.md" "Details"
click SessionManager href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scapy/SessionManager.md" "Details"
click AutomationEngine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scapy/AutomationEngine.md" "Details"
click RoutingEngine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scapy/RoutingEngine.md" "Details"
click DataProcessing href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scapy/DataProcessing.md" "Details"
Scapy is a powerful interactive packet manipulation program. It is able to forge or decode packets of a wide number of protocols, send them on the wire, capture them, match requests and replies, and much more. It provides a command-line interface, allowing users to interactively define and manipulate network packets. Scapy can be used for various tasks such as network discovery, packet sniffing, network security testing, and protocol fuzzing. The core of Scapy revolves around defining packet structures, sending/receiving packets, and dissecting captured traffic.
The PacketForge component is the foundation of Scapy, responsible for defining, creating, manipulating, and dissecting network packets. It provides the core functionality for working with packets at different layers of the network stack. It includes classes and methods for defining packet structures, adding fields, binding layers, and splitting packets. This component is central to Scapy's ability to craft and analyze network traffic.
- Related Classes/Methods:
scapy.scapy.packet,scapy.scapy.base_classes,scapy.scapy.fields,scapy.scapy.asn1packet,scapy.scapy.asn1fields
The TrafficHandler component handles the sending, receiving, and sniffing of network packets. It provides functions for sending packets at different layers (L2, L3), sending and receiving packets with request-response matching, sniffing network traffic, and bridging network interfaces. It relies on the PacketForge component to define the structure of the packets being sent and received.
- Related Classes/Methods:
scapy.scapy.sendrecv,scapy.scapy.supersocket,scapy.scapy.arch,scapy.scapy.arch.bpf.supersocket,scapy.scapy.arch.linux,scapy.scapy.arch.windows
The ProtocolLibrary component encompasses the definitions and implementations of various network protocol layers, including Ethernet, IP, TCP, UDP, ICMP, DNS, TLS, and many others. Each layer defines the structure and behavior of packets at that level of the network stack. It relies on PacketForge to define the structure of the packets and TrafficHandler to send and receive them.
- Related Classes/Methods:
scapy.scapy.layers.l2,scapy.scapy.layers.inet,scapy.scapy.layers.inet6,scapy.scapy.layers.dns,scapy.scapy.layers.tls,scapy.scapy.layers.*
The SessionManager component provides an interactive environment for users to interact with Scapy. It includes functionalities for loading modules, saving and loading sessions, tab completion, and command-line interface utilities. It uses PacketForge to create and dissect packets, and TrafficHandler to send and receive them.
- Related Classes/Methods:
scapy.scapy.main,scapy.scapy.utils,scapy.scapy.config,scapy.scapy.autorun
The AutomationEngine component provides the ability to automatically respond to network packets based on predefined rules. It can be used to simulate network services or perform automated network testing. It relies on PacketForge to define the structure of the packets and TrafficHandler to send and receive them.
- Related Classes/Methods:
scapy.scapy.ansmachine
The RoutingEngine component manages network routing information for IPv4 and IPv6. It provides functionalities for adding, deleting, and querying routes, as well as resolving interfaces and addresses. It is used by TrafficHandler to determine the destination of packets.
- Related Classes/Methods:
scapy.scapy.route,scapy.scapy.route6,scapy.scapy.interfaces
The DataProcessing component provides functionalities for managing lists of packets, including filtering, summarizing, displaying, and exporting packets in various formats. It relies on PacketForge to understand the structure of the packets.
- Related Classes/Methods:
scapy.scapy.plist,scapy.scapy.pipetool,scapy.scapy.scapypipes