【问题标题】:Python variables in scapy (sendp)scapy 中的 Python 变量(sendp)
【发布时间】:2015-07-07 22:34:35
【问题描述】:

我正在尝试生成任意无线信标帧。我正在从文件中获取基于字符串的 SSID 值以放入 scapy sendp 语句中。现在我可以将 SSID 字符串放入 sendp,但我还需要动态获取字符串长度 (len=),以便将其放入数据包详细信息中。没有此长度的数据包格式不正确。

这里我得到一个错误“struct.error: cannot convert argument to integer”

代码如下:

with open ('ssid.txt') as f:
for line in f:
    sendp(RadioTap()/Dot11(addr1="ff:ff:ff:ff:ff:ff",addr2=RandMAC(),addr3=RandMAC())/Dot11Beacon(cap="ESS")/Dot11Elt(ID="SSID", len='%d' % len(line.strip()),info='%d' % (line))/Dot11Elt(ID="Rates",info='\x82\x84\x0b\x16')/Dot11Elt(ID="DSset",info="\x03")/Dot11Elt(ID="TIM",info="\x00\x01\x00\x00"),iface="mon0")

【问题讨论】:

    标签: python scapy


    【解决方案1】:

    我的猜测是你的问题是这部分:

    Dot11Elt(ID="SSID", len='%d' % len(line.strip()),info='%d' % (line))
    

    如果len 参数应该是一个整数,那可能会导致您看到的错误,因为您实际上是在传递一个字符串。尝试删除第一个'%d' %,即将上面的替换为:

    Dot11Elt(ID="SSID", len=len(line.strip()), info='%d' % line)
    

    【讨论】:

    • 成功了!非常感谢。我自己花了几个小时,但我无法解决。
    • 我很高兴它成功了!如果我的回答是正确的,请采纳。
    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 2012-03-19
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    相关资源
    最近更新 更多