From fe7240272f411d537f70252342eec803fb48bc48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20De=20Keersmaeker?= <francois.dekeersmaeker@uclouvain.be> Date: Thu, 11 Jul 2024 11:14:11 +0200 Subject: [PATCH] Added files for Python package --- .ci_scripts/run-all-pcaps.sh | 2 +- .gitignore | 9 ++++++++ pcap_fuzzer/__init__.py | 6 ++++++ {src => pcap_fuzzer}/packet/ARP.py | 2 +- {src => pcap_fuzzer}/packet/BOOTP.py | 2 +- {src => pcap_fuzzer}/packet/CoAP.py | 2 +- {src => pcap_fuzzer}/packet/DNS.py | 2 +- {src => pcap_fuzzer}/packet/HTTP_Request.py | 2 +- {src => pcap_fuzzer}/packet/ICMP.py | 2 +- {src => pcap_fuzzer}/packet/IGMP.py | 2 +- {src => pcap_fuzzer}/packet/IGMPv3mr.py | 2 +- {src => pcap_fuzzer}/packet/IPv4.py | 2 +- {src => pcap_fuzzer}/packet/IPv6.py | 2 +- {src => pcap_fuzzer}/packet/Packet.py | 0 {src => pcap_fuzzer}/packet/TCP.py | 2 +- {src => pcap_fuzzer}/packet/Transport.py | 2 +- {src => pcap_fuzzer}/packet/UDP.py | 2 +- pcap_fuzzer/packet/__init__.py | 3 +++ {src => pcap_fuzzer}/packet/mDNS.py | 2 +- {src => pcap_fuzzer}/pcap_fuzzer.py | 0 setup.py | 24 +++++++++++++++++++++ src/.gitignore | 1 - traces/.gitignore | 3 ++- 23 files changed, 59 insertions(+), 17 deletions(-) create mode 100644 pcap_fuzzer/__init__.py rename {src => pcap_fuzzer}/packet/ARP.py (87%) rename {src => pcap_fuzzer}/packet/BOOTP.py (99%) rename {src => pcap_fuzzer}/packet/CoAP.py (99%) rename {src => pcap_fuzzer}/packet/DNS.py (99%) rename {src => pcap_fuzzer}/packet/HTTP_Request.py (91%) rename {src => pcap_fuzzer}/packet/ICMP.py (91%) rename {src => pcap_fuzzer}/packet/IGMP.py (91%) rename {src => pcap_fuzzer}/packet/IGMPv3mr.py (97%) rename {src => pcap_fuzzer}/packet/IPv4.py (82%) rename {src => pcap_fuzzer}/packet/IPv6.py (82%) rename {src => pcap_fuzzer}/packet/Packet.py (100%) rename {src => pcap_fuzzer}/packet/TCP.py (84%) rename {src => pcap_fuzzer}/packet/Transport.py (98%) rename {src => pcap_fuzzer}/packet/UDP.py (90%) create mode 100644 pcap_fuzzer/packet/__init__.py rename {src => pcap_fuzzer}/packet/mDNS.py (97%) rename {src => pcap_fuzzer}/pcap_fuzzer.py (100%) create mode 100644 setup.py delete mode 100644 src/.gitignore diff --git a/.ci_scripts/run-all-pcaps.sh b/.ci_scripts/run-all-pcaps.sh index 53446e7..a8c960e 100755 --- a/.ci_scripts/run-all-pcaps.sh +++ b/.ci_scripts/run-all-pcaps.sh @@ -5,7 +5,7 @@ EXITCODE=0 for pcap in $GITHUB_WORKSPACE/traces/*.pcap do # Run pcap_fuzzer script on pcap file - python3 $GITHUB_WORKSPACE/src/pcap_fuzzer.py $pcap + python3 $GITHUB_WORKSPACE/pcap_fuzzer/pcap_fuzzer.py $pcap # If the exit code is not 0, set EXITCODE to 1 if [[ $? -ne 0 ]] then diff --git a/.gitignore b/.gitignore index 292cb60..9a4d2f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,12 @@ +# Environment config directories .vscode + +# Python build directories +__pycache__ +build +dist +*.egg-info + +# Temp files *.log csv diff --git a/pcap_fuzzer/__init__.py b/pcap_fuzzer/__init__.py new file mode 100644 index 0000000..866076d --- /dev/null +++ b/pcap_fuzzer/__init__.py @@ -0,0 +1,6 @@ +""" +Initialization script for package `pcap_fuzzer`. +""" + +from packet import * +from pcap_fuzzer import fuzz_pcaps diff --git a/src/packet/ARP.py b/pcap_fuzzer/packet/ARP.py similarity index 87% rename from src/packet/ARP.py rename to pcap_fuzzer/packet/ARP.py index e037887..9bef286 100644 --- a/src/packet/ARP.py +++ b/pcap_fuzzer/packet/ARP.py @@ -1,4 +1,4 @@ -from packet.Packet import Packet +from Packet import Packet class ARP(Packet): diff --git a/src/packet/BOOTP.py b/pcap_fuzzer/packet/BOOTP.py similarity index 99% rename from src/packet/BOOTP.py rename to pcap_fuzzer/packet/BOOTP.py index a88730e..2d26baf 100644 --- a/src/packet/BOOTP.py +++ b/pcap_fuzzer/packet/BOOTP.py @@ -1,7 +1,7 @@ from typing import Tuple import random import scapy.all as scapy -from packet.Packet import Packet +from Packet import Packet class BOOTP(Packet): """ diff --git a/src/packet/CoAP.py b/pcap_fuzzer/packet/CoAP.py similarity index 99% rename from src/packet/CoAP.py rename to pcap_fuzzer/packet/CoAP.py index b274a7d..67c45e0 100644 --- a/src/packet/CoAP.py +++ b/pcap_fuzzer/packet/CoAP.py @@ -1,5 +1,5 @@ import random -from packet.Packet import Packet +from Packet import Packet class CoAP(Packet): diff --git a/src/packet/DNS.py b/pcap_fuzzer/packet/DNS.py similarity index 99% rename from src/packet/DNS.py rename to pcap_fuzzer/packet/DNS.py index 2139740..abec9f1 100644 --- a/src/packet/DNS.py +++ b/pcap_fuzzer/packet/DNS.py @@ -1,6 +1,6 @@ import random from scapy.layers import dns -from packet.Packet import Packet +from Packet import Packet class DNS(Packet): diff --git a/src/packet/HTTP_Request.py b/pcap_fuzzer/packet/HTTP_Request.py similarity index 91% rename from src/packet/HTTP_Request.py rename to pcap_fuzzer/packet/HTTP_Request.py index 6d5665f..cb63ffd 100644 --- a/src/packet/HTTP_Request.py +++ b/pcap_fuzzer/packet/HTTP_Request.py @@ -1,4 +1,4 @@ -from packet.Packet import Packet +from Packet import Packet class HTTP_Request(Packet): diff --git a/src/packet/ICMP.py b/pcap_fuzzer/packet/ICMP.py similarity index 91% rename from src/packet/ICMP.py rename to pcap_fuzzer/packet/ICMP.py index 8d4879f..0554a20 100644 --- a/src/packet/ICMP.py +++ b/pcap_fuzzer/packet/ICMP.py @@ -1,4 +1,4 @@ -from packet.Packet import Packet +from Packet import Packet class ICMP(Packet): diff --git a/src/packet/IGMP.py b/pcap_fuzzer/packet/IGMP.py similarity index 91% rename from src/packet/IGMP.py rename to pcap_fuzzer/packet/IGMP.py index 0afe978..1d203e0 100644 --- a/src/packet/IGMP.py +++ b/pcap_fuzzer/packet/IGMP.py @@ -1,4 +1,4 @@ -from packet.Packet import Packet +from Packet import Packet class IGMP(Packet): """ diff --git a/src/packet/IGMPv3mr.py b/pcap_fuzzer/packet/IGMPv3mr.py similarity index 97% rename from src/packet/IGMPv3mr.py rename to pcap_fuzzer/packet/IGMPv3mr.py index 482a665..1a38c83 100644 --- a/src/packet/IGMPv3mr.py +++ b/pcap_fuzzer/packet/IGMPv3mr.py @@ -1,4 +1,4 @@ -from packet.Packet import Packet +from Packet import Packet class IGMPv3mr(Packet): """ diff --git a/src/packet/IPv4.py b/pcap_fuzzer/packet/IPv4.py similarity index 82% rename from src/packet/IPv4.py rename to pcap_fuzzer/packet/IPv4.py index 0636335..7bddcfa 100644 --- a/src/packet/IPv4.py +++ b/pcap_fuzzer/packet/IPv4.py @@ -1,4 +1,4 @@ -from packet.Packet import Packet +from Packet import Packet class IPv4(Packet): diff --git a/src/packet/IPv6.py b/pcap_fuzzer/packet/IPv6.py similarity index 82% rename from src/packet/IPv6.py rename to pcap_fuzzer/packet/IPv6.py index 0d8703a..00eda71 100644 --- a/src/packet/IPv6.py +++ b/pcap_fuzzer/packet/IPv6.py @@ -1,4 +1,4 @@ -from packet.Packet import Packet +from Packet import Packet class IPv6(Packet): diff --git a/src/packet/Packet.py b/pcap_fuzzer/packet/Packet.py similarity index 100% rename from src/packet/Packet.py rename to pcap_fuzzer/packet/Packet.py diff --git a/src/packet/TCP.py b/pcap_fuzzer/packet/TCP.py similarity index 84% rename from src/packet/TCP.py rename to pcap_fuzzer/packet/TCP.py index 0a19fed..325b4df 100644 --- a/src/packet/TCP.py +++ b/pcap_fuzzer/packet/TCP.py @@ -1,4 +1,4 @@ -from packet.Transport import Transport +from Transport import Transport class TCP(Transport): diff --git a/src/packet/Transport.py b/pcap_fuzzer/packet/Transport.py similarity index 98% rename from src/packet/Transport.py rename to pcap_fuzzer/packet/Transport.py index d6e1473..a0e203d 100644 --- a/src/packet/Transport.py +++ b/pcap_fuzzer/packet/Transport.py @@ -1,5 +1,5 @@ import random -from packet.Packet import Packet +from Packet import Packet class Transport(Packet): """ diff --git a/src/packet/UDP.py b/pcap_fuzzer/packet/UDP.py similarity index 90% rename from src/packet/UDP.py rename to pcap_fuzzer/packet/UDP.py index c2e586b..b0a324e 100644 --- a/src/packet/UDP.py +++ b/pcap_fuzzer/packet/UDP.py @@ -1,4 +1,4 @@ -from packet.Transport import Transport +from Transport import Transport class UDP(Transport): diff --git a/pcap_fuzzer/packet/__init__.py b/pcap_fuzzer/packet/__init__.py new file mode 100644 index 0000000..4db1f6e --- /dev/null +++ b/pcap_fuzzer/packet/__init__.py @@ -0,0 +1,3 @@ +""" +Initialization script for subpackage `packet`. +""" diff --git a/src/packet/mDNS.py b/pcap_fuzzer/packet/mDNS.py similarity index 97% rename from src/packet/mDNS.py rename to pcap_fuzzer/packet/mDNS.py index 55abe51..60e32b1 100644 --- a/src/packet/mDNS.py +++ b/pcap_fuzzer/packet/mDNS.py @@ -1,6 +1,6 @@ import random import scapy.all as scapy -from packet.DNS import DNS +from DNS import DNS class mDNS(DNS): diff --git a/src/pcap_fuzzer.py b/pcap_fuzzer/pcap_fuzzer.py similarity index 100% rename from src/pcap_fuzzer.py rename to pcap_fuzzer/pcap_fuzzer.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..4bce13a --- /dev/null +++ b/setup.py @@ -0,0 +1,24 @@ +from setuptools import setup, find_packages + +setup( + name='pcap_fuzzer', + version='0.1.0', + author='François De Keersmaeker', + author_email='francois.dekeersmaeker@uclouvain.be', + description='Randomly edit packet fields in a PCAP file.', + long_description=open('README.md').read(), + long_description_content_type='text/markdown', + url='https://github.com/smart-home-network-security/pcap-fuzzer', + license='GPLv3+', + packages=find_packages(), + classifiers=[ + 'Programming Language :: Python :: 3', + 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', + 'Operating System :: OS Independent', + ], + python_requires='>=3.7', + install_requires=[ + 'scapy', + ], + #test_suite='tests', +) diff --git a/src/.gitignore b/src/.gitignore deleted file mode 100644 index bee8a64..0000000 --- a/src/.gitignore +++ /dev/null @@ -1 +0,0 @@ -__pycache__ diff --git a/traces/.gitignore b/traces/.gitignore index 2057419..d69b968 100644 --- a/traces/.gitignore +++ b/traces/.gitignore @@ -1,2 +1,3 @@ +# Edited PCAP files edited -*.edit.pcap \ No newline at end of file +*.edit.pcap -- GitLab