Bootstrap

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]:限制读取的字节长度。

示例

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

在这里插入图片描述

在这里插入图片描述
效果等同于 CyberShef 的from hexdump
在这里插入图片描述

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

在这里插入图片描述


2. hexdump

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

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

示例

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

3. hd

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

常用选项
无需额外参数,直接运行即可:

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

4. bvi

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

常用操作
  • 启动编辑:
    bvi file.bin
    
  • 操作命令:
    • :w 保存修改。
    • :q 退出编辑。
    • h/j/k/l 移动光标。
    • 在十六进制区域直接输入数据进行修改。

5. hexedit

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

常用操作
  • 启动编辑:
    hexedit file.bin
    
  • 操作说明:
    • 使用方向键移动光标。
    • 在十六进制区域输入内容以修改数据。
    • Ctrl+x 保存并退出。

6. ht

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

常用操作
  • 启动编辑:
    ht file.bin
    
  • 界面导航:
    • 使用方向键移动光标。
    • F3 保存修改。
    • Esc 进入主菜单,切换视图(如 ASCII、二进制)。

工具对比与选择

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

总结

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

;