前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 黑帽编程 4.2 Sniffer之数据本地存储和加载

Python 黑帽编程 4.2 Sniffer之数据本地存储和加载

作者头像
用户1631416
发布2018-04-12 13:30:44
8660
发布2018-04-12 13:30:44
举报
文章被收录于专栏:玄魂工作室玄魂工作室

在上一节,我们完成了编写一个简易的Sniffer的第一步——数据捕获。 很多时候,我们需要将捕获的数据先保存到磁盘上,之后再使用工具或者自己编写代码来进行详细分析。 本节我们在上一节的基础上来讲解保存捕获数据的方式,当然使用tcpdump或者WireShark都可以 很方便的存储数据包。

4.2.1 使用pcapy保存和读取数据

前文我们使用 pcapy的open_live方法,可以获取pcapy的一个实例对象,通过该对象的dump_open 方法可以获取一个dump对象,通过dump对象可以保存数据包到本地磁盘。示例如下:

上面的代码中,我们首先通过dump_open方法获取dumper对象,随后在循环捕获数据的时候 调用save_packet方法,该方法中调用dump方法将数据保存到本地。运行结果如下:

下面我们看看如何从磁盘读取pcap文件。

在上面的带码中,我们使用pcapy的open_offline方法从本地打开一个pcap文件,之后就可以 循环处理每一个数据包了。运行结果如下:

4.2.2 使用Scapy保存和读取数据

上一节我们讲了Scapy的基础用法,Scapy支持将捕获的数据保存成多种数据格式,比如hex,base64等, 利用Scapy来保存捕获的数据到pcap文件,有两种方式,第一种为使用PcapWriter模块,例如:

初始化PcapWriter对象需要传入三个参数,要保存的文件名、是否追加数据,是否同步顺序添加。 之后在packetHandler方法中,调用write方法将数据包写入文件。运行结果如下:

另外一种方式为配置sniff方法的offline参数。例如:

读取pcap文件可以使用scapy.all 模块中的rdpcap方法。例如:

如上,rdpcap方法接收一个文件路径参数,返回所有的数据包。运行结果如下:

4.2.3 小结

读取和保存数据的方法很多,这里结合本教程实例,只介绍这两种较为简单的方法。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.2.1 使用pcapy保存和读取数据
  • 4.2.2 使用Scapy保存和读取数据
  • 4.2.3 小结
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档