Bonjour,
Version longue:
J'essaie de générer manuellement des trames fragmentées UDP.
Par manuellement, je veux dire que je gère presque tous les champs des trames.
Je souhaite par la suite rajouter un champ à la suite de la payload UDP.
J'utilise la commande sendp pour envoyer chaque trame.
Dans mon exemple, je n'ai que 2 trames fragmentée (qui devrait donc être rassemblée en 1 trame).
Version courte:
J'essaie de générer manuellement des trames fragmentées UDP.
Je pense que j'arrive à générer correctement la première trame. (Qui si j'ai bien compris, contient les headers UDP).
Mon problème est pour la deuxième trame (qui ne contient pas les headers UDP). Du coup, le champs proto n'est pas correctement rempli ou alors si je précise proto=UDP dans la couche IP, j'ai une erreur que je ne comprends pas vraiment:
j'ai mis le script en pièce jointe. Dans ce fichier je précise le proto.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Traceback (most recent call last): File "test1.py", line 14, in <module> a2=Ether(dst='03:00:00:00:00:01', src='02:00:00:01:21:20')/IP(src="10.1.33.10",dst="224.224.0.100", flags=0, id=12346, ttl=1, len=1320, frag=163, proto=UDP)/Raw(load=payload_s2) File "/usr/lib/python2.7/dist-packages/scapy/packet.py", line 265, in __div__ cloneB = other.copy() File "/usr/lib/python2.7/dist-packages/scapy/packet.py", line 145, in copy clone.fields[k]=self.get_field(k).do_copy(clone.fields[k]) File "/usr/lib/python2.7/dist-packages/scapy/fields.py", line 76, in do_copy return x.copy() TypeError: unbound method copy() must be called with UDP instance as first argument (got nothing instead)
Je pense que ça plante parce que je lui précise le proto UDP mais je n'ai pas précisé le contenu UDP. Mais je me trompe peut-être.
Partager