2024-04-24 04:12:54 发布
网友
我目前正在进行一个项目,我需要将数据包发送到特定的网络硬件,接收响应,并根据响应实时生成数据包。在
我遇到了斯卡比,据我所知,它可以完成前两部分:发送和接收。是否可以通过Python检索响应中的必需字段并进行响应?在
谢谢!在
在 如果我明白你的意思,你和斯卡比(至少)有两个选择:
干净的方法是创建一个符合您需要的AnsweringMachine(在Scapy的代码中有几个例子)。在
AnsweringMachine
肮脏的(但如果你需要的话可能更快)方法是给prn参数给sniff()一个函数,该函数将接收数据包,编写一个答案(或任何你喜欢的东西)并在网络上send()。在
prn
sniff()
send()
例如,此代码将发送RST-ACK数据包到SYN标志为on的任何TCP数据包:
def rst(p): ans = IP(src=p[IP].dst, dst=p[IP].src)/TCP( flags='RA', sport=p[TCP].dport, dport=p[TCP].sport, seq = 0, ack = p[TCP].seq + 1, ) send(ans, verbose=False) return "%s\n => %s" % (p[IP].summary(), ans.summary()) sniff(iface="eth0", filter="tcp and tcp[tcpflags] & tcp-syn == tcp-syn", prn=rst)
在 如果我明白你的意思,你和斯卡比(至少)有两个选择:
干净的方法是创建一个符合您需要的
AnsweringMachine
(在Scapy的代码中有几个例子)。在肮脏的(但如果你需要的话可能更快)方法是给
prn
参数给sniff()
一个函数,该函数将接收数据包,编写一个答案(或任何你喜欢的东西)并在网络上send()
。在例如,此代码将发送RST-ACK数据包到SYN标志为on的任何TCP数据包:
相关问题 更多 >
编程相关推荐