如何使用scapy创建带有自定义选项字段的tcp数据包

时间:2014-08-21 05:58:27

标签: python tcp scapy

我尝试使用自定义选项字段创建tcp数据包。

一般来说,我们可以通过" options"当它是标准选项时的参数。 " MSS"例如:

>>> hexdump(IP()/TCP(dport=5678,flags="S",options=[('MSS',16)]))
0000 45 00 00 2C 00 01 00 00 40 06 7C C9 7F 00 00 01 E..,....@.|.....
0010 7F 00 00 01 00 14 16 2E 00 00 00 00 00 00 00 00 ................
0020 60 02 20 00 69 86 00 00 02 04 00 10 `. .i.......

当事情变成非标准选项时,说我需要一个类型为0xf5的选项。我试过了:

>>> hexdump(IP()/TCP(dport=5678,flags="S",options=[(0xF5,16)]))
WARNING: option [245] is not string.
WARNING: option [245] is not string.
0000 45 00 00 28 00 01 00 00 40 06 7C CD 7F 00 00 01 E..(....@.|.....
0010 7F 00 00 01 00 14 16 2E 00 00 00 00 00 00 00 00 ................
0020 50 02 20 00 7B 9E 00 00 P. .{...

显然,它不起作用。那么有没有办法用scapy做到这一点?

1 个答案:

答案 0 :(得分:0)

TCPOptions在scapy / layers / inet.py中定义。您可以添加自己的选项。