CyberChef Hexdump — 互转
分类:数据格式
Operations:To Hexdump, From Hexdump
Hexdump
Hex 查看
二进制
数据分析
调试
什么是 Hexdump?
Hexdump(十六进制转储)把二进制数据用十六进制展示,并常在同一行附上对应的 ASCII(或可打印字符)列,便于并排对照。它是调试、逆向与数据分析中最基础的手段之一,可用来查看文件、网络包、内存转储等任意二进制内容的精确字节。
这种展示方式源自 Unix 下的 hexdump、xxd 等工具,已成为查看二进制的一种通用习惯。每一行通常包含:偏移地址、若干字节的十六进制、以及这些字节的 ASCII 解释。
为何用 Hexdump? 二进制对人不可读,纯十六进制又少了“像不像文本”的直觉。Hexdump 在十六进制与 ASCII 之间折中,便于发现字符串、文件魔数、重复模式与数据结构边界。
Hexdump 行结构
看懂一行里各列的含义,是阅读二进制的前提:
读数值时的字符范围
| Hex |
十进制 |
ASCII |
说明 |
| 00-1F |
0-31 |
. |
控制字符(不可打印) |
| 20 |
32 |
(space) |
空格 |
| 30-39 |
48-57 |
0-9 |
数字 |
| 41-5A |
65-90 |
A-Z |
大写字母 |
| 61-7A |
97-122 |
a-z |
小写字母 |
| 7F-FF |
127-255 |
. |
扩展 ASCII / 二进制数据 |
To Hexdump Operation
CyberChef 的 To Hexdump 将任意输入转为 hexdump 文本,便于查看二进制文件、排查编码问题或分析原始结构。
典型用途:
- 查看文件头与魔数以判断类型
- 调试二进制协议与网络包内容
- 分析固件或已编译二进制
- 在大文件中发现嵌入数据或隐藏片段
- 核对编码与字符集
- 以 hex 形式相对安全地初览恶意样本
- 理解自定义二进制格式
To Hexdump 配置项
To Hexdump 通常提供多种输出格式选项,例如:
常见行宽:
- 16 字节:最常用,兼顾可读性
- 8 字节:较窄,适合小屏
- 32 字节:更宽,单行信息更多
From Hexdump Operation
From Hexdump 执行相反过程:把 hexdump 文本还原为原始二进制(或字节序列)。适用于日志、文档、邮件里夹带的 hex 转储需要还原成文件或再处理的情形。
典型用途:
- 从 hexdump 日志或说明文档重建二进制文件
- 把仅含 hex 的文本还原为可执行或可解析数据
- 从调试输出、错误报告恢复数据
- 处理命令行工具导出的 hexdump
- 从纯文本信道中提取二进制载荷
- 按教程/示例中的 hex 重现文件
Hexdump 格式变体
不同工具输出的细节略有差异。From Hexdump 通常能兼容多种常见样式:
常见 xxd 风格
00000000: 4865 6c6c 6f20 576f 726c 6421 Hello World!
hexdump -C 风格
00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 21 |Hello World!|
纯 Hex(无偏移)
48 65 6c 6c 6f 20 57 6f 72 6c 64 21
连续 Hex 串
48656c6c6f20576f726c6421
兼容性:CyberChef 的 From Hexdump 对常见版式较宽容,通常能自动忽略偏移、ASCII 列与多余分隔符,只抽取有效十六进制字节。
实践示例
示例 1:识别文件类型
示例 2:调试二进制协议
示例 3:发现嵌入字符串
CyberChef Recipe 思路
与 hexdump 相关的组合示例:
- 文件分析: From Base64 → To Hexdump
- 数据提取: Extract Files → To Hexdump
- 二进制对比: Fork → To Hexdump
- 数据恢复: From Hexdump → To Base64
- 协议分析: From Hex → To Hexdump
- 模式查找: To Hexdump → Regular expression
- 格式链: From Hexdump → To Hex → To Base64
命令行对照
在 CyberChef 之外,也可用下列工具生成类似输出:
Unix/Linux
# 标准 hexdump
hexdump -C filename
# xxd(很常见)
xxd filename
# od(八进制/十六进制)
od -A x -t x1z -v filename
# 导出为 hexdump 文本
xxd filename > file.hex
# 从 hexdump 还原
xxd -r file.hex > restored_file
Windows
# PowerShell
Format-Hex filename
# CertUtil
certutil -encodehex input.bin output.txt
# 使用 WSL
wsl xxd filename
技巧与注意点
高效阅读
- 可先扫 ASCII 列找可读字符串与规律
- 重复字节常表示填充或固定结构
- 文件开头若干字节常是魔数,用于判型
- 注意
00 00 00 00、FF FF FF FF 等常见填充模式
- 结构体常有 4/8/16 字节对齐
常见陷阱
- 字节序:多字节整数可能是 little-endian(字节顺序与阅读顺序相反)
- 不可打印字符:ASCII 列显示为点,需看左侧 hex
- Unicode:多字节字符在单字节 ASCII 列中显示不完整
- 压缩:压缩数据在 hexdump 中往往像随机噪声
- 加密:密文通常表现为高熵、近似随机
性能
- 带格式的 hexdump 体积远大于原始数据(约数倍)
- 超大文件转 hexdump 可能较慢
- 可只截取关心区间分析
- 按屏幕与习惯调节行宽
学习价值
练习阅读 hexdump 有助于建立底层直觉:
- 底层表示:理解数据在存储中的真实形态
- 编码:认识字符、数值与结构的字节布局
- 模式识别:更快发现结构与异常
- 调试:定位二进制数据问题
- 逆向:分析未知格式的起点
- 安全:辅助恶意样本与漏洞相关分析
学习顺序建议:从简单文本文件的 hexdump 理解 ASCII 开始,再过渡到二进制文件、抓包与可执行文件。读得越多,对模式与结构的反应越快。
← 返回操作指南