如何在Scapy中正确修改数据包数据?
我最近在使用Scapy这个工具,尝试制作一些数据包。但是我遇到一个问题,就是在数据包中指定某些数据或选项时不知道该怎么做。比如说,我想制作一个带有选项60的DHCP数据包,但我不知道可以用什么有效的数据。我知道数据包应该有一个DHCP.options
的列表,我可以把选项加到这个列表里,但我怎么知道可以用什么类型和范围的数据呢?我也知道在解释器里输入DHCPOptions
可以看到它是一个“厂商类ID”,但我到底该怎么正确地把它加到数据包里呢?
再举个例子:对于TCP时间戳选项,我发现我必须把它输入为(‘Timestamp’, (int,int))
,也就是说要有一个包含字符串Timestamp
的元组,以及一个包含两个整数的元组,但我不知道这两个整数的范围是什么。
所以,最终我的问题是:我该从哪里找到在Scapy中添加有效输入数据到数据包的方法?有没有什么列表或文档可以参考?我搜索了很久,但连源代码里都找不到,文档似乎也没什么帮助。非常感谢任何帮助!
示例代码:
p = Ether()/IP()/UDP()/BOOTP()/DHCP()
# ?:what goes in the list to correctly add any option?
p[DHCP].options = [(?,?)]
# Trying to add option 60 here, unsure how
p[DHCP].options.append( ('vendor_class_id', ?) )
我用选项60只是举个例子,但我想知道如何添加任何有效的选项。