diff --git a/.gitignore b/.gitignore index 9a4d2f09843c91df2d445d19733226e228f51e62..9934f0040c44de8400390daaeb3350d94b163599 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,6 @@ dist # Temp files *.log csv + +# Package build script +build_and_publish.sh diff --git a/pcap_fuzzer/pcap_fuzzer.py b/pcap_fuzzer/pcap_fuzzer.py index f8ddfdd3026c272b2a81423c5655b47764d416c0..0a4e3f2f54dc08e6822f0b077ff58b184764e9a3 100644 --- a/pcap_fuzzer/pcap_fuzzer.py +++ b/pcap_fuzzer/pcap_fuzzer.py @@ -2,14 +2,18 @@ Randomly edit packet fields in a PCAP file. """ +## Import libraries import os import argparse +from typing import Union import random import logging import csv +# Scapy libraries import scapy.all as scapy from scapy.layers import dhcp, dns, http from scapy.contrib import coap, igmp, igmpv3 +# Custom Packet utilities from packet.Packet import Packet @@ -45,7 +49,7 @@ def must_edit_packet(i: int, packet_numbers: list, random_range: int) -> bool: return is_specified or is_random -def fuzz_pcaps(pcaps: list, output: str, random_range: int = 1, packet_numbers: list = None, dry_run: bool = False) -> None: +def fuzz_pcaps(pcaps: Union[str, list], output: str, random_range: int = 1, packet_numbers: list = None, dry_run: bool = False) -> None: """ Main functionality of the program: (Randomly) edit packet fields in a (list of) PCAP file(s). @@ -56,6 +60,8 @@ def fuzz_pcaps(pcaps: list, output: str, random_range: int = 1, packet_numbers: :param packet_numbers: list of packet numbers to edit (starting from 1) :param dry_run: if True, do not write output PCAP file """ + # If input PCAP is a single file, convert to list of one element + pcaps = [pcaps] if isinstance(pcaps) != list else pcaps # Loop on given input PCAP files for input_pcap in pcaps: @@ -160,6 +166,9 @@ if __name__ == "__main__": if args.output is not None and len(args.input_pcaps) > 1: logging.warning("Multiple input PCAP files specified, ignoring output PCAP file name.") + print(args.input_pcaps) + exit() + ### MAIN PROGRAM ### fuzz_pcaps( diff --git a/setup.py b/setup.py index 4bce13a8a1409e055bfb81c2e13b82ccc2b9a44a..85d1eac233da3b344989ca3567e0fab7665fba02 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name='pcap_fuzzer', - version='0.1.0', + version='0.2.0', author='François De Keersmaeker', author_email='francois.dekeersmaeker@uclouvain.be', description='Randomly edit packet fields in a PCAP file.',