- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下脚本 (python + scapy) 创建一个包含碎片 UDP 数据包的 pcap 文件的碎片整理版本。
# Read pcap file
in=rdpcap("in.pcap")
# Defragment ...
out = defragment(in)
# Write defragmented pcap file
wrpcap ("out.pcap", out)
我的问题是碎片整理数据包的 pcap 时间戳设置为碎片整理日期,而不是捕获日期。未分片的数据包仍具有其原始捕获时间戳。
我查看了 inet.py、defragment() 和 defrag(),但我对 scapy 不是很流利,我想帮助理解它并破解它以保持日期,比如说,最后一个分片,放入碎片整理后的数据包中...
任何人都可以帮我解决这个问题吗?
比如,我在哪里可以找到输入数据包中的捕获日期,我应该把它放在碎片整理数据包的什么地方......
当然,欢迎任何其他达到相同目标的解决方案(我承认......我很着急:(......)
最佳答案
这是 inet.py 的补丁,它将第一个片段的捕获日期添加到经过碎片整理的数据包中。
可能有更简洁的解决方案,例如修改 Packet.copy() 方法和其他一些方法,但是,嘿,它符合要求......
*** inet.py 2011-03-29 14:01:19.000000000 +0000
--- inet.py.orig 2011-03-29 07:59:02.000000000 +0000
***************
*** 846,856 ****
lastp = lst[-1]
if p.frag > 0 or lastp.flags & 1 != 0: # first or last fragment missing
missfrag += lst
- print "missing framgent!"
continue
! # Keep 1st fragment capture time (as it is lost in subsequent copies during defragmentation)
! ptime = p.time
! p = p.copy() # copy() method do not copy time member (?)
if Padding in p:
del(p[Padding].underlayer.payload)
ip = p[IP]
--- 846,853 ----
lastp = lst[-1]
if p.frag > 0 or lastp.flags & 1 != 0: # first or last fragment missing
missfrag += lst
continue
! p = p.copy()
if Padding in p:
del(p[Padding].underlayer.payload)
ip = p[IP]
***************
*** 878,892 ****
del(ip.len)
p = p/txt
p._defrag_pos = max(x._defrag_pos for x in lst)
- # Put back time in packet
- p.time= ptime
defrag.append(p)
defrag2=[]
for p in defrag:
q = p.__class__(str(p))
q._defrag_pos = p._defrag_pos
- # Put back time in packet
- q.time = p.time
defrag2.append(q)
final += defrag2
final += missfrag
--- 875,885 ----
关于python - scapy:UDP碎片整理时间戳问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422432/
我使用 Scapy 创建一个初始 OpenVPN 数据包并将其发送到 OpenVPN 服务器(作为客户端)。数据包的 OpenVPN 部分我只是从旧的捕获连接中重用,但它在这里无关紧要。 事情是,我添
我在使用 Scapy 进行 TCP 握手时遇到问题。我的 Scapy 代码正在发送 SYN 数据包。目标正在使用 SYN/ACK 数据包进行响应。我可以在 tcpdump 中看到 SYN/ACK 数据
我正在查看一个需要制作 S1 应用程序协议(protocol) (S1AP) 数据包的项目。它用于 4G LTE 网络的 eNodeB 和 MME 之间。 S1AP 基于 IP 并由 Steam 控制
我尝试导入 scapy.all,但出现“wpcap.dll”不存在的错误。为什么会这样?我确定我正确下载了所有内容。我将所有内容保存到一个名为 scapy 的文件夹中。我从模块 ctypes 得到了一
如果我生成一个没有任何上层有效载荷的以太网帧并使用 sendp() 在第二层发送它,那么我会收到 "Mac address to reach destination not found. Using
I'm new to scapy and I'm trying to implement a protocol.Within this protocol a type, lets call it
我在 Windows 7 和 Fedora 机器上都安装了 scapy。但是,contrib 包没有安装(或者至少,它没有出现在我的 site-packages/scapy 包下。我怎样才能安装它?
我只是想在scapy中创建一个以eg开头的数据包 数据包 = RadioTap()/Dot11()/Dot11ACK() packet.show() 给了我这个错误。我无法发送任何没有 RadioTa
如何使用 scapy 创建一组具有递增有效负载的数据包?例如,第一个数据包的有效负载(数据)必须为 1,第二个必须为 2,依此类推。 我试过这个: >>> pkt=(Ether(dst='00:01:
我想知道如何验证从Scapy的sr1()函数接收到的数据包包含TCP层,以便对TCP标志进行一些处理。 最佳答案 您有两个选择,in运算符是一个。 >>> TCP in pkt True >>> if
我正在尝试使用Scapy学习一些数据包生成。看起来很酷。根据一些文档,我正在这样做: l3=IP(dst="192.168.0.1", src="192.168.0.2", tos=(46 ", li
我需要发送格式错误的以太网帧以进行测试。我已禁用 Rx 和 Tx 校验和的卸载: root@T60:~# ethtool --show-offload eth0 Features for eth0:
如何使用 scapy 更改数据包数据? 我尝试使用sniff(),然后send()编辑的数据包,但它不起作用,因为原始数据包已经到达目的地。 最佳答案 “但是它不会工作,因为原始数据包已经到达目的地。
我在 Ubuntu 16.04 中运行 sacpy 2.4。我发现基本数据包(Eth/IP/UDP 或 Eth/IP/TCP)wireshark 经常标记失败的帧检查序列。 经过调查,我发现“损坏的数
Scapy 文档给出了以下 ARP 缓存中毒的例子: send(Ether(dst=clientMAC)/ARP(op="who-has", psrc=gateway, pdst=client)) 问
背景: 我正在使用 scapy 测试一个网络设备,该设备可以通过交换源/目标 MAC、IP 地址和第 4 层端口号来选择性地环回数据包。可以为 layer_2_only 选择交换, layers_2_
如果我使用 sr1 为 www.google.com 发送 DNSQR,我会收到几个 DNSRR(s) 作为回复,例如(使用 ans[DNSRR].show() 完成): ###[ DNS Resou
我想将我的数据包发送到一个 UDP dst 端口号并通过 eth0 接口(interface)发送(如果 scapy 直接处理我的 layer2,那么 eth0 不需要作为参数给出) 最佳答案 使用
我如何计算我使用的捕获的数据包数量 packets = sniff(filter='udp and host fe80::xx:xx:xx:xx',count=0) 功能?这可能吗? 我实际上一直在尝
我正在使用 F5 Networks Big-IP 产品,该产品附加了一个自定义以太网 II 尾帧以进行调试。我正在尝试使用 Scapy 为这个预告片绑定(bind)一个新图层,但我无法这样做。 我可以
我是一名优秀的程序员,十分优秀!