Seite 1 von 1

dpkt - falsche UDP Length

Verfasst: Freitag 22. Mai 2009, 13:21
von d33con
folgendes problem:

hae diese zwei funktionen um ein paket zu basteln, wobei buildUDPPkt als DATA feld im IP paket mitwandert.
Wenn ich dieses Paket aber sende und den trace in Wireshark beobachte bekomme ich folgendes: BAD UDP LENTH 0<8
woran liegt das? klar: die länge eines paketes kann nicht == 0 sein wenn der header schon mind. 8 ist - aber was habe ich falsch programmiert?

anmerkung: benutze dpkt

ef buildIPPkt(src, dst, data, protocol):
ip_p = dpkt.ip.IP()
ip_p.tos = 0
ip_p.off = 0
ip_p.p = protocol #socket.IPPROTO_UDP
ip_p.ttl = 64 # hop limit
ip_p.src = socket.inet_aton(src)
ip_p.dst = socket.inet_aton(dst)
ip_p.data = str(data);
ip_p.len = 16 + len(data)
return str(ip_p)

def buildUDPPkt(sport,dport,data):
udp_p = dpkt.udp.UDP()
udp_p.sport = 100
udp_p.dport = 1337
udp_p.data = str(data)
udp_p.ulen = 8 + len(data)
return str(data)

vielen dank

d33con