Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Scapy逐步剖析有效载荷的每个部分_Python_Scapy - Fatal编程技术网

Python 使用Scapy逐步剖析有效载荷的每个部分

Python 使用Scapy逐步剖析有效载荷的每个部分,python,scapy,Python,Scapy,我想知道如何使用Scapy根据不同的字段类型/长度解析有效负载 例如,我有这个=> |###[ Raw ]### | | load='\x00!\x92(\x00!\x92(\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x01\x00\x00\xc0\xa8\x03\x01\xc0\xa8\x03\x02\x01\xc0\x00\x00\x03\x03\x00\x00\x00\x00\x00\x00\x18\x18\x10\x00\x00\x00

我想知道如何使用Scapy根据不同的字段类型/长度解析有效负载

例如,我有这个=>

|###[ Raw ]###
        |   |  load='\x00!\x92(\x00!\x92(\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x01\x00\x00\xc0\xa8\x03\x01\xc0\xa8\x03\x02\x01\xc0\x00\x00\x03\x03\x00\x00\x00\x00\x00\x00\x18\x18\x10\x00\x00\x00\x00\x00'
我想一步一步地划分每个部分:第一部分2个字节/第二部分4个字节等等


实际上,我使用Scapy添加了一个新协议,但最后一部分管理起来非常复杂,因此我选择/尝试用这种方式(如上)剖析负载的最后一部分。

在Scapy中剖析复杂协议的最佳方法是理解所有可用字段(考虑到其糟糕的文档,这可能很困难)

Scapy中支持的字段列表:

特别要注意条件字段:

ConditionalField(XShortField("chksum",None),lambda pkt:pkt.chksumpresent==1)
此外,了解如何在肩胛骨解剖期间使用guess_payload_class()选择不同的层。如果你想把它分成小段(2字节/ 4字节等),考虑为每一部分创建一个层,使用GuestyPayLoxCyCub()。p> 如果你有一个关于如何剖析某些领域的更具体的问题,我可以试着回答,但现在这是我能为你的一般问题提供的最好建议。希望能有帮助