Skip to main content

Randomly edit packet fields in a PCAP file.

Project description

pcap-fuzzer

PyPI package page

This program randomly edits packets from a PCAP file, one field per edited packet.

The edited field will be chosen at random, starting from the highest layer, and going down until it finds a supported protocol layer.

Example: a DNS packet will have one of its DNS fields edited, and not one of the UDP or IP fields.

Installation

pip install pcap-fuzzer

Usage

Import statement:

import pcap_fuzzer

fuzz_pcaps function doc:

pcap_fuzzer.fuzz_pcaps(
    pcaps: Union[str, list]       # (List of) input PCAP files
    output: str,                  # [Optional] Output PCAP file path. Used only if a single input file is specified.
    random_range: int = 1,        # [Optional] Upper bound for random range (not included). Defaults to 1.
    packet_numbers: list = None,  # [Optional] List of indices, starting from 1, of packets to edit. If not specified, packets are randomly picked.
    dry_run: bool = False         # [Optional] If True, do not write output PCAP file(s).
) -> None

This function produces new, edited PCAP file(s). If no output file is specified (for a single input file), or if multiple input files are given, the output file(s) will have the same name as the input file(s), but with the suffix .edit, and will be placed in a directory called edited, in the same directory as the input files. It will be created if it doesn't exist.

The program also produces CSV log files, indicating which fields were edited for each packet. The log files will be placed in a directory called logs, in the same directory as the input files. It will be created if it doesn't exist.

Supported protocols (for now)

  • Datalink Layer (2)
    • ARP
  • Network Layer (3)
    • IPv4
    • IPv6
  • Transport Layer (4)
    • TCP
    • UDP
    • ICMP
    • IGMP(v2 and v3)
  • Application Layer (7)
    • HTTP
    • DNS
    • DHCP
    • SSDP
    • CoAP

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pcap_fuzzer-0.5.0.tar.gz (25.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pcap_fuzzer-0.5.0-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file pcap_fuzzer-0.5.0.tar.gz.

File metadata

  • Download URL: pcap_fuzzer-0.5.0.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pcap_fuzzer-0.5.0.tar.gz
Algorithm Hash digest
SHA256 d334d9cda4ee83c49dcaff463a492b3e124a4560d2586f1373d4f989178f7b1e
MD5 8a8f100ad19d97b9458857545804158f
BLAKE2b-256 b2a39d64410e13dd953b89535e05f273998bc77292abed6d6378aaa2bf883f3a

See more details on using hashes here.

File details

Details for the file pcap_fuzzer-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: pcap_fuzzer-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pcap_fuzzer-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f5693aed9a5ec7388cae2f66a358b888493662e79e1eec155c172d81f7d8d68
MD5 3957726ae5f0378d6da166a6055cad7d
BLAKE2b-256 2e81cb58835cc84ad3fbec5ec9e2ccd8c376b8814ad35f0fb481f89ebb7c294f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page