基于Python实现的抓包分析软件

基于Python实现的抓包分析软件 一,简介 这是一个学习模仿WireShark的抓包软件,可以的功能有:侦听,解析,构造数据包等,其中还包括扩展功能:流量监测和攻击检测(Land攻击

本文包含相关资料包-----> 点击直达获取<-------

基于Python实现的抓包分析软件

一、简介

这是一个学习模仿WireShark的抓包软件。可以的功能有:侦听、解析、构造数据包等。其中还包括扩展功能:流量监测和攻击检测(Land攻击,Ping of Death)。软件目前支持解析:IP、IPv6、ARP、TCP、UDP、ICMP、ICMPv6、SSDP、HTTP、TLS。

二、主要功能

  • 侦听指定网卡或所有网卡,抓取流经网卡的数据包

  • 解析捕获的数据包每层的每个字段,查看数据包的详细内容

  • 可通过不同的需求设置了BPF过滤器,获取指定地址、端口或协议等相关条件的报文

  • 针对应用进行流量监测,监测结果实时在流量图显示,并可设置流量预警线,当流量超过预警线时自动报警

  • 提供了以饼状图的形式统计ARP、TCP、UDP、ICMP报文,以柱状图的形式统计IPv4、IPv6报文

  • 可将抓取到的数据包另存为pcap文件,并能通过打开一个pcap文件对其中的数据包进行解析

  • 可逐层逐字段构造数据包,实现自定义数据包发送

三、主要模块

数据报文采集模块 :完成网络接口数据的捕获、解析,可以根据用户定义条件组合来进行捕获,如只监视采用TCP或UDP协议的数据包,也可以监视用户希望关注的相关IP地址的数据包,同时完成数据封包日志记录,提高了系统的灵活性。此外,对IP类型、ARP、TCP、UDP、ICMP的数量进行统计。

应用流量监测模块 :获取当前正在运行的应用进程,用户可选择一个应用进行流量监测,获取应用中流量信息,同时对一些常见的入侵攻击特征进行判断,如根据源目的地址是否相同判断Land攻击、IP头部长度是否过长判断ping拒绝服务攻击,并发出预警。

报文伪造模块 :可以自行构造Ether、IP、TCP、UDP、ICMP、ARP报文,并选择send()、sendp()、sr()、srl()、srloop()五种方式发送报文以实现简单攻击或对TCP/IP进行调试。

界面显示模块 :设计系统主窗口即数据报文采集界面、应用流量监测界面、报文伪造界面。并完成报文统计图的显示,流量图的显示。

四、源代码结构

  • img 存放程序中使用的背景和图标。

  • capture_core.py 抓包程序的后台文件,主要用来生成数据包的摘要信息、分析数据包的结构、程序状态处理、下载速度和上传速度的更新等。

  • flow_monitor.py 流量监控程序的后台服务代码,实时更新速度、应用流量的过滤及摘要信息的生成、更新应用的网络连接等。

  • forged_packet 用于构造数据包并发送,可自定义数据包的每个字段,实现网络攻击或网络欺骗等功能。

  • main_ui.py 抓包程序的GUI代码,包括了快捷键的绑定以及可自定义字体和背景图片、已抓到数据包的摘要信息的展示、显示某个数据包的详细信息和十六进制数据等功能。

  • main.py 程序的入口。

  • monitor_system.py 流量监控的GUI代码,用于查看网络连接速度等。

  • tools.py 工具代码,用于获取网卡的NIC、格式的转换、网络连接速度的获取。

  • data.json 用于存放程序的配置信息。

五、环境依赖

  • Python 3.6

  • Scapy 2.4

Linux & Windows

```sh

pip install psutil scapy matplotlib pyqt5

```

在Windows下,还需要

```sh

pip install wmi pywin32

```

六、使用方法

进入项目目录

```sh

cd WireWhale

python main.py

```

七、部分功能介绍

  • 主界面主要包括5个部分:
  • 菜单栏
    • 文件:文件保存、打开,软件退出
    • 编辑:可自行设置主窗体字体
    • 捕获:捕获数据包的流程
    • 分析:两大拓展功能,应用流量监测和伪造数据包
    • 统计:报文统计
    • 帮助:功能介绍及版权声明
  • 工具栏
    • 界面初始时,根据程序运行状态转移图只有开始键可以响应
    • 设置了标志位:start_flag、pause_flag、stop_flag、save_flag,用于对程序中一些函数的使用添加限制。开始、暂停、停止、重新开始四个按钮全部按照下图逻辑设置在什么情况下可响应
    • 下面为部分状态截图
    • 起始状态
    • 运行状态
    • 暂停状态
    • 停止状态
  • 过滤器以及网卡选择
    • 页面初始化时网卡选择下拉框获取网卡信息进行显示,如下图所示,默认全选
  • 报文显示
    • 根据报文类型显示不同颜色,以进行明显的区别
    • 报文解析以树状结构显示,层次结构清晰明了
    • 抓包简略信息显示框定时滑到最底部
  • 状态栏(显示当前网卡、实时收发包速度、上传下载速度)

数据统计模块:绘制图使用python下最流行的数据处理框架Matplotlib绘制要求的统计图。

八、软件运行时部分截图

8.1 主程序

8.2 数据包伪造

8.3 流量监控

参考文献

  • 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航)
  • 印刷公司内容管理平台的设计与实现(吉林大学·郎彩虹)
  • 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语)
  • 基于Python的非结构化数据检索系统的设计与实现(南京邮电大学·董海兰)
  • 网站运营分析系统设计与实现(电子科技大学·蒋黎)
  • 制造业数据交互式分析平台的设计与实现(西安电子科技大学·杨妍)
  • 项目管理中测试管理软件系统设计(电子科技大学·金亚敏)
  • 网站运营分析系统设计与实现(电子科技大学·蒋黎)
  • 金融信息实时发布系统的设计与实现(东北大学·伦健)
  • 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航)
  • 基于redis的分布式自动化爬虫的设计与实现(华中科技大学·曾胜)
  • 软件外包及管理平台设计与实现(电子科技大学·宋怀亮)
  • 项目管理中测试管理软件系统设计(电子科技大学·金亚敏)
  • 金融信息实时发布系统的设计与实现(东北大学·伦健)
  • 基于Linux平台的网络入侵检测系统的设计与实现(华中科技大学·汪道周)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设工坊 ,原文地址:https://m.bishedaima.com/yuanma/35567.html

