Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from scapy.all import *
- class IRma_Hdr(Packet):
- name = "IRma Header"
- fields_desc = [
- ByteEnumField("opcode", None, {0x00 : "reset",
- 0x01 : "freq",
- 0x02 : "send",
- 0x03 : "recv"}),
- ByteEnumField("resp", None, {0x00 : "request",0x01 : "response"}),
- ShortField("param_size", None)
- ]
- class IRma_Reset(Packet):
- name = "IRma Reset Packet"
- class IRma_Freq(Packet):
- name = "IRma Frequency Packet"
- fields_desc = [ IntField("freq", None) ]
- class IRma_Send(Packet):
- name = "IRma Send Packet"
- fields_desc = [ ByteEnumField("proto", None, {0x00 : "raw",0x01 : "NEC"}),
- ShortField("data_size", None),
- StrFixedLenField("data", None,length_from = lambda pkt:pkt.data_size)]
- class IRma_Recv(Packet):
- name = "IRma Receive Packet"
- fields_desc = [ ShortField("raw_size", None),
- StrFixedLenField("raw", None, length_from = lambda pkt:pkt.raw_size),
- ByteEnumField("proto", None, {0x00 : "raw",0x01 : "NEC"}),
- ShortField("param_length",None),
- ByteEnumField("opcode", None, {0x00 : "reset",
- 0x01 : "freq",
- 0x02 : "send",
- 0x03 : "recv"})]
- bind_layers(IRma_Hdr, IRma_Reset, opcode=0x00)
- bind_layers(IRma_Hdr, IRma_Freq, opcode=0x01)
- bind_layers(IRma_Hdr, IRma_Send, opcode=0x02)
- bind_layers(IRma_Hdr, IRma_Recv, opcode=0x03)
- IRma_Hdr("\x00\x00\x00\x00\x00\x00\x00").show()
- print("================================================================")
- IRma_Hdr("\x01\x01\x00\x48").show()
- print("================================================================")
- IRma_Hdr("\x02\x01\x00\x48\x01\x00\x02\x41\x42\x43").show()
- print("================================================================")
- IRma_Hdr("\x02\x01\x00\x48\x01\x00\x02\x41\x42\x43").show()
- print("================================================================")
- IRma_Hdr("\x03\x01\x00\x48\x00\x02\x45\x44\x00\x11\x02\x03").show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement