diff --git a/scapy/packet.py b/scapy/packet.py index 656645c90250e314e4ecd2df475ec7caf10786fa..863157608b6fe12a7d391089d5a5871013de23ef 100644 --- a/scapy/packet.py +++ b/scapy/packet.py @@ -17,6 +17,13 @@ except ImportError: pass +class RawVal: + def __init__(self, val): + self.val = val + def __str__(self): + return self.val + + class Packet(BasePacket): __metaclass__ = Packet_metaclass name=None @@ -275,7 +282,11 @@ class Packet(BasePacket): def do_build(self): p="" for f in self.fields_desc: - p = f.addfield(self, p, self.getfieldval(f.name)) + val = self.getfieldval(f.name) + if isinstance(val, RawVal): + p += str(val) + else: + p = f.addfield(self, p, val) return p def post_build(self, pkt, pay):