Гид по технологиям

xxd — дамп файлов в шестнадцатеричном виде

5 min read Инструменты Обновлено 02 Jan 2026
xxd — дамп файлов в шестнадцатеричном виде
xxd — дамп файлов в шестнадцатеричном виде

Иллюстрация: пример запуска xxd в терминале

Что такое шестнадцатеричный дамп?

Шестнадцатеричный дамп выводит содержимое файла в виде шестнадцатеричных чисел. Шестнадцатеричная система использует 16 символов: 0–9 и A–F (где A–F соответствуют 10–15). Один шестнадцатеричный символ кодирует 4 бита (пол-байта), а два шестнадцатеричных символа — один байт.

Почему это удобно:

  • Hex компактнее и читаемее, чем длинные строки 0 и 1.
  • Позволяет быстро определить структуру файла, сигнатуры (magic bytes) и встроенные текстовые фрагменты.
  • Используется в отладке, судебной экспертизе, реверс-инжиниринге и при работе с бинарными форматами.

Утилита xxd — кратко

xxd обычно поставляется вместе с редактором Vim. Если на системе нет xxd, установите пакет vim или пакет с утилитой xxd через менеджер пакетов вашей дистрибуции (apt, yum, pacman и т.д.).

Простейший вызов:

xxd [FILE]

По умолчанию xxd выводит:

  • столбец со смещением (offset),
  • шестнадцатеричный дамп байтов,
  • справа — читаемые ASCII-символы (или точка для не-печатных байтов).

Это удобный формат для быстрого сканирования файлов: сигнатуры форматов обычно видны в начале (например, PNG начинается с байт 89 50 4E 47). Ниже — пример изображения с типичным фрагментом дампа.

Пример вывода xxd: фрагмент PNG в шестнадцатеричном виде

Важно: xxd не «понимает» формат файла — оно лишь показывает сырые байты. Интерпретация остаётся за вами.

Полезные опции xxd

Ниже — краткая подборка часто используемых опций:

  • -p : выводить «поток» шестнадцатеричных байтов (без адресов и ASCII), удобно для скриптов.
  • -r : восстановить бинарный файл из hex-дампа (реверс-операция).
  • -g N : группировать байты по N (N = 1,2,4,8) для удобства чтения.
  • -c cols : задать количество байтов в строке (по умолчанию 16).
  • -s offset : начать вывод с указанного смещения (offset может быть + или -).
  • -l length : вывести не более length байтов.

Примеры:

# Стандартный дамп
xxd file.bin

# Поток hex без адресов
xxd -p file.bin

# Восстановление бинарного файла из hex
xxd -r -p dump.hex > file.bin

# Дамп с группировкой по 4 байта и 8 байтов в строке
xxd -g 4 -c 8 file.bin

# Начать с 0x100 и вывести 64 байта
xxd -s 0x100 -l 64 file.bin

Как анализировать файл: мини-методология

  1. Сначала запустите xxd file для общего просмотра. Обратите внимание на первые 16–64 байта — там обычно находятся «магические байты».
  2. Используйте xxd -p для получения чистого hex-потока, если нужно сравнение или обработка в скрипте.
  3. Если увидели читаемые строки, выполните strings file или grep по выводу, чтобы найти полезные метки.
  4. Для изменения небольшого участка используйте hex-редактор; для восстановления применяйте xxd -r.

Когда xxd не подходит (контрпримеры)

  • Если нужно пошагово редактировать и проверять контрольные суммы — удобнее использовать hex-редактор с интерфейсом (например, hexedit, bless).
  • Для подробного анализа структуры формата, включая парсинг заголовков и таблиц, лучше применять специализированные инструменты (ExifTool для метаданных изображений, binwalk для прошивок).
  • Для больших файлов с требованием SLI/SLO/производительности массового чтения может не подойти — лучше инструменты потоковой обработки.

Альтернативы xxd

  • hexdump — стандартная утилита на многих системах; синтаксис отличается, но возможности схожи.
  • od — более старый инструмент, выводит содержимое в разных форматах (octal, hex, ascii).
  • strings — удобна для быстрого извлечения printable-строк из бинарника.
  • hex-редакторы (hexedit, bless, wxHexEditor) — для интерактивного редактирования.

Пример сравнения команд:

hexdump -C file.bin   # похожий вывод: offset | hex | ASCII
od -An -tx1 -v file.bin  # вывод в hex-байтах без адресов

Чек-листы по ролям

  • Для разработчика:

    • проверить сигнатуру файла (первые байты);
    • найти версии/метки сборки в ASCII;
    • при патчинге — тестировать контрольные суммы.
  • Для администратора/инженера поддержки:

    • сохранить оригинал файла (backup);
    • использовать xxd -s и -l для выборочного анализа;
    • документировать найденные строки и смещения.
  • Для дизайнера/верстальщика:

    • использовать xxd -p для извлечения встроенных ресурсов (иногда цвета, метаданные);
    • при необходимости — извлечь встроенные CSS/тексты для правки.

Критерии приёмки

  • Утилита выводит смещение, hex-байты и читаемую ASCII-колонку.
  • Можно восстановить бинарный файл с помощью xxd -r из корректного hex-дампа.
  • Опции -s, -l, -g, -c работают как ожидается для выборочного анализа.

Краткий глоссарий (1 строка)

  • Hex: шестнадцатеричная система счисления, 16 символов.
  • Byte: 8 бит, минимальная адресуемая единица памяти.
  • Nibble: 4 бита (пол-байта), соответствует одному hex-символу.
  • Offset: смещение от начала файла, обычно выводится в hex.
  • ASCII: стандарт отображаемых символов; не все байты соответствуют печатным символам.

Примеры тестов/приёмки

  • Тест 1: xxd file.png | head показывает сигнатуру PNG (89 50 4E 47).
  • Тест 2: xxd -p file > dump.hex и xxd -r -p dump.hex > file2 — file и file2 должны быть идентичны по битовой сумме (например, sha256sum).

Заключение

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

Часто задаваемые вопросы

Что делать, если на системе нет xxd?

Установите vim или пакет xxd через менеджер пакетов вашей системы (например, sudo apt install vim на Debian/Ubuntu).

Как преобразовать вывод xxd обратно в бинарный файл?

Используйте xxd -r вместе с флагом -p, если дамп был в поточном формате: xxd -r -p dump.hex > file.bin.

Можно ли редактировать файл напрямую через xxd?

xxd сам по себе не является интерактивным редактором, но предоставляет возможность конвертации в hex и обратно; для редактирования используйте hex-редактор (hexedit, bless) или отредактируйте дамп и верните его через xxd -r.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как восстановить и отредактировать видео с телефона
Мультимедиа

Как восстановить и отредактировать видео с телефона

Homebrew для PSP: установка и запуск
Руководства

Homebrew для PSP: установка и запуск

vReveal — обзор: улучшение видео бесплатно
Видео

vReveal — обзор: улучшение видео бесплатно

Как сделать видео‑трибьют в Animoto за 10 минут
Видеомонтаж

Как сделать видео‑трибьют в Animoto за 10 минут

Конвертация статьи в видео — руководство
Контент-маркетинг

Конвертация статьи в видео — руководство

Как сделать вирусное видео для YouTube
Видео-маркетинг

Как сделать вирусное видео для YouTube