wireshark抓包工具实战

news2024/12/23 5:49:50

目录

  • 参考
  • 一、关于Wireshark
  • 二、下载及安装
  • 三、基本概念
    • 每层类型
    • Ethernet以太网层(MAC地址)
      • 协议
      • 目的地址
    • Internet网络层
      • 协议
      • 报文
    • Transmission传输层
      • 协议
  • 三、tcp抓包
    • 三次握手连接
    • 四次握手断开
    • http协议
      • 请求协议包
      • 应答协议包
      • 文件类型

参考

网络抓包工具Wireshark下载安装&使用详细教程

一、关于Wireshark

Wireshark(前身 Ethereal)是一个网络包分析工具。该工具主要是用来捕获网络数据包,并自动解析数据包,为用户显示数据包的详细信息,供用户对数据包进行分析。

它可以运行在 Windows 和 Linux 操作系统上。可以使用该工具捕获并分析各类协议数据包,本文将讲解该工具的安装及基本使用方法。

二、下载及安装

Kali Linux 系统自带 Wireshark 工具,而 Windows 系统中默认没有安装该工具。因此,本节讲解如何在 Windows 系统中安装 Wireshark 工具。
官网:https://www.wireshark.org/

下载Wireshark-win64-4.0.6.exe

三、基本概念

每层类型

在这里插入图片描述
Frame:是物理层
Ethernet:以太网层
Internet:网络层
Transmission:是传输层

Ethernet以太网层(MAC地址)

协议

以太网层(MAC地址)包含目的地址(6字节)、源地址(6字节)、地址类型(2个字节)在这里插入图片描述

目的地址

我们目的ip是192.168.0.44,对应的mac地址是c8:d3:ff:74:7e:d1

我们在服务端通过ifconfig查询如下:
在这里插入图片描述

抓包如下:
在这里插入图片描述

Internet网络层

一个20个字节,

协议

在这里插入图片描述

报文

通过数据发现,网络传输都是大端

# 比如ip是
192.168.0.88
# 对应字节是
c0 a8 00 58
# 16进制转10进制
192 168 0 88

在这里插入图片描述

Transmission传输层

协议

在这里插入图片描述

三、tcp抓包

ip.addr == 192.168.0.44 and tcp.port == 8000

三次握手连接

在这里插入图片描述

四次握手断开

在这里插入图片描述
客户端发送FIN以及上次消息的ACK
其中服务器发送FIN和回复ACK合并发送,如果想要分开发送,可以在close(cfd)之前执行一次sleep(1)延时

http协议

ip.addr == 192.168.0.44 and tcp.port == 8000 and http

如下一共是两个请求,两个回复200 ok
在这里插入图片描述

请求协议包

在这里插入图片描述

请求行:GET /demo.html HTTP/1.1\r\n
空行:\r\n
数据:

代码解析

char method[256] = {0};
char path[256] = {0};
char protocol[256] = {0};
sscanf(buf, "%[^ ] %[^ ] %[^ \r\n]", method,path,protocol);

应答协议包

在这里插入图片描述

状态行:HTTP/1.1 200 OK\r\n
内容类型:
内容长度:
空行:\r\n
数据:

文件类型

if (strcmp(dot,".au") == 0)
	return "audio/basic";
if (strcmp( dot,".wav") == 0)
	return "audio/wav";
if (strcmp(dot,".avi") == 0)
	return "video/x-msvideo";
if (strcmp(dot,".mov") == 0 || strcmp(dot, ".qt") == 0)
	return "video/quicktime";
if (strcmp(dot,".mpeg") == 0 || strcmp(dot, ".mpe") == 0)
	return "video/mpeg";
if (strcmp(dot,".vrml") ==   srcmp(dot, ".wrl") ==0)
	return "model/vrml";
if (strcmp(dot,".midi")==0 strcmp(dot,".mid") == 0)
	return "audio/midi".
if (strcmp(dot,".mp3") ==0)
	return "audio/mpeg";
