如何使用Python从hexdump中提取数据包信息?

时间:2018-02-02 07:29:07

标签: python scapy pcap hexdump wireshark-dissector

我正在开发一个网络项目,我有数据包的hexdump,我需要剖析该hexdump数据包以显示所有数据包信息。

示例:数据包信息字段 -

source address
destination address
encapsulation type
frame number
frame length
FCS
data
epoch time

我们不应该使用文件作为输入和输出,因为它会增加内存利用率并可能导致服务器崩溃。

我尝试使用下面的代码,但这在我的情况下不起作用:

# imports scapy Utility

from scapy.all import *
from scapy.utils import *

# variable to store hexdump

hexdump = '0000  49 47 87 95 4a 30 9e 9c f7 09 70 7f....'

# Initialize a 802.11 structure from raw bytes

packet = Dot11(bytearray.fromhex(hexdump))

#scapy function to view the info

packet.summary()
packet.show()

由于我是这项技术的新手,是否有任何建议可以实现这一目标?我可能缺乏一些正确的方向来解决这个问题。

1 个答案:

答案 0 :(得分:2)

您的hexdump值似乎包含索引。删除它:

  • On Scapy> = 2.4rc:

    data = hex_bytes('49 47 87 95 4a 30 9e 9c f7 09 70 7f [...]'.replace(' ', ''))
    
  • 或者使用Python 2和Scapy< = 2.3.3:

    data = '49 47 87 95 4a 30 9e 9c f7 09 70 7f [...]'.replace(' ', '').decode('hex')
    

然后:

Dot11(data)