Java之Pcap文件解析(一:Pcap格式分析)

article/2025/9/24 4:48:00

前言

需求

本系列文章主要完成以下功能:
1. 对Pcap文件进行解析,并从中提取TCP和UDP会话
2. 从TCP会话中提取出其数据负载信息

软件最终结果

[主界面]
rs_1
[File 菜单]
rs_2
[Help 的 About 菜单项,版权声明]
rs_10
[选择Pcap文件]
rs_3
[选择输出目录]
rs_4
[正在解析]
rs_5
[解析测试1:对pcap1.pcap进行解析]
rs_14
rs_6
rs_7
rs_8
rs_9
[解析测试2:对music.pcap进行解析,这是一首音乐]
rs_10
rs_11
rs_12
rs_13
我们拿其中的一个数据负载信息的txt文件改掉其后缀名,变为.mp3,看看是否能播放音乐
rs_15
rs_16

Pcap文件分析

1.Pcap文件结构说明

Pcap文件是wireshark配置脚本文件。可以用Wireshark软件打开。其内容的格式为“Pcap文件头 数据包头数据包数据包头数据包……”,其中Pcap 文件头占24个字节且唯一,即一个Pcap文件中只有一个Pcap文件头。Pcap 数据包头占16字节,其后面紧跟这数据包。数据包中又分为三层,即以太网数据帧(占据14个字节)、IP包头(一般为20字节)、TCP/UDP。
[图1 Pcap文件结构]:
01

[图2 Pcap文件详细结构图]:
02

2.TCP 包头

根据上方的结构图,可以知道 TCP 的包头结构,如下:

  • Source Port:源端口,16位。 Destination Port:目的端口,16位。 Sequence
  • Number:发送数据包中的第一个字节的序列号,32
  • Acknowledgment Number:确认序列号,32位。 Data
  • Offset:数据偏移,4位,该字段的值是TCP首部(包括选项)长度除以4。
  • Flag:标志位,标识TCP不同的控制消息,8 位
  • Window:接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。
  • Checksum:校验和,16位。
  • Urgent Pointers:紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序列号(Sequence Number字段的值)的偏移
    [TCP详细结构图]
    03

3.UDP 包头

UDP报头由4个域组成,其中每个域各占用2个字节,具体如下:

  • 源端口号
  • 目标端口号
  • 数据报长度:指包括报头和数据部分在内的总字节数
  • 校验值
    [UDP详细结构图]
    04

前往 bascker/javaworld 获取更多 Java 知识


http://chatgpt.dhexx.cn/article/6pyEJV5n.shtml

相关文章

wirehark数据分析与取证0051.pcap

什么是wireshark? wiresharekwireshark0051.pcap数据包数据包下载 请私信博主 wiresharek Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是检索取网络封包,并同时显示出最详细的网络封包数据。Wiresha…

C++ 缺少winpcap头文件 pcap.h 解决方案

最近在做课设的时候看到一个代码用到了winpcap的一个头文件 pcap.h ,为了能让代码跑起来也是找了很多资料,因此在这里汇总一下。 在官网下载开发包,我下载的是 WinPcap 4.1.2 Developer’s Pack 的版本,下载后解压缩,并…

PACP学习笔记一:使用 PCAP 编程

pcap代码流程 我们首先确定要嗅探哪个接口。在 Linux 中这可能是 eth0,在 BSD 中可能是 xl1,等等。我们可以在字符串中定义这个设备,或者我们可以让 pcap 为我们提供一个接口的名称来完成这项工作。初始化pcap。这其实是实际告诉pcap我们正在…

pcap(cap)包文件解析

https://blog.csdn.net/m0_37710388/article/details/89217421 pcap文件是常用的数据报存储格式,可以理解为就是一种文件格式,只不过里面的数据是按照特定格式存储的,所以我们想要解析里面的数据,也必须按照一定的格式。普通的记事…

pcap1

