text2pcap: 将hex转储文本转换为Wireshark可打开的pcap文件
简介
Text2pcap是一个读取ASCII hex转储的程序,它将描述的数据写入pcap或pcapng文件。text2pcap可以读取包含多个数据包的hexdumps,并构建多个数据包的捕获文件。text2pcap还能够生成虚拟以太网,IP和UDP,TCP或SCTP标头,以便仅从应用级数据的hexdump构建完全可处理的数据包转储。
用法
该工具集成在Wireshark安装包中,进入DoS切换到Wireshark安装目录(缺省:C:\Program Files\Wireshark)。使用命令: text2pcap [选项] <输入文件名> <输出文件名>
选项
-o hex | oct | dec
指定偏移的基数(十六进制,八进制或十进制)。默认为十六进制。详细介绍见后文注意事项。
-t <timefmt>
将包之前的文本视为日期/时间码; timefmt是strptime(3)支持的排序格式字符串。示例:时间“10:15:14.5476”的格式代码为“%H:%M:%S”。如果不指定时间,则使用当前系统时间。
-n
以pcapng格式而不是pcap格式写入文件。缺省为pcap格式
-l
指定此数据包的链路层标头类型。缺省为以太网(1)。有关可能的封装的完整列表,请参见http://www.tcpdump.org/linktypes.html。 请注意,如果转储是封装数据包的完整十六进制转储,并且您希望指定确切的封装类型,则应使用此选项。示例:-l 7用于封装BSD样式的ARCNet数据包。
-m <max-packet>
设置最大数据包长度,默认为262144.
-h
帮助选项
当捕获报文为非完整数据实(比如只有应用层数据),可以使用以下选项对报文头进行构造:
-e <l3pid>
在每个数据包之前包含一个虚拟以太网报头。以十六进制指定以太网头的L3PID。如果您的dump具有第3层标头和有效负载(例如IP标头),但没有第2层封装,请使用此选项。示例:-e 0x806指定ARP数据包。对于IP数据包,您也可以使用-l 101来指示Wireshark的原始IP数据包,而不是生成虚假的以太网头。请注意,-l 101不适用于任何非IP第3层数据包(例如ARP),而使用-e生成虚拟以太网头适用于任何类型的L3数据包。
-i <proto>
在每个数据包之前包含虚拟IP头。以十进制指定数据包的IP协议。如果转储是IP数据包的有效负载(即具有完整的L4信息)但每个数据包没有IP头,请使用此选项。请注意,每个数据包也会自动包含适当的以太网标头。示例:-i 46指定RSVP数据包(IP协议46)。有关分配的Internet协议号的完整列表,请参见http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml。
-4 <srcip>,<destip>
使用指定的IPv4 目的和源地址预先添加虚拟IP头。此选项应附带以下选项之一:-i,-s,-S,-T,-u使用此选项可应用“自定义”IP地址。示例:-4 10.0.0.1,10.0.0.2对所有IP数据包使用10.0.0.1和10.0.0.2。
-6 <srcip>,<destip>
使用指定的IPv6目标和源地址预先添加虚拟IP头。此选项应附带以下选项之一:-i,-s,-S,-T,-u使用此选项可应用“自定义”IP地址。示例:-6 fe80 :: 202:b3ff:fe1e:8329,2001:0db8:85a3 :: 8a2e:0370:7334使用fe80 :: 202:b3ff:fe1e:8329和2001:0db8:85a3 :: 8a2e:0370 :7334表示所有IP数据包。
-T <srcport>,<destport>
在每个数据包之前包含虚拟TCP标头。以十进制指定数据包的源和目标TCP端口。如果转储是数据包的TCP有效负载但不包含任何TCP,IP或以太网标头,请使用此选项。请注意,每个数据包都会自动包含适当的以太网和IP标头。序号将从0开始。
-u <srcport>,<destport>
在每个数据包之前包含虚拟UDP标头。以十进制指定数据包的源和目标UDP端口。如果转储是数据包的UDP有效负载但不包含任何UDP,IP或以太网标头,请使用此选项。请注意,每个数据包都会自动包含适当的以太网和IP标头。示例:-u1000,69使数据包看起来像TFTP / UDP数据包。
说明
一个标准的hex dump报文应该如下:

