Scapy 发送带数据的TCP报文 wireshark抓不到scapy发出的包

本文介绍了如何使用Scapy构造带数据的TCP报文,强调了构造过程中的注意事项,如填充数据段以确保正确长度。同时,针对Wireshark无法捕获Scapy发送的包这一问题,提出了检查发送函数、保存并重新发送包、检查数据包内容以及从基础报文开始逐步添加参数等解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

scapy的发送包函数

scapy中,将Ether()看作是第二层,IP()看作是第三层

  • send()是发送第三层的包,也就是IP层,会自动处理路由和第二层
  • sendp()是发送第二层的包,需要自己选择正确的接口和正确的链路层协议 sendp(Ether()/IP(dst=“1.2.3.4”,ttl=(1,4)), iface=“eth1”)
  • sr() 函数用于发送数据包和接收答案。该函数返回几个数据包和答案,以及未应答的数据包。
  • sr1() 是一个变体,它只返回一个响应发送的数据包(或数据包集)的数据包。数据包必须是第 3 层数据包(IP、ARP 等)
  • srp() 对第 2 层数据包(以太网、802.3 等)执行相同的操作。如果没有响应,则在达到超时时将分配一个 None 值。

send函数和sendp是不接收返回包的,如果想要得到返回包,可以使用sr或sr1

构造带数据的TCP数据包

#想要传输的1440字节的数据
data = b'\x00\x00\xa6\x89\xe5\x91f\xed\xbb\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t\x00H\x006\n\x00\x00p\x00\x00\x00\x00\x00\x00\x00\xfb\xa3h\xab"\x9e\xd7\x01\xa4s\xbd\xf8+\x9e\xd7\x01\xfb\xa3h\xab"\x9e\xd7\x01\xfb\xa3h\xab"\x9e\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00F\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00p\x00\x00\x00\x00\x00\x00\x00y|\x8f\x0c!\x9e\xd7\x01\xaf\xcf\xe2\xf4+\x9e\xd7\x01y|\x8f\x0c!\x9e\xd7\x01y|\x8f\x0c!\x9e\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x00\x00:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值