pcap文件的结构和格式说明以及内容解析

ops/2024/9/24 15:17:12/

最近需要手动写一个pcap文件,网上查了一下资料,都是瞎BB,互相抄袭,提供的方法都解决不了问题,所以就自己研究了一下,怎么可以按照抓包自动生成pcap的文件格式,自己手动填充一个文件。

首先思路就是,先找一个抓包生成的正常的pcap文件,我们可以先看下里边都有啥,然后仿照内容,我写一个一模一样的文件,就可以了,先看个正常的,
在这里插入图片描述
找个16进制编辑器(如果需要编辑器,可以参考:https://blog.csdn.net/weixin_42209881/article/details/137146130),打开随便一个正常的pcap文件就可以,注意我标记的地方,这些地方都是有讲究的,

  • 0xa1b2c3d4用来表示按照大端位读取,0xd4c3b2a1表示按照小端位读取。(如果不清楚大小端位什么意思,请参考我的另一篇博客https://blog.csdn.net/weixin_42209881/article/details/132313717)

  • 0×02 00:当前文件主要的版本号,默认就行

  • 0×04 00:当前文件次要的版本号,默认就行

  • 8位0这部分,前边四位表示时区,单位秒,后边四位表示时间戳的具体时间,一般都是0

  • 0x00 00 04 00:表示最大的存储长度,这个文件格式是小端位,所以顺序是反的。默认设置为ff ff就够用了。

  • 0x01 00 00 00:表示链路的类型,这个读出来就是1,表示以太网,这个数字要根据自己的业务去查,网上都可以查到,我提供一部分,像我自己用的FR-GPRS链路类型,这个值就是107。
    在这里插入图片描述

  • 再往后的8位表示,捕获数据包的时间,如果是手动生成的话,那就需要自己确定一个值了,
    Timestamp(4B): 时间戳高位,精确到seconds,占4位。捕获数据包的时间一般是根据这个值
    Timestamp(4B): 时间戳低位,能够精确到microseconds,占4位
    Caplen(4B): 当前数据区的长度,即抓取到的数据帧长度,由此可以得到下一个数据帧的位置。
    Len(4B): 离线数据长度,网路中实际数据帧的长度,一般不大于Caplen,多数情况下和Caplen值一样

  • 0x60 00 00 00 : 表示数据区的长度,这个值就是96.

  • 下来的这个0x60 00 00 00:表示离线数据区长度,一般都是和数据区长度一样长,这里也是96.

    这个96,就是表示接下来的96位都是数据内容,图中我没标记出来,
    在这里插入图片描述
    然后就是下一条消息,一直循环,也是8位时间戳,再加8位的数据长度,然后是数据,一直循环。
    在这里插入图片描述
    蓝色的就是第二条消息,长度就是 0x54,就是数84位,然后就又是下一条。

这样就清楚了一个正常的pcap文件里边格式都是什么样的,下来就可以试着用代码写一个这样格式的文件就行,
代码我单独放在这篇文章中,是用Java写的,C#代码其实也可以,我就不提供了,都是一个道理,
用代码模拟抓包手动生成一个pcap文件
Java自动调用wireshark解析pcap文件并输出结果


http://www.ppmy.cn/ops/2279.html

相关文章

C语言指针进阶:数组与指针的联系

目录 1. 数组名的本质2. 使用指针访问数组3. 一维数组传参的本质4. 二级指针5. 指针数组5.1 指针数组模拟二维数组 正文开始。 1. 数组名的本质 数组名代表着这个数组中第一个元素的地址 例如: int arr[4] { 1,2,3,4 }; int *p1 &arr[0]; int *p2 arr;上述…

windows下vscode调试虚拟机linux c++工程的三种方法

vscode去远程调试方法有很多种,不同的插件对应了不同的调试方法,比如: 1.C/C插件进行GDB调试(编写launch.json文件) 2.C/C Runner插件 3.CMake Tools插件(只针对CMake工程,需要搭配C/C插件一起使用,但无…

在Spring Boot实战中碰到的拦截器与过滤器是什么?

在Spring Boot实战中,拦截器(Interceptors)和过滤器(Filters)是两个常用的概念,它们用于在应用程序中实现一些通用的逻辑,如日志记录、权限验证、请求参数处理等。虽然它们都可以用于对请求进行…

计算机网络(王道考研)笔记个人整理——第三章

第三章:链路层 数据链路层:结点,链路 结点:主机、路由器 链路:网络中俩结点之间的物理通道,链路的传输介质有双绞线、光纤和微波,分为有线链路、无线链路。 数据链路:俩个结点之间的…

中图分类法的正则表达式参考

文章目录 1. 中图分类法2. 正则表达式3. 使用方法4. 参考 1. 中图分类法 中图分类法,全称为《中国图书馆图书分类法》,简称《中图法》,是中国国内普遍采用的一种图书分类体系,用于组织和管理图书馆藏书,方便读者查找和…

网络工程师---第五天

综合布线七大子系统: 1、工作区子系统: 工作区子系统由终端设备连接到信息插座的连线(或软线)组成,它包括装配软线、适配器和连接所需的扩展软线,并在终端设备和I/O之间搭桥。在进行终端设备和I/O连接时,可能需要某种传…

解决系统报错:此应用无法在你的电脑上运行

在开发过程中不知从何时起,使用电脑时过程中不断的都显示“此应用无法在你的电脑上运行”,让人非常恶心,一直以为是系统误操作了什么或误安了软件 百度的答案就是让你找到报错的软件用兼容模式运行。而我连报错的软件都不知道,让人…

内存分配器

内存分配器 文章目录 内存分配器项目介绍内存池介绍池化技术内存池内存池主要解决的问题malloc 实现定长内存分配器怎么控制定长通过系统调用申请空间定长内存分配器中应该包含哪些成员变量内存池如何管理释放的对象内存分配器如何为我们申请对象定长内存池整体代码性能对比 高…