if (strcmp(dot,".ogg") == 0)
	return "application/ogg";
if (strcmp(dot,".pac") == 0)
	return "application/x-ns-proxy-autoconfig";
return "text/plain; charset=utf-8";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/713794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker容器技术 详解!!!

目录 一、概述 (一)docker介绍 (二)为什么使用Docker (三)docker优势 1、运行环境的一致性: 2、更快速地启动部署: 3、更好的隔离性: 4、弹性伸缩、快速扩展&…

FreeRTOS_任务切换

目录 1. RendSV 异常 2. FreeRTOS 任务切换场合 2.1 执行系统调用 2.2 系统滴答定时器(SysTick)中断 3. PendSV 中断服务函数 4. 查找下一个要运行的任务 4.1 通用方法 4.2 硬件方法 5. FreeRTOS 的时间片调度 6. 时间片调度实验 6.1 实验程序…

Pushgetway安装和使用

1、Pushgetway安装和使用 1.1 Pushgateway是什么 pushgateway 是另一种数据采集的方式,采用被动推送来获取监控数据的prometheus插件,它可以单独运行在 任何节点上,并不一定要运行在被监控的客户端。 首先通过用户自定义编写的脚本把需要监…

ClickHouse浅谈

文章目录 前置知识什么是OLAP与OLTP行式数据库与列式数据库什么是行式和列式?行式和列式的优缺点 ClickHouse什么是clickhouse?clickhouse的使用架构clickhouse的优点和缺点clickhouse的功能特性计算层服务层向量化引擎 clickhouse的使用案例与其他OLAP相…

如何打开远程电脑的任务管理器?

关于任务管理器 任务管理器可以显示远程计算机后台运行的进程和应用程序及其使用状态。通过任务管理器提供的信息,您可以了解是否有程序或进程占用过多的CPU和内存,然后您可以选择结束应用程序或结束进程以提高远程电脑的运行速度。 如何访问远程电脑上…

SD 系统自动计算的税额 有差异

SD 系统自动计算的税额 有差异 1,002,000.00 * 13% 115,274.34 产生了0.03的价格舍入差异 (保存前是正确的,保存后产生差异) 解决办法:取消条件类型组条件即可

辅助行走机器人开发 —— 下位机控制

文章目录 总体设计硬件选型控制模式程序流程1 初始化2 FreeRTOSBalance_taskMPU6050_taskShow_taskLed_taskPs2_taskData_task 3 中断串口中断 辅助行走机器人开发项目总结 总体设计 项目分为语音模式、导航模式和手动模式。 语音模式、导航模式为ROS下发控制指令&#xff1…

java.lang.UnsupportedOperationException 异常处理

通过 json 字符串转化成的 asList &#xff0c;对该 List 进行 add 时&#xff0c;抛出异常 java.lang.UnsupportedOperationException 处理方案 List string new ArrayList<>(asList);

企业邮箱的多重用途:了解企业邮箱在工作中的重要作用

邮箱已经成为商务交流不可或缺的一部分。在企业界&#xff0c;邮箱被用于各种各样的任务&#xff0c;从内部沟通到客户服务。虽然许多组织已经转向更现代的通信方式&#xff0c;如即时消息&#xff0c;企业邮箱仍然是任何成功的商业运作的重要组成部分。以下是公司邮箱的一些主…

【小程序上传报错】message:Error: 系统错误,错误码:80058,desc of scope.userLocation is empty

根据错误信息 “Error: 系统错误&#xff0c;错误码&#xff1a;80058,desc of scope.userLocation is empty”&#xff0c;这是一个系统错误&#xff0c;错误码为80058。错误信息中提到了 scope.userLocation 的描述为空。 可能是因为在小程序中使用了 scope.userLocation 权…

5.4 服务器编程基本框架和两种高效的事件处理模式

5.4 服务器编程基本框架和两种高效的事件处理模式 服务器编程基本框架 虽然服务器种类繁多&#xff0c;但其基本框架都一样&#xff0c;不同之处在于逻辑处理&#xff08;比如开发Web服务器项目&#xff0c;浏览器客户端向服务端发送http请求&#xff0c;服务器对请求报文进行…