一、前言 本题方向为Misc——GFSJ0963,难度偏简单 来源地址:攻防世界(https://adworld.xctf.org.cn/challenges/list) 链接:https://pan.baidu.com/s/1VWT0rDY5P2qvOp_GMCZwkQ 提取码:lyyy 二、解题过程 思…

pcap文件解析

pcap文件解析 1. pcap简介: pcap文件是一种常用的数据报存储文件,这种文件可以保存我们所抓到的报文。它有这固定的存储格式,通过notepad中的插件Hex-Editor我们可以观察其中的16进制数据,从而来进行pcap文件的分析。 2. Pcap文…

pcap详解

一、pcap文件格式 一共三部分: ①Global Header:文件头(共24bytes),它定义了本文件的读取规则、最大储存长度限制等内容。 Magic:4Byte:标记文件开始,并用来识别文件自己和字节顺序。0xa1b2c3d…

pcap文件分析

pcap文件解析 pcap文件解析1、 .pcap文件本质2、wireshark查看pcap文件格式文件头数据包头Packet 3、snaplen参数个人理解:tcpdump官网定义:tcpdump源码: pcap文件解析 学了一点.pcap文件的东西,赶紧记录下 1、 .pcap文件本质 …

pcap包解析

pcap包解析 在接触激光雷达的时候,不可避免的第一步就是看硬件说明书以及调试厂商发的样例数据。一般情况下,厂商在存储硬件的数据包的时候,都是通过存储pcap包实现的,所以如何读取pcap包,并从中解析出真正有用的数据…

PCAP(packet capture)格式

PCAP(packet capture)格式 文章目录 PCAP(packet capture)格式定义pcap文件的格式文件头24 Bytes 各字段的含义:常用链路类型 实际pcap文件的文件头Packet Data 综述wireshark添加 lua plugins解析pcap脚本存放位置sud…

Pcap文件详解

Pcap文件详解 一、简介 pcap文件是常用的数据报存储格式,可以理解为就是一种文件格式,只不过里面的数据是按照特定格式存储的,所以我们想要解析里面的数据,也必须按照一定的格式。 普通的记事本打开pcap文件显示的是乱码&#…

Pcap 数据包捕获格式详解

Pcap 是 Packet Capture 的英文缩写,是一种行业标准的网络数据包捕获格式。如果你是网络开发人员,那么通常会使用 Wireshark、Tcpdump 或 WinDump 等网络分析器捕获 TCP/IP 数据包,而抓包后存盘的文件格式就是 .pcap 文件。 文件格式 Pcap …

MySQL - 多表查询与案例详解

目录 多表查询概述 内连接 外连接 1). 左外连接 2). 右外连接 自连接 联合查询 子查询 标量子查询 列子查询 行子查询 表子查询 多表查询练习 隐式内连接 显式内连接 去重distinct 左外连接 between ... and ... 三表查询 函数AVG 标量子查询 命名引用 多表查询概述 分…

MySQL数据库多表查询

MySQL数据库多表查询 前言 在之前的文章MySQL数据库之SQL入门中,我们讲到了四类SQL中的DQL(数据库查询语言,用于查询表中数据),但是我仅仅用DQL去查询一张表中数据,而在实际的应用中,经常是对多张数据库表进行查找。…

Oracle多表查询

什么是多表查询 多表查询:当查询的数据并不是来源一个表时,需要使用多表链接操作完成查询。根据不同表中的数据之间的关系查询相关联的数据 多表链接方式 内连接(inner join) 连接两个表,通过相等或不等判断链接列&…

(八)多表查询

目录 多表查询 笛卡尔积的错误 连接条件 表的别名 多表查询分类 自连接 和 非自连接 内连接 和 外连接 SQL92 SQL99 UNION的使用 UNION操作符 UNION ALL操作符 7种SQL JOINS的实现 QL99语法新特性 自然连接 USING连接 多表查询 多表查询,也称…

6、多表查询

第06章_多表查询 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了…

【MySQL】多表查询方法

目录 多表关系 多表查询之笛卡尔积 多表查询分类 连接查询 内连接 外连接 自连接 子查询 标量子查询 列子查询 行子查询 表子查询 联合查询 多表关系 一对多(多对一):员工与部门,一个部门可以对应多个员工一般在多的…

【MySQL】多表查询

首先,为了方便说明问题,创建两个表emp(雇员信息)和dept(雇员部门信息),其数据如下: 在之前的博客中,我们分享了单表查询的方法,但是在实际应用中&#xff…

mysql 多表查询

一、概念 多表查询也叫关联查询, 其就是指 一次性查询多张表,并且将每张表得到的数据联系作为查询结果 二、关键字 当我们需要一次查询两张表时,如果使用: select * from employees,departmaents; 这样的话会出现笛卡尔积错误 (笛卡尔积错…