Linux 命令行十六进制编辑器:高效操作二进制文件

一、什么是十六进制(二进制)文件?

十六进制文件是以二进制形式存储数据的文件,其内容用十六进制数值表示。它们广泛用于程序代码、配置数据、图像、音频、视频等多种数据类型的存储场景。相比二进制,十六进制以更紧凑和直观的方式呈现数据,使开发者和分析人员能够更方便地观察和分析底层数据结构。

十六进制文件内容格式

十六进制文件的表示通常包括以下几部分:

  1. 偏移地址:每行数据的起始地址,通常用十六进制显示,指示该数据在文件中的位置。
  2. 十六进制数据:文件中的实际字节数据,以十六进制形式呈现,每字节(8 位)以两位十六进制数表示。
  3. ASCII 表示(可选) :将十六进制数据对应的 ASCII 字符显示在右侧;不可打印字符通常用 . 表示,方便理解内容。
示例

以下是十六进制文件的一种典型表示:

复制代码
00000000  48 65 6C 6C 6F 20 57 6F  72 6C 64 21 0A           |Hello World!.|
0000000d
  • 偏移地址00000000 表示数据从文件的起始位置读取。
  • 十六进制数据48 65 6C 6C 6F 20 57 6F 72 6C 64 21 0A 是文件的字节内容。
  • ASCII 表示 :右侧的 Hello World! 是数据的 ASCII 表示,其中 0A 为换行符。

二、常用十六进制编辑器

1. xxd

xxd 是一款功能强大且轻量的十六进制工具,预装在大多数 Linux 系统中。它支持将文件内容转换为十六进制显示,同时支持将十六进制表示还原为二进制数据。

常用选项
  • xxd [filename]:以十六进制形式查看文件内容。
  • -r:将十六进制数据还原为原始二进制。
  • -p:以纯十六进制输出(无偏移地址和 ASCII)。
  • -s [offset]:从指定偏移量开始读取文件。
  • -l [length]:限制读取的字节长度。

示例

bash 复制代码
xxd file.bin              # 查看文件内容的十六进制表示  
xxd -r file.hex file.bin  # 将十六进制文件还原为二进制  

效果等同于 CyberShef 的from hexdump

bash 复制代码
xxd -p file.bin          # 仅输出文件的十六进制字节  

2. hexdump

hexdump 是经典的十六进制查看工具,功能灵活,支持格式化输出和偏移量控制。

常用选项
  • hexdump [filename]:默认以十六进制显示文件内容。
  • -C:以十六进制和 ASCII 字符同时显示文件内容。
  • -n [length]:限制读取的字节数。
  • -s [offset]:从指定偏移量读取文件。

示例

bash 复制代码
hexdump file.bin           # 查看文件内容  
hexdump -C file.bin        # 同时显示十六进制和 ASCII  
hexdump -n 32 file.bin     # 仅查看文件的前 32 字节  

3. hd

hdhexdump 的简化版,更直观且易用,适合快速查看文件内容。

常用选项

无需额外参数,直接运行即可:

bash 复制代码
hd file.bin                # 查看文件内容的十六进制表示  

4. bvi

bvi 是基于 vi 的十六进制编辑器,继承了 vi 的操作方式,支持精准修改文件的二进制内容。

常用操作
  • 启动编辑:

    bash 复制代码
    bvi file.bin
  • 操作命令:

    • :w 保存修改。
    • :q 退出编辑。
    • h/j/k/l 移动光标。
    • 在十六进制区域直接输入数据进行修改。

5. hexedit

hexedit 是终端下的另一款易用十六进制编辑器,界面简洁直观,支持快速修改文件内容。

常用操作
  • 启动编辑:

    bash 复制代码
    hexedit file.bin
  • 操作说明:

    • 使用方向键移动光标。
    • 在十六进制区域输入内容以修改数据。
    • Ctrl+x 保存并退出。

6. ht

ht 是功能全面的十六进制编辑器,支持文件的结构化查看、反汇编和数据分析。

常用操作
  • 启动编辑:

    bash 复制代码
    ht file.bin
  • 界面导航:

    • 使用方向键移动光标。
    • F3 保存修改。
    • Esc 进入主菜单,切换视图(如 ASCII、二进制)。

工具对比与选择

工具名称 功能特点 适用场景
xxd 轻量级,支持十六进制查看和还原 快速查看和转换文件内容
hexdump 输出灵活,支持偏移和长度控制 查看文件内容
hd 简单直观 快速查看
bvi 基于 vi 的强大编辑功能 精确修改二进制文件
hexedit 界面简洁,操作直观 快速编辑文件内容
ht 高级功能,支持反汇编 深度分析和文件编辑

总结

Linux 提供了多种命令行十六进制工具,可以满足不同场景的需求。对于仅需快速查看文件内容的用户,xxdhexdump 是理想选择;而对于需要修改或深入分析的用户,bvihexeditht 提供了更强大的功能。根据具体任务选择合适工具,有助于更高效地处理二进制文件。

相关推荐
cocologin1 小时前
RIP 技术深度解析
运维·网络·网络协议
庸子1 小时前
基于Jenkins和Kubernetes构建DevOps自动化运维管理平台
运维·kubernetes·jenkins
Lpy25691 小时前
Docker Desktop 安装到D盘(包括镜像下载等)+ 汉化
运维·docker·容器
眠修2 小时前
Kuberrnetes 服务发布
linux·运维·服务器
好奇的菜鸟2 小时前
Docker 配置项详解与示例
运维·docker·容器
xcs194053 小时前
集运维 麒麟桌面版v10 sp1 2403 aarch64 离线java开发环境自动化安装
运维·自动化
BAOYUCompany3 小时前
暴雨服务器成功中标华中科技大学集成电路学院服务器采购项目
运维·服务器
超龄超能程序猿4 小时前
Bitvisse SSH Client 安装配置文档
运维·ssh·github
奈斯ing4 小时前
【Redis篇】数据库架构演进中Redis缓存的技术必然性—高并发场景下穿透、击穿、雪崩的体系化解决方案
运维·redis·缓存·数据库架构
鳄鱼皮坡4 小时前
仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器
运维·服务器