Главная > Обработка текста и поиск > xxd

xxd: Инструмент для шестнадцатеричного дампа и обратного преобразования

Команда xxd — это инструмент для дампа файлов в шестнадцатеричном формате или, наоборот, для обратного преобразования шестнадцатеричного дампа в исходный бинарный файл. Он более гибок, чем `hexdump`, и особенно полезен, когда нужно отредактировать содержимое бинарного файла, а затем вернуть его в исходное состояние.

Обзор

xxd, подобно `hexdump` или `od`, отображает содержимое бинарных файлов в шестнадцатеричном формате и в виде ASCII-символов. Однако его главная особенность — это **функция обратного преобразования**, которая позволяет вернуть дамп обратно в исходный бинарный файл. Благодаря этой функции можно редактировать бинарные файлы в текстовом редакторе в шестнадцатеричном виде, а затем использовать `xxd -r` для сохранения их обратно в бинарный файл. Эта гибкость очень мощна для анализа и модификации бинарных файлов, особенно при использовании с редактором `vim`.

Ключевые особенности

Основные особенности команды xxd включают:

  • Выводит содержимое файла в шестнадцатеричном и ASCII-формате.
  • Может выполнять обратное преобразование шестнадцатеричного дампа обратно в исходный бинарный файл.
  • Может использоваться для модификации бинарных файлов вместе с обычными текстовыми редакторами.
  • Предоставляет множество опций для детального управления форматом вывода.

Различия между xxd и hexdump

xxd и hexdump схожи по функции шестнадцатеричного дампа, но главное их отличие заключается в наличии функции обратного преобразования.

  • xxd: Предоставляет функцию `обратного преобразования` (`-r`), которая возвращает шестнадцатеричный дамп обратно в исходный бинарный файл. Обладает мощной интеграцией с `vim`.
  • hexdump: Инструмент, ориентированный исключительно на функцию дампа, не имеет функции обратного преобразования.

Основные опции

Мы сгруппировали часто используемые опции команды xxd по их назначению.

1) Опции дампа и обратного преобразования

2) Справка

Сгенерированная команда:

Комбинируйте команды.

Описание:

`xxd` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Изучите функциональность команды xxd на различных примерах использования.

Дамп содержимого файла в шестнадцатеричном формате

echo 'Hello World!' > test.txt
xxd test.txt

Выводит содержимое файла `test.txt` в шестнадцатеричном формате и в виде ASCII-символов.

Сохранение шестнадцатеричного дампа в файл

xxd /bin/ls > ls_dump.txt

Сохраняет содержимое бинарного файла `/bin/ls` в файл `ls_dump.txt`.

Обратное преобразование файла дампа в оригинал

xxd -r ls_dump.txt ls_copy

Восстанавливает ранее сохраненный файл `ls_dump.txt` обратно в исходный бинарный файл `ls_copy`. **Эта функция является главной особенностью xxd.**

Редактирование бинарных файлов с помощью vim

vim file.bin
(в vim) :%!xxd
(редактирование)
(в vim) :%!xxd -r

В `vim` используйте команду `%!xxd` для переключения текущего файла в режим шестнадцатеричного дампа, затем отредактируйте его и используйте `%!xxd -r` для возврата и сохранения.

Установка

xxd входит в состав пакета `vim`. Поскольку пакеты `vim-common` или `vim` обычно установлены по умолчанию в большинстве дистрибутивов Linux, отдельная установка не требуется.

Debian/Ubuntu

sudo apt update
sudo apt install -y vim-common

RHEL/CentOS/Fedora

sudo dnf install -y vim-common

Советы и примечания

Здесь собраны важные моменты, на которые следует обратить внимание при использовании команды xxd.

Советы

  • Опция `-r` в `xxd` может корректно выполнять обратное преобразование только для файлов дампа, созданных с помощью `xxd`. Она может не работать с шестнадцатеричными дампами других форматов.
  • Будьте очень осторожны при модификации бинарных файлов. Один неверный байт может испортить всю программу.
  • При обратном преобразовании всегда безопаснее сохранять файл под другим именем, чтобы не перезаписать оригинал. (Например: `xxd -r old.hex > new.bin`)

Связанные команды

Функционально схожие или часто используемые команды.


Те же команды в категории