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 | 指定文本编码相关的处理 | 以本机帮助输出为准 |
生成的文件要标注来源是构造样本,交付或归档时在文件名与说明里写清,避免后续把它当成实测流量做性能结论。
文本格式不合规时最常见的表现是包数为零或字节数对不上,先拿转储的头几行与工具帮助里的格式样例逐字比对,再排查选项。