如何使用scapy构建数据包时将位添加到应用程序层?

如何使用scapy构建数据包时将位添加到应用程序层?

问题描述:

我正在使用scapy库构建数据包,并且我想在应用程序层中添加某个位串,例如00110011.不幸的是,scapy将字符串'00110011'转换为ASCII格式。但是如果我想仅添加这8位数据呢?如何使用scapy构建数据包时将位添加到应用程序层?

这是我尝试生成

pkt = Ether(src='00:00:00:00:00:01', dst='ff:ff:ff:ff:ff:ff')/
IP(src='10.10.10.10', dst='20.20.20.20', proto=0x8F)/
UDP(dport=4321, sport=1234)/'0b1111111' 

不幸的是,包,hexdump都(PKT)使我这个:

0000 FF FF FF FF FF FF 00 00 00 00 00 01 08 00 45 00 ..............E. 
0010 00 25 00 01 00 00 40 8F 3E 0E 0A 0A 0A 0A 14 14 .%[email protected]>....... 
0020 14 14 04 D2 10 E1 00 11 B8 69 30 62 31 31 31 31 .........i0b1111 
0030 31 31 31           111 

但我想FF在年底,这一点。

+0

您应该向我们展示相关的代码片段及其当前输出,然后解释所需的输出是什么。这会让你的问题更清楚。 –

+0

谢谢,我添加了这个例子。请让我知道,如果有什么还不清楚。 – chessman

问题解决了!我只需要以特殊的十六进制格式传递字符串,如'\ xff'。