问题标签 [scapy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
24778 浏览

python - 如何使用 scapy 重新计算 IP 校验和?

可能重复:
如何在不发送的情况下计算数据包校验和?

我在捕获的数据包中欺骗了源 IP 和 MAC 地址,但现在我需要重新计算校验和,以便在收到它后检查(当然是在注入网络之后)。我真的不想自己实现校验和,我想这scapy可以为我做这件事。我读到该show2()函数应该重新计算校验和,但我似乎无法让它工作。

那么,我如何使用scapy重新计算(和替换)捕获的 + 欺骗数据包的校验和?

谢谢!

0 投票
1 回答
2044 浏览

python - 帮助 scapy 和 pcapy

我是 scapy 和 pcapy 的新手。作为一个项目,我必须使用 scapy 发送一个 ICMP 数据包并使用 pcapy 捕获它。我必须比较发送者和接收者之间的时间戳来计算网络延迟。

我不知道我该怎么做。任何帮助将不胜感激。

谢谢你。

以下命令我曾经将 ICMP 数据包发送到我使用类型 13 作为时间戳的目的地。

a=IP(dst="172.24.50.76")/ICMP(类型=13)

sr1(a) 开始发射:完成发送 1 个数据包。收到 1 个数据包,得到 1 个答案,剩余 0 个数据包

ts_ori=22:40:35.556 ts_rx=526:4:13.700 ts_tx=526:4:13.700

1)以上ts_rx和ts_tx时间戳显示的时间相同,那么如何计算延迟呢?2)其次,我如何增加数据包的大小,因为我可以计算不同数据包大小的延迟。

我希望你很清楚。

0 投票
1 回答
2591 浏览

python - Scapy show2() 数据包问题

我正在尝试创建一些 scapy 图层并希望它们动态调整它们的大小。我使用以下代码:

当我在我的 scapy 解释器中执行以下操作时: >>> aa=Foo(); aa.byte2=0x14; aa.show2(); 我得到:

现在,根据我的理解,show2() 应该计算数据包的长度等。在我的情况下,这应该设置长度字节 2。不幸的是,情况并非如此。知道我做错了什么吗?我已经搜索了几个小时的错误,但我没有想法:-S 任何建议都会受到欢迎。

最诚挚的问候

0 投票
1 回答
703 浏览

python - scapy 独立层,无封装

我尝试创建一个协议,但我有一些理解问题。我为每一层创建了一个类。然后我创建了一些为我构建数据包的方法,通过将层堆叠在另一个之上。

当我创建一个数据包时:

我得到类似的东西:

<Foo | <Bar |>>,这意味着,据我了解,数据包是封装的(例如IP()/ICMP()在有意义的地方)。现在,我的问题是我想要更多类似的东西:

我究竟做错了什么?下面是我使用的代码(简化版):

现在,我不确定“/”是否是这种情况下的正确运算符。我将如何以更好的方式做到这一点?在我的协议中,这些层是独立的,没有被封装。

0 投票
1 回答
34090 浏览

python - 在数据包中添加有效负载

我可以使用 scapy 将图像或文档(以 MB 为单位)作为数据包中的数据插入吗?

这就是我发送数据的方式。

0 投票
1 回答
1865 浏览

python - scapy如何检查是否设置了字段

我正在用 scapy 构建一个图层。该层具有 ConditionalFields:

现在如何检查是否设置了 bar1?分别 酒吧2?我写的 lambda 函数对我来说似乎是正确的,根据文档,它是这样使用的,但它不起作用。你知道我该如何解决这个问题吗?这个想法是,如果在我实例化类 Foo 时设置了bar1bar2,它应该存在于数据包中,否则不存在。我不想只为这种情况做 2 个数据包。

0 投票
1 回答
2586 浏览

python - 将 TCP 校验和与 Scapy 进行比较?

我试图在使用 Scapy 作为嗅探器时识别校验和不正确的数据包。我可以通过访问获得原始校验和

然后我删除它使用

我想做类似的事情

我知道使用 show2() 会重新计算校验和,但是无论如何可以访问此属性以与原始属性进行比较?调用 show2() 只显示校验和,而不设置数据包中的任何值。

感谢您的任何澄清

0 投票
2 回答
2499 浏览

python - Scapy BitField 和 type() 问题

我正在为 scapy 编写一个插件,但遇到了一个问题。我不得不稍微修改原始的 scapy 代码(每个类都继承自对象)修改后的代码可以在这里找到:http: //pastebin.com/pjcL1KJv

我写的代码如下:

输出:

<类型'int'>

<类型'int'>

<类型'int'>

<类型'NoneType'>

我的问题:是否可以检测第二个参数是BitField("foo",0x0,2)is0x0还是其他?如果有可能,我会怎么做?如果不是,为什么?

0 投票
1 回答
2999 浏览

python - Scapy获取字段的实际值

这个问题与另一个有关

我想检查 scapy 中字段的值:

代码并没有完全正常工作,但重要的部分是。输出是:

现在,问题是当我在命令行上更改一个值时:

我怎样才能找出(在我的计算方法中) foo1 有什么价值?我认为这并不是一个真正困难的问题,但我无法弄清楚我在这里缺少什么:/如果你能帮我一把会很酷:)

最诚挚的问候

0 投票
2 回答
599 浏览

python - Scapy设置类属性问题

我正在使用 scapy 并且有一个与 scapy 以及 python 相关的问题。我尝试使用变量作为 scapy 字段名称。这是一段代码,应该说明我尝试做的事情(它不起作用):

现在我想问题是由于 fields_desc 是类属性而不是类变量。现在,我怎样才能达到我想要的?(在运行时/类初始化时设置 self.foo 的名称?)

如果有任何帮助,我将不胜感激。最诚挚的问候

编辑:附加一个计数器就足够了。我试过:

但似乎不起作用。如果你能指出我正确的方向会很酷,不知何故我迷路了。