高压线路零序电流方向保护程序逻辑原理(三)

四、零序保护故障处理程序原理 零序保护逻辑程序可分为三个模块&#xff1a;快速动作部分、全相循环和非全相循环模块。这是根据零序保护的特点而设计的。任何一种高压线路保护都要求快速处理I段范围内的严重故障&#xff0c;所以零序保护与距离保护一样配有快速动作部分程序模…

分不清楚蝴蝶的种类,让AI来告诉你,基于YOLOv5开发构建轻量级蝴蝶细粒度目标检测识别系统

小时候有时间就很喜欢趁着下课放学的时间去抓蝴蝶玩&#xff0c;五彩多样的蝴蝶让人应接不暇&#xff0c;现在早就过了那个天真玩耍的年纪了&#xff0c;如今看到蝴蝶的第一反应就是这是什么蝴蝶&#xff0c;没有专业的知识支撑很难识别出来具体的种类&#xff0c;本文的主要目…

电脑bios使用的uefi启动,系统盘使用的mbr格式,为什么安装完系统无法进入?

概要 在电脑的安装系统过程中&#xff0c;我们会遇到一些问题&#xff0c;比如说使用UEFI启动但是磁盘分区使用MBR格式&#xff0c;导致系统安装完成之后无法引导。这是因为UEFI启动只支持GPT格式的磁盘分区。 在本文中&#xff0c;我们将探讨如何将磁盘转换成GPT格式&#xf…

一种新的程序在线升级的实现(学习)

介绍一种新的程序在线升级方法&#xff0c;以及程序在线升级在嵌入式系统中的应用和实现。设计将从系统原理和实现介绍该程序在线升级方法。利用串口作为通讯方式&#xff0c;自定义通讯协议。 上位机将升级文件传给下位机&#xff0c;下位机将数据解析后存储在内部Flash中。解…

用矩阵处理3D变换

Rotation 也可以把三个旋转矩阵合并为一个综合旋转矩阵: 平移和旋转结合 有时我们想要将平移和旋转结合起来&#xff0c;这样我们就可以在一次操作中同时进行两者&#xff0c;但是我们不能用3x3矩阵来做3D平移&#xff0c;只能用4x4矩阵来做&#xff0c;如下所定义&#xff1a…

尚硅谷Docker实战教程-笔记07【Docker常规安装简介】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷Docker实战教程&#xff08;docker教程天花板&#xff09;_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【理念简介、官网介绍、平台入门图解、平台架构图解】尚硅谷Docker实战教程-笔…

嵌入式基础知识-总线带宽

带宽&#xff0c;最容易想到的是上网用的网络带宽&#xff0c;在嵌入式软件开发中&#xff0c;也会用到带宽&#xff0c;这个带宽的含义就不一样了&#xff0c;区别是什么&#xff1f;本篇就来介绍一下&#xff0c;并通过一些例子来进行带宽的计算。 先来简单看下不同领域的带…

交叉熵和softmax

交叉熵cross-entropy loss 最大化似然函数&#xff0c;最小化负的似然对数函数 最终的交叉熵损失函数&#xff0c;最小化该loss&#xff1a; nn.BCELoss def criterion(yhat, y):out -1 * torch.mean(y*torch.log(yhat) (1-y) * torch.log(1-yhat))return outsoftmax

51单片机一氧化碳烟雾报警器mq2MQ7ADC0832采集

实践制作DIY- GC0152--- 一氧化碳烟雾报警器 基于51单片机设计------- 一氧化碳烟雾报警器 二、功能介绍&#xff1a; STC89C52单片机lcd1602adc0832mq2烟雾传感器mq7烟雾传感器蜂鸣器2个按键设定烟雾报警阈值 2个按键设定一氧化碳报警阈值 1.通过ADC0832采集MQ2烟雾输出的电…