【问题标题】:How to add bits to the application layer when building a packet with scapy?使用 scapy 构建数据包时如何向应用层添加位?
【发布时间】:2017-09-26 21:59:45
【问题描述】:

我正在使用 scapy 库构建一个数据包,我想在应用层添加某个位字符串,例如 00110011。不幸的是,scapy 将字符串“00110011”转换为 ASCII 格式。但是如果我只想添加这 8 位呢?

这是我尝试生成的数据包

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   .%....@.>.......
0020   14 14 04 D2 10 E1 00 11  B8 69 30 62 31 31 31 31   .........i0b1111
0030   31 31 31                                           111

但我最后想要FF,就这样。

【问题讨论】:

  • 您应该向我们展示代码的相关 sn-p 及其当前输出,然后解释所需的输出是什么。这会让你的问题更清楚。
  • 谢谢,我添加了例子。如果还有什么不清楚的地方,请告诉我。

标签: python scapy packet


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-06-12
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 2021-03-19
    • 2016-10-22
    • 2011-07-29
    • 1970-01-01
    • 2020-08-01
    相关资源
    最近更新 更多