gpt4 book ai didi

python - Scapy欺骗UDP报文报错

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:54 25 4
gpt4 key购买 nike

AttributeError: 'bytearray' object has no attribute '__rdiv__'

我得到以下代码:

b = bytearray([0xff, 0xff])

def spoof(src_ip, src_port, dest_ip, dest_port):
global b
spoofed_packet = IP(src=src_ip, dst=dest_ip) / TCP(sport=src_port, dport=dest_port) / b
send(spoofed_packet)

在 stackoverflow 上找到了欺骗数据包的示例,但它没有使用字节数组,我想我需要将字节数组转换为字符串?

此外,我的 scapy 总是以任何方式打开 powershell?

我通过将 bytearray 转换为字符串来修复该错误,现在我收到以下错误:

    os.write(1,b".")
OSError: [Errno 9] Bad file descriptor

最佳答案

Bytearray 对象无法转换为 Packet 对象(因此,Scapy 无法发送它们,这解释了 'bytearray' object has no attribute '__rdiv__' 错误)。您需要转换 b,使用 str()(如果您在 2.4.0 之前使用 Scapy,使用 Python 2),或 raw()(使用 Scapy 2.4.0 及更高版本,使用 Python 2 或 3)。

我强烈建议您升级到 Scapy 2.4.0。这应该可以修复 Bad file descriptor 错误和 Powershell 窗口。

例如,您的代码带有 raw()(如果您使用的是 Scapy < 2.4.0,请替换为 str()):

b = bytearray([0xff, 0xff])

def spoof(src_ip, src_port, dest_ip, dest_port):
global b
spoofed_packet = IP(src=src_ip, dst=dest_ip) / TCP(sport=src_port, dport=dest_port) / raw(b)
send(spoofed_packet)

如果你必须使用bytearray对象,你也可以直接使用bytes/str对象:

b = b"\xff\xff"

def spoof(src_ip, src_port, dest_ip, dest_port):
global b
spoofed_packet = IP(src=src_ip, dst=dest_ip) / TCP(sport=src_port, dport=dest_port) / b
send(spoofed_packet)

关于python - Scapy欺骗UDP报文报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49620507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com