2024-05-23 23:16:50 发布
网友
如何找到Scapy支持的特定字段的大小。例如LongField的大小是多少(以字节为单位)?我检查了scapy文档,但是找不到(http://www.secdev.org/projects/scapy/doc/build_dissect.html#fields)。 是否有任何功能来检查它,或任何共享此信息的文档。在
看看源代码。Scapys构建的int字段使用struct.pack()将整数转换为各种长度的大小端表示。作为Field的实现的LongField将被序列化为fmt=Q,根据{a3}的python文档,它的大小为Q unsigned long long integer 8(另请参见struct.calcsize)
struct.pack()
fmt=Q
Q unsigned long long integer 8
struct.calcsize
请始终注意,字段可以高度特定于一个协议。但是,对于基于class Field的字段,可以尝试访问instancesfmt属性。但是,这可能不准确,因为您的字段可能具有重写的序列化方法。一个更通用的解决方案是生成该字段的一个实例,将其序列化并对其调用len()。在
class Field
fmt
len()
(注意:指向非正式github镜像的链接)
看看源代码。Scapys构建的int字段使用
struct.pack()
将整数转换为各种长度的大小端表示。作为Field的实现的LongField将被序列化为fmt=Q
,根据{a3}的python文档,它的大小为Q unsigned long long integer 8
(另请参见struct.calcsize
)请始终注意,字段可以高度特定于一个协议。但是,对于基于
class Field
的字段,可以尝试访问instancesfmt
属性。但是,这可能不准确,因为您的字段可能具有重写的序列化方法。一个更通用的解决方案是生成该字段的一个实例,将其序列化并对其调用len()
。在(注意:指向非正式github镜像的链接)
相关问题 更多 >
编程相关推荐