使用Python scapy分析pcap文件的一些记录

2019-02-28 遇到的一点小问题

scapy

安装方法网上很多,懒得贴了。就是电脑上Python环境太多,一开始安装插件的环境不是现在当前使用的这个,后面到Python Interpreter确认了一下,重新安装了一下。
然后就是在win10系统上使用时遇到问题:ImportError: cannot import name 'NPCAP_PATH' from 'scapy.arch.pcapdnet' (C:\ProgramData\Anaconda3\lib\site-packages\scapy\arch\pcapdnet.py)。网上搜了下,已经有人提出,官方也解决了。不过现在还没办法直接pip install scapy或者Python Interpreter里安装最新版本,所以需要下载源码替换目录C:\ProgramData\Anaconda3\Lib\site-packages\scapy里面的全部文件或者pip时先git文件下来。
试着打印数据,可以了。

packets = rdpcap("/Users/wannoo/Downloads/test.pcap")#mac路径
for data in packets:
    print(data.payload.name)#打印出'IP','IPV6','ARP'或者其他
#这个方法点进去看里面是这样的。
with PcapReader(filename) as fdesc:
        return fdesc.read_all(count=count)
#所以我们也可以这样:
with PcapReader('test.pcap') as packets:  # 文件在同一个目录
    for data in packets:
        if 'TCP' not in data:
            continue
        print(data.time, "wannoo", data['TCP'].options[2][1][0])#打印出Timestamp信息

测试打印前23条看看内容。

packets = rdpcap("F:/wannoo/test.pcap", 23)#windows这样不用考虑转义字符
#或者是这种打开方式:
with PcapReader('F:\\wannoo\\test.pcap') as packets: #Windows这样需要考虑转义字符
    for data in packets.read_all(23):

type(data) 类型:
repr(data) 内容:>>
然后还能获取其他需要的参数,比如使用data['TCP'].flags.value判断24为PA(PSH、ACK),16为A(ACK);或者在data.payload.name=='IP'时通过data.payload.proto数值判断17=='UDP',其他TCP还能根据端口等信息判断出SSHSMB2或其他。

2019-03-07 遇到的一点小问题
在处理抓包数据时,发现某次data['TCP'].seq得到的seq数值比上一条小,但是Wireshark上展示的处理后数据并没有这种情况,一番查找后才发现原来scapy处理后的该类型存储为int,然后出现了大于2的32次方的情况,就重新从0开始展示了。所以在处理展示seqack数据时,减去第一条的值,如果<0还要在+=2**32

Debug
Java用久了,声明变量都会声明类型,遇到不熟悉的都习惯直接Ctrl进类里面查找方法,但Python不需要声明类型,有时候得到的数据也不知道什么类型,当然了知道了也看不懂里面都有什么方法可以使用。。。所有Python开发时遇到陌生类建议使用Debug来查看。不然每次遇到新的类,都要使用print(type(变量名))查看类型,print(help(变量名))print(help(scapy.fields.FlagValue))查看方法,效率太低了。

使用Python scapy分析pcap文件的一些记录_第1张图片
Debug

Vim Emulator

安装PyCharm时,勾选了ideaVim选项,所以一打开PyCharm时没法像往常那样进行复制黏贴删除等编辑操作。解决办法就是取消勾选Tools - Vim Emulator,或者直接在Settings - Plugins,ideaVim插件,右键选择卸载。

使用Python scapy分析pcap文件的一些记录_第2张图片
Tools - Vim Emulator

使用Python scapy分析pcap文件的一些记录_第3张图片
Settings - Plugins

你可能感兴趣的:(使用Python scapy分析pcap文件的一些记录)