相关推荐

  • 基于ssm和mysql实现的毕业选题管理系统

    基于ssm和mysql实现的毕业选题管理系统 1,项目介绍 1,1 背景分析 计算机技术高度发达的今天,利用信息技术对大量复杂的信息进行有效的管理成为一种普遍而实用的手段
    2024年05月14日
    2 1 2
  • 基于JAVA FX实现的酒店预订系统网站

    基于JAVA FX实现的酒店预订系统网站 1 产品概述 参考酒店预订系统用例文档和酒店预订系统软件需求规格说明文档中队产品的概括描述,酒店预订系统主要是应用于网上预定远程酒店订单的在线系统
    2024年05月14日
    3 1 2
  • 基于 Python 制作的迷宫小游戏

    基于 Python 制作的迷宫小游戏 导语 大家假日愉快呀~不想出门看人山人海,所以干脆过来更波公众号好了~ 有一个月没更小游戏系列的文章了
    2024年05月14日
    2 1 1
  • 基于JAVA EE和SQL Server 2005的停车场管理系统

    基于JAVA EE和SQL Server 2005的停车场管理系统 摘 要 如今,我国现代化发展迅速,人口比例急剧上升,在一些大型的商场,显得就格外拥挤
    2024年05月14日
    2 1 1
  • 基于SSM开源框架实现客户管理系统

    SSM-CRM 项目介绍:使用SSM开源框架实现客户管理系统的小项目 欢迎右上角点个Star或Fork 一,系统开发环境: 操作系统:Windows Web服务器:Tomcat8
    2024年05月14日
    12 1 4
  • 基于SpringBoot框架的酒店管理系统

    这是一份采用Java语言编写的Hotel Management System的源代码,基于流行的SpringBoot框架构建,项目集成了一流的Vue技术,开发工具为Idea或Eclipse
    2024年05月23日
    4 1 1
  • 基于JSP实现的医院住院管理系统

    基于JSP实现的医院住院管理系统 一,课程设计介绍 1,1 目的 软件综合课程设计是学生在学习完数据库系统概论后必须进行的一项重要的实践环节,通过该课程设计
    2024年05月14日
    18 1 3
  • 基于springboot+redis+mysql实现的在线考试系统管理系统

    基于springboot+redis+mysql实现的在线考试系统管理系统 1,项目简介 1,1 背景分析 目前,许多高校绝大多数课程还采用考教统一的模式来完成教学过程
    2024年05月14日
    2 1 1
  • 基于Springboot和Freemark实现的毕业设计选题系统

    基于Springboot和Freemark实现的毕业设计选题系统 摘 要 伴随着我国高校招生发展趋势的不断扩大,各大高校教学方式的难题和工作量不断增加
    2024年05月14日
    3 1 3
  • 基于Python实现手写体识别

    手写体识别实现 说明:这里选出三份采用了不同的算法实现手写体识别的说明文档,更多信息可以通过下载或克隆代码压缩包查看文档内容, 参考文献 英语应用文写作在线学习系统模式研究(燕山大学·李鑫) 基于SSH的手机网站的设计与实现(东北大学 ·陶志刚) 基于知识图谱的开放空间知识采集系统(中南民族大学·马荣香) 基于深度学习的软件实体识别方法(云南师范大学·孙超) 中学python课程知识图谱构建及应用研究(华中师范大学·黄健) 基于CNN的票据手写数字识别系统设计与实现(哈尔滨工程大学·冯涛) 手写中文文本行识别系统的设计与实现(华中科技大学·吴为治) 基于文本识别的手写汉字识别平台的设计与实现(中国科学院大学(中国科学院沈阳计算技术研究所)·董春生) 基于Spring Boot的多用户博客系统的设计研究(青海师范大学·罗涛) 基于Spring Boot的多用户博客系统的设计研究(青海师范大学·罗涛) 基于文字特征增强的手写税务票据识别系统(大连海事大学·高帅) 基于知识图谱的实体链接算法设计与实现(华中科技大学·刘译键) 轨道交通行业知识体系构建系统的研究(北京邮电大学·王毅飞) 作文句子错误识别系统的设计与实现(北京邮电大学·高甲伟) 基于知识图谱的开放空间知识采集系统(中南民族大学·马荣香)
    2024年05月14日
    2 1 1

发表回复

登录后才能评论