首页/网络/抓包与流量分析速查/文本构造包文件(text2pcap)
抓包工具链61 条

文本构造包文件(text2pcap)

把十六进制转储或协议文本转成 pcap:自建测试样本、把日志里的报文复原为可分析文件;-i 指定 IP 头便于直接成帧。

text2pcap 能做什么

text2pcap 把文本形式的报文内容转成真正的 pcap 文件:文本可以是十六进制转储,也可以是十六进制加 ASCII 对照的常见转储格式。它最实用的场景有两个——把只在日志或文档里留下的报文复原成能用 Wireshark 打开的文件,以及手工构造边界样本做回归测试。转出来的包是构造数据,不是实测流量,这一点必须在结论里说清楚。

基本信息

基本语法text2pcap [选项] 输入文本 输出.pcap
输入格式每行以偏移量开头,后跟十六进制字节,可附 ASCII 对照
-i 协议号生成外层 IP 头,6 为 TCP、17 为 UDP
端口设置-T 设置 TCP 端口,-u 设置 UDP 端口,具体以本机帮助为准
时间戳-t 指定起始时间,缺省值通常不符合预期
链路类型-l 指定链路层类型,按目标环境选择

典型使用场景

  • 日志复原:把设备日志里打印的十六进制报文还原成可分析的 pcap
  • 构造样本:手工拼出畸形长度、异常标志位等边界报文验证解析逻辑
  • 文档示例:把手册里贴的转储做成 pcap,随文档一起交付便于上手
  • 接口测试:给被测程序喂入指定字段组合的报文,验证处理分支
  • 教学:用几行文本构造出一个完整握手,逐层讲解封装结构

从转储到 pcap

从转储到 pcap
# 输入文本形如:
# 0000  45 00 00 3c 1c 46 40 00  40 11 b1 e6 c0 a8 00 01   E..<.F@.@.......
text2pcap -i 17 hexdump.txt udp-sample.pcap      # 按 UDP 生成外层 IP 头
text2pcap -i 6 -T 12345,80 hexdump.txt tcp-sample.pcap   # 指定 TCP 端口
tshark -r udp-sample.pcap -V | head -40          # 打开确认层次与字段
capinfos udp-sample.pcap                         # 核对包数与时间范围

选项速查

选项作用常见用法
-i指定 IP 层协议号6 表示 TCP,17 表示 UDP
-T / -u指定 TCP / UDP 端口便于按端口做后续过滤
-t指定首个包的时间戳不指定时用程序默认值
-l指定链路层类型按目标环境选择链路封装
-d十六进制中的分隔与大小写宽容转储格式不规整时有用
-o指定文本编码相关的处理以本机帮助输出为准
生成的文件要标注来源是构造样本,交付或归档时在文件名与说明里写清,避免后续把它当成实测流量做性能结论。
文本格式不合规时最常见的表现是包数为零或字节数对不上,先拿转储的头几行与工具帮助里的格式样例逐字比对,再排查选项。

易错点

  • 用构造样本做性能结论:样本的行长、时序与真实流量完全不同,得出的吞吐与延迟结论不成立
  • 不指定起始时间戳,生成文件的绝对时间落到很久以前,与真实日志做时间对齐时找不到对应点
  • 转储文本里混入非十六进制字符(日志前缀、颜色码)而不加清洗,转换结果包数偏少却看不出原因
  • 用一个通用协议号生成外层头,导致后续按端口或协议过滤时匹配不到,误以为文件损坏

数据来源与参考

  • text2pcap 手册
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