如上图所示是wireshark官方文档中的hex dump示例,标红的地方即为偏移量(offset),缺省为16进制,每一个新数据包以偏移量0开头第一行一共16字节,因此第二行的偏移量为16,对应到十六进制即为:0x00010。
此外还有几个地方需要注意:
1、每行的宽度或字节数没有限制。此外,行末尾的文本转储也会被忽略。
2、字节/十六进制数可以是大写或小写。
3、忽略偏移之前的任何文本,包括电子邮件转发字符'>'。
4、字节串行之间的任何文本行都将被忽略。
5、偏移量用于跟踪字节,因此偏移量必须正确。
6、任何只有字节而没有前导偏移的行都将被忽略。
7、偏移被识别为长于两个字符的十六进制数。
8、忽略字节后的任何文本(例如字符转储),此文本中的任何十六进制数也会被忽略。
9、偏移量为零表示启动新数据包,因此具有一系列hexdumps的单个文本文件可以转换为具有多个数据包的抓包文件。
示例
接下来通过root-me上的一道题目演示如何将hex dump文本转换为pcap文件。题目地址为:https://www.root-me.org/en/Challenges/Network/ETHERNET-frame ,其中所涉及到的报文为:
00 05 73 a0 00 00 e0 69 95 d8 5a 13 86 dd 60 00
00 00 00 9b 06 40 26 07 53 00 00 60 2a bc 00 00
00 00 ba de c0 de 20 01 41 d0 00 02 42 33 00 00
00 00 00 00 00 04 96 74 00 50 bc ea 7d b8 00 c1
d7 03 80 18 00 e1 cf a0 00 00 01 01 08 0a 09 3e
69 b9 17 a1 7e d3 47 45 54 20 2f 20 48 54 54 50
2f 31 2e 31 0d 0a 41 75 74 68 6f 72 69 7a 61 74
69 6f 6e 3a 20 42 61 73 69 63 20 59 32 39 75 5a
6d 6b 36 5a 47 56 75 64 47 6c 68 62 41 3d 3d 0d
0a 55 73 65 72 2d 41 67 65 6e 74 3a 20 49 6e 73
61 6e 65 42 72 6f 77 73 65 72 0d 0a 48 6f 73 74
3a 20 77 77 77 2e 6d 79 69 70 76 36 2e 6f 72 67
0d 0a 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 0d
0a
根据提示可知该报文为以太网类型的报文,我们可以使用缺省参数进行转换而无需通过-l指定链路层类型。
结合上一节中的说明可知,该报文没有设置偏移字段,因此我们需要手工设置偏移字段,偏移字段需要大于2个字符,这里我们设置成4个字符,报文的开始偏移量一定要设置为0,每行16个字节,正好第二位加一:
0000 00 05 73 a0 00 00 e0 69 95 d8 5a 13 86 dd 60 00
0010 00 00 00 9b 06 40 26 07 53 00 00 60 2a bc 00 00
0020 00 00 ba de c0 de 20 01 41 d0 00 02 42 33 00 00
0030 00 00 00 00 00 04 96 74 00 50 bc ea 7d b8 00 c1
0040 d7 03 80 18 00 e1 cf a0 00 00 01 01 08 0a 09 3e
0050 69 b9 17 a1 7e d3 47 45 54 20 2f 20 48 54 54 50
0060 2f 31 2e 31 0d 0a 41 75 74 68 6f 72 69 7a 61 74
0070 69 6f 6e 3a 20 42 61 73 69 63 20 59 32 39 75 5a
0080 6d 6b 36 5a 47 56 75 64 47 6c 68 62 41 3d 3d 0d
0090 0a 55 73 65 72 2d 41 67 65 6e 74 3a 20 49 6e 73
00a0 61 6e 65 42 72 6f 77 73 65 72 0d 0a 48 6f 73 74
00b0 3a 20 77 77 77 2e 6d 79 69 70 76 36 2e 6f 72 67
00c0 0d 0a 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 0d
00d0 0a
00d1
将以上报文保存到txt文本,使用缺省参数进行转换:

此时我们使用wireshark打开刚刚生成的pcap文件:

可以看到报文被完整的解析出来,上图中标红的字段经过base64解码后即为该题目的password。
另外一种方法亦可将hex dump文本解析为pcap。打开wireshark——点击文件——从hex转储文件导入:

如果手工设置了或者hex转储文件自带偏移量则可以选择偏移量为16进制,如果hex dump文件没有偏移值则偏移量选择无也可以正常导入文件:

