2025年pcap 格式(pcap格式文件)

pcap 格式(pcap格式文件)最近需要手动写一个 pcap 文件 网上查了一下资料 都是瞎 BB 互相抄袭 提供的方法都解决不了问题 所以就自己研究了一下 怎么可以按照抓包自动生成 pcap 的文件格式 自己手动填充一个文件 首先思路就是 先找一个抓包生成的正常的 pcap 文件 我们可以先看下里边都有啥 然后仿照内容 我写一个一模一样的文件 就可以了



最近需要手动写一个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文件并输出结果

编程小号
上一篇 2025-02-14 19:27
下一篇 2025-03-13 12:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/40405.html