Advertisement
Guest User

Untitled

a guest
Jul 20th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. from scapy.all import *
  2.  
  3.  
  4.  
  5.  
  6. class IRma_Hdr(Packet):
  7. name = "IRma Header"
  8. fields_desc = [
  9. ByteEnumField("opcode", None, {0x00 : "reset",
  10. 0x01 : "freq",
  11. 0x02 : "send",
  12. 0x03 : "recv"}),
  13. ByteEnumField("resp", None, {0x00 : "request",0x01 : "response"}),
  14. ShortField("param_size", None)
  15. ]
  16.  
  17. class IRma_Reset(Packet):
  18. name = "IRma Reset Packet"
  19.  
  20. class IRma_Freq(Packet):
  21. name = "IRma Frequency Packet"
  22. fields_desc = [ IntField("freq", None) ]
  23.  
  24. class IRma_Send(Packet):
  25. name = "IRma Send Packet"
  26. fields_desc = [ ByteEnumField("proto", None, {0x00 : "raw",0x01 : "NEC"}),
  27. ShortField("data_size", None),
  28. StrFixedLenField("data", None,length_from = lambda pkt:pkt.data_size)]
  29.  
  30. class IRma_Recv(Packet):
  31. name = "IRma Receive Packet"
  32. fields_desc = [ ShortField("raw_size", None),
  33. StrFixedLenField("raw", None, length_from = lambda pkt:pkt.raw_size),
  34. ByteEnumField("proto", None, {0x00 : "raw",0x01 : "NEC"}),
  35. ShortField("param_length",None),
  36. ByteEnumField("opcode", None, {0x00 : "reset",
  37. 0x01 : "freq",
  38. 0x02 : "send",
  39. 0x03 : "recv"})]
  40.  
  41.  
  42. bind_layers(IRma_Hdr, IRma_Reset, opcode=0x00)
  43. bind_layers(IRma_Hdr, IRma_Freq, opcode=0x01)
  44. bind_layers(IRma_Hdr, IRma_Send, opcode=0x02)
  45. bind_layers(IRma_Hdr, IRma_Recv, opcode=0x03)
  46.  
  47. IRma_Hdr("\x00\x00\x00\x00\x00\x00\x00").show()
  48. print("================================================================")
  49. IRma_Hdr("\x01\x01\x00\x48").show()
  50. print("================================================================")
  51. IRma_Hdr("\x02\x01\x00\x48\x01\x00\x02\x41\x42\x43").show()
  52. print("================================================================")
  53. IRma_Hdr("\x02\x01\x00\x48\x01\x00\x02\x41\x42\x43").show()
  54. print("================================================================")
  55. 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