2012-05-16 37 views
1

解剖有效載荷步驟的每個部分我想知道如何根據型動物解剖有效載荷字段中鍵入使用Scapy的或以另一種方式與impacket/pcapy周圍/長度...通過步驟與Scapy的,impacket或pcapy

例如,我有這樣=>

|###[ 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添加了一個新協議,但最後一部分管理起來非常複雜,因此這就是爲什麼我選擇/嘗試以這種方式解析有效載荷的最後一部分(上圖)。

回答

2

解析Scapy中複雜協議的最好方法是理解所有可用字段(鑑於其糟糕的文檔,這可能很困難)。

在Scapy的支持的字段列表:http://trac.secdev.org/scapy/wiki/Fields

在在ConditionalField特定的外觀:

ConditionalField(XShortField("chksum",None),lambda pkt:pkt.chksumpresent==1) 

此外,學習如何guess_payload_class()可用於Scapy的解剖過程中選擇不同的層。如果你想剖析它的小部分(2字節/ 4字節等),考慮爲每個部分創建一個圖層並使用guess_payload_class()。 http://trac.secdev.org/scapy/wiki/BuildAndDissect

如果您對如何解析某些字段有更具體的問題,我可以嘗試回答它,但現在,這是我可以爲您的一般問題提供的最佳建議。希望能幫助到你。