![](/img/trans.png)
[英]creating new protocol in scapy with fields depending on the packet total length
[英]create scapy packet protocol with reuse of payload for more than one fields
我正在嘗試為scapy創建自己的協議,並且在最近幾天一直處於卡住狀態。
我想做的是使用第一層的前14個字節,dst mac使用6個字節,src mac使用6個字節,填充2個字節。 包的其余部分將是有效載荷。
問題是我不確定如何使數據包中的第5個字節和第6個字節成為將提供ShortField值的字段。
class MyEther(Packet):
name = "MyEther"
fields_desc =[
MACField("dst", None),
MACField("src", None),
StrLenField('padding', None, length_from=lambda x: 2)
]
非常感謝您的幫助!
在這種情況下,不適合使用MACField。 對於每個MACField,應使用IntField,然后使用ShortField。
fields_desc = [
IntField(“a”, 0),
ShortField(“b”, 0), # here are your 5-6 bytes
....
]
但是,如果您真的知道自己在做什么,並且知道需要MACField,則可以使用
struct.unpack(“!H”, mac2str(packet.dst)[4:6])
(mac2str是從scapy導入的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.