Scapy 是一个强大的交互式数据包处理程序(使用python编写)。它能够伪造或者解码大量的网络协议数据包,还能够发送、捕捉、匹配请求和回复包等等。关于网络数据包的解析,其实wireshark这款经典的工具已经能满足大部分工作人员的需求,但是涉及到一些复杂的、自定义型的数据包解析,仅用wireshark就有点不够看了。这次我使用的是一个Python的库Scapy,对于解析pcap文件它算是一个冷门库,网络上关于它的资料实在少的可怜,所以我只能撸起袖子自己开搞,最终一步步用它解析pcap文件。
安装Scapy
关于Scapy的安装参考如下:
pip3 install scapy-python3
yum install libffi-devel
pip3 install cryptography
ln -s /opt/python/bin/scapy /usr/bin/scapy
就可以完成安装了,之后可以在命令行中输入Scapy来进入交互式命令来检验安装是否成功。但是需要注意的,我是在linux的python3的环境下成功安装的,2.7以及window的安装会麻烦很多(亲身体验过),所以还是建议使用linux和python3。安装成功以后,在python文件中使用
from scapy.all import *
就可以导入并使用scapy库了
解析pcap文件
读取pcap文件
通过阅读使用手册,我找到了读取pcap文件使用的语句:
rdpcap("xxx.pcap")
这个语句可以读取一个pcap文件,并返回一个数据类型,我们来实验一下: