[PYTHON] Werfen wir einen Blick auf den Scapy-Code. Wie bearbeiten Sie die Struktur?

Zweck

Ich habe eine kleine Besorgung, zum Beispiel, wie sieht der Scapy-Code aus? Was ist Scapy? Scapy is a powerful Python-based interactive packet manipulation program and library. (Zitat: https://pypi.org/project/scapy/)

** Python hat keine Struktur **, also Ich habe bestätigt, wie strukturelle Daten wie Pakete verarbeitet werden.

Der Zielcode ist https://github.com/secdev/scapy

Alle Zitiercodes sind oben.

Was ich fand

Überblick

Im Code gab es die folgenden zwei strukturbezogenen Prozesse

Grundsätzlich wird Ersteres verwendet.

Strukturmodul

↓ Es war mit dem folgenden Gefühl gepackt.

    psdhdr = struct.pack("!4s4sHH",
                         inet_pton(socket.AF_INET, u.src),
                         inet_pton(socket.AF_INET, u.dst),
                         proto,
                         ln)

Strukturklasse

↓ Es gibt den folgenden Code, aber für die Unterstützung von Windows PCAP? ?? Ich wusste nicht, wie ich es benutzen sollte.

class sockaddr_in(Structure):
    _fields_ = [("sin_family", SHORT),
                ("sin_port", USHORT),
                ("sin_addr", in_addr),
                ("sin_zero", 8 * CHAR)]   

Zusammenfassung

Ich habe überprüft, wie die Strukturdaten des Pakets von der berühmten Scapy verarbeitet werden. Das ** Strukturmodul ** wurde verwendet. (Das Obige ist etwas irreführend. Es kann angebracht sein zu sagen, dass das Strukturmodul in dem Teil verwendet wurde, in dem Daten gespeichert werden.) In Bezug auf den Umgang mit Strukturen in C-Sprache usw. halte ich es für richtig zu sagen, dass die anderen Teile als der gehärtete Teil normalerweise Mitglieder der Klasse sind.

Wenn Sie Kommentare haben, lassen Sie es uns bitte wissen. : Süßigkeiten:

Recommended Posts

Werfen wir einen Blick auf den Scapy-Code. Wie bearbeiten Sie die Struktur?
Werfen wir einen Blick auf den Scapy-Code. Überladung spezieller Methoden __div__, __getitem__.
Sehen Sie sich die in Python integrierte Ausnahmebaumstruktur an
Werfen wir einen Blick auf die Feature-Map von YOLO v3
Sehen Sie sich die in Python 3.8.2 integrierte Ausnahmebaumstruktur an
Werfen Sie einen Blick auf die Verarbeitung von LightGBM Tuner
Schauen Sie sich das Kaggle / Titanic-Tutorial genauer an
Fordern Sie die Bildklassifizierung mit TensorFlow2 + Keras 2 heraus ~ Schauen wir uns die Eingabedaten genauer an ~
Schauen Sie sich die Django-Vorlage an.
Schauen wir uns das Streudiagramm vor der Datenanalyse an
Sehen Sie sich das Profiling und Dumping mit Dataflow an
Werfen wir einen kurzen Blick auf CornerNet, einen Objektdetektor, der keine Anker verwendet.
Werfen wir einen Blick auf die Infektionstendenz des neuen Coronavirus COVID-19 in jedem Land und den Status der medizinischen Reaktion (zusätzliche Informationen).
Ein kurzer Blick auf Ihr Profil in der Django-App
Bis Sie ihn wie "Sie sind ein Datenwissenschaftler? 100 Jahre schneller" ansehen - Bis Sie einen Docker auf Win 10 Home erstellen und die SQL-Version von "Data Science 100 Knock (Strukturierte Datenverarbeitung)" starten -