2017-09-17 8 views
1

Je veux ajouter quelques champs au paquet UDP en utilisant scapy. J'ai essayé d'écrire une classe UDP à nouveau, mais ça n'a pas marché. Comment puis-je ajouter plus de champs aux paquets udp?Comment ajouter des champs aux paquets udp?

class UDP(Packet): 
name = "UDP" 
fields_desc=[StrLenField("omer","omer",100)] 
+0

Cela pourrait aider https://stackoverflow.com/a/24012138/840582 – Vinny

+0

I n'a pas trouvé de réponse ici, je veux créer un paquet udp et ajouter des champs, de la même manière que socket? – Omer

+0

Votre question est encore ouverte. Alors s'il vous plaît, donnez plus de détails sur le problème que vous cherchez à résoudre. Donnez plus d'informations sur votre code, vos erreurs, etc. –

Répondre

0

L'extrait de code suivant fonctionne pour moi. J'ai écrit ma propre classe UDP, qui hérite de la classe Scapy UDP. Et puis je copie, fields_desc d'UDP et ajoute un nouveau champ. Sans la copie, cela changera aussi les champs de la classe Scapy UDP.

import scapy.all as scp 

class MyUDP(scp.UDP): 
    fields_desc = scp.UDP.fields_desc.copy() 
    fields_desc.append(scp.StrLenField("omer","omer",100)) 

Le résultat de print(MyUDP().show() est:

###[ UDP ]### 
    sport  = domain 
    dport  = domain 
    len  = None 
    chksum = None 
    omer  = 'omer' 
None 

J'utilise Python 3 et scapy 3.0.0