参考资料:https://www.wireshark.org/docs/man-pages/text2pcap.html
text2pcap: 将hex转储文本转换为Wireshark可打开的pcap文件的更多相关文章
- JSON文本转换为JSONArray 转换为 List<Object>
package com.beijxing.TestMain; import java.io.File; import java.io.IOException; import java.util.Arr ...
- 利用Code128字体将文本转换为code128条形码
利用Code128字体将文本转换为code128条形码[转] 最近在做仓储的项目,许多的打印文件都包含条形码,之前一直使用C39P24DhTt字体直接转换为39码,但是最近要求使用code128编 ...
- 将txt文本转换为excel格式
将txt文本转换为excel格式,中间使用的列分割为 tab 键 一.使用xlwt模块 注:Excel 2003 一个工作表行数限制65536,列数限制256 需要模块:xlwt 模块安装:xlwt ...
- 用Excel如何将文本转换为数字的七种方法
用Excel如何将文本转换为数字的七种方法 当下,很多工作都会用到Excel,下面本文分步介绍了如何将包含文本的Excel单元格转换为包含数字的单元格. 概述: 当导入在另一程序(如 dBASE 或 ...
- 一招教你如何在Python中使用Torchmoji将文本转换为表情符号
很难找到关于如何使用Python使用DeepMoji的教程.我已经尝试了几次,后来又出现了几次错误,于是决定使用替代版本:torchMoji. TorchMoji是DeepMoji的pyTorch实现 ...
- 将rgb表示方式转换为hex表示方式-------------将hex表示方式转换为rgb表示方式(这里返回rgb数组组合)
/** * kevin 2021.1.4 * 将rgb表示方式转换为hex表示方式 * @param {string} rgbColor 传过来的hex格式的颜色 * @returns { ...
- 【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析
问题描述 如何在Windows环境中,不安装第三方软件的情况下(使用Windows内置指令),如何抓取网络包呢?并且如何转换为Wireshark 格式呢? 操作步骤 1) 以管理员模式打开CMD,使用 ...
- 将 Word 文本转换为表格
文本转换为表格的功能,首先点击"插入"选项卡"表格"组中的"表格"下拉按钮,打开下拉列表中选择"文本转换成表格"选项.
- Qt文本读写之一:输入输出设备和文件操作
一.输入输出设备 QIODevice类是Qt中所有I/O设备的基础接口类,为诸如QFile.QBuffer和 QTcpSocket等支持读/写数据块的设备提供了一个抽象接口.QIODevice类是抽象 ...
随机推荐
- JavaScript数据结构——树的实现
在计算机科学中,树是一种十分重要的数据结构.树被描述为一种分层数据抽象模型,常用来描述数据间的层级关系和组织结构.树也是一种非顺序的数据结构.下图展示了树的定义: 在介绍如何用JavaScript实现 ...
- CSS:抗锯齿 font-smoothing
本文引自:http://www.cnblogs.com/sunshq/p/4595673.html -webkit-font-smoothing 这个属性可以使页面上的字体抗锯齿,使用后字体看起来会更 ...
- 决策树ID3原理及R语言python代码实现(西瓜书)
决策树ID3原理及R语言python代码实现(西瓜书) 摘要: 决策树是机器学习中一种非常常见的分类与回归方法,可以认为是if-else结构的规则.分类决策树是由节点和有向边组成的树形结构,节点表示特 ...
- git码云的使用基础(为了以后更好的协同操作)
git手册 安装教程 windows 不需要什么操作点点点就好 设置一个文件夹当成本地仓库 第一次上传 git init# 创建一个本地的仓库 git add. 当前文件夹下所有内容# 添加到暂存区 ...
- React 多副本问题
Element ref was specified as a string (MySider) but no owner was set. This could happen for one of t ...
- OpenResty 社区王院生:APISIX 的高性能实践
2019 年 7 月 6 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·上海站,OpenResty 软件基金会联合创始人王院生在活动上做了&l ...
- net core Webapi基础工程搭建(五)——缓存机制
目录 前言 Cache Session Cookie 小结 补充 前言 作为WebApi接口工程,性能效率是必不可少的,每次的访问请求,数据库读取,业务逻辑处理都或多或少耗费时间,偶尔再来个各种花式f ...
- [JavaScript] 节流(throttle)-防抖(debounce) 不懵圈指北
网易云课堂 > 微专业 > 前端高级开发工程师 01.前端高级-JavaScript进阶 > 3.函数式编程 Underscore源码分析 > 3.4.3 throttle 与 ...
- HBase 系列(七)——HBase 过滤器详解
一.HBase过滤器简介 Hbase 提供了种类丰富的过滤器(filter)来提高数据处理的效率,用户可以通过内置或自定义的过滤器来对数据进行过滤,所有的过滤器都在服务端生效,即谓词下推(predic ...
- 程序员过关斩将--cookie和session的关系其实很简单
月高风下,下班路上.... 菜菜哥,告诉你一个秘密,但是不允许告诉任何人 这么秘密,你有男票了?~ 不是,昨天我偷偷去面试了,结果挂了 这不是好事吗,上天让公司留住你..... 好吧,不过还是要请教你 ...