Hexedit: консольный hex-редактор для просмотра и правки бинарных файлов

Hexedit запускается прямо в терминале командой hexedit имя_файла и сразу открывает двоичный файл в виде двух панелей: слева — шестнадцатеричные значения байтов, справа — их ASCII-представление. Это один из самых лёгких консольных hex-редакторов для Linux, который часто оказывается единственным доступным инструментом на сервере без графического окружения или в аварийной консоли восстановления.

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

Что такое hexedit и когда он нужен

Hexedit — это консольный редактор, позволяющий просматривать и изменять любой файл на уровне отдельных байтов. В отличие от текстового редактора, он не интерпретирует содержимое как текст, а показывает сырые данные в шестнадцатеричном виде.

Такой инструмент полезен, когда нужно:

  • 🔍 изучить структуру неизвестного бинарного файла или его заголовок;
  • 🛠 исправить повреждённый байт в конфигурации или прошивке;
  • 💾 проанализировать содержимое диска, раздела или образа на низком уровне;
  • 🧩 изменить отдельные байты в исполняемом файле при отладке или реверс-инжиниринге;
  • 📄 проверить сигнатуру файла (магические байты), чтобы определить его реальный формат.

Отдельное преимущество — способность открывать не только обычные файлы, но и блочные устройства вроде /dev/sda. Это делает hexedit инструментом диагностики дисков, хотя работа с устройствами требует особой осторожности.

Установка hexedit в популярных дистрибутивах

В большинстве систем пакет называется hexedit и ставится штатным менеджером пакетов. Для Debian и Ubuntu команда выглядит так:

sudo apt install hexedit

В Fedora используется sudo dnf install hexedit, в Arch Linux — sudo pacman -S hexedit. Если пакет не найден, проверьте, что подключены стандартные репозитории вашего дистрибутива, и обновите их индекс.

Проверить установку можно, просто запустив программу без аргументов — откроется пустой интерфейс. Выход из редактора выполняется клавишами Ctrl+C или Ctrl+X в зависимости от версии; точная подсказка отображается в нижней строке окна программы.

Интерфейс и основные горячие клавиши

После запуска hexedit файл.bin экран делится на три зоны: колонку смещений (адресов), шестнадцатеричную область и текстовую панель. Курсор перемещается стрелками, а правка выполняется прямым вводом: в hex-области набираются цифры 0-9 и буквы A-F, в текстовой — обычные символы.

Ниже — основные клавиши, которые используются чаще всего. Точный список для вашей версии всегда доступен по клавише F1 (встроенная справка).

КлавишаДействие
Ctrl+SПоиск вперёд по файлу
Ctrl+RПовторить поиск
TabПереключение между hex- и ASCII-панелью
Ctrl+X / Ctrl+CВыход из редактора
Ctrl+ZПриостановить программу (вернуться через fg)

Обратите внимание: hexedit сохраняет изменения в файл немедленно при вводе, без отдельной команды сохранения. Это принципиально отличает его от привычных текстовых редакторов и является главным источником ошибок новичков.

📊 Для каких задач вы используете hex-редактор чаще всего?
Анализ бинарных файлов
Восстановление повреждённых данных
Реверс-инжиниринг и отладка
Работа с дисками и разделами

Практический сценарий: просмотр и правка бинарного файла

Рассмотрим типовую задачу — нужно проверить заголовок файла и исправить один байт. Сначала сделайте резервную копию: cp file.bin file.bin.bak. Это займёт секунду, но спасёт при ошибочной правке.

Затем откройте файл, перейдите к нужному смещению и аккуратно введите новое значение. Порядок действий удобно сверить по чек-листу:

☑️ Безопасная правка файла в hexedit

Выполнено: 0 / 5

Для поиска конкретной последовательности байтов используйте Ctrl+S: в hex-режиме вводится шестнадцатеричная строка, в ASCII-режиме — текст. Если совпадений несколько, повторный поиск запускается через Ctrl+R.

⚠️ Внимание: не редактируйте файл, который в этот момент открыт работающей программой или смонтирован как часть файловой системы. Изменение байтов «на лету» может привести к повреждению данных и сбою приложения.

Работа с дисками и блочными устройствами

Hexedit умеет открывать устройства напрямую, например sudo hexedit /dev/sdb. Так можно посмотреть таблицу разделов, загрузочный сектор или суперблок файловой системы. Для чтения это относительно безопасно, но любая запись в сырой диск обходит файловую систему целиком.

Перед экспериментами снимите образ диска или раздела утилитой dd и тренируйтесь на нём. Правка образа ничем не грозит оригиналу, а синтаксис работы в редакторе тот же самый.

⚠️ Внимание: запись изменений напрямую на системный диск (тот, с которого загружена ОС) способна сделать систему незагружаемой. Если точная структура сектора вам неизвестна, ограничьтесь режимом просмотра.

Как отличить hexedit от похожих утилит

Hexdump и od только выводят дамп в терминал без возможности редактирования. Xxd умеет и править, но через промежуточный текстовый файл. Hexedit же даёт интерактивный полноэкранный интерфейс, что удобнее для ручной работы.

Типичные проблемы и их решение

Редактор не открывает файл из-за прав доступа. Проверьте права командой ls -l файл и при необходимости запустите hexedit через sudo — но только для чтения системных файлов, правка под root требует понимания последствий.

Случайно изменён байт. Поскольку отмены в редакторе нет, единственная защита — та самая резервная копия. Восстановите файл из неё и начните заново.

Искажение отображения в терминале. Если интерфейс «ломается», проверьте переменную окружения TERM и попробуйте другой эмулятор терминала. В SSH-сессиях проблема чаще всего связана именно с несовпадением типа терминала.

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

Если возможностей консольного редактора не хватает, есть и другие инструменты. Выбор зависит от задачи и наличия графического окружения.

  • 🖥 GHex и Okteta — графические hex-редакторы для Linux с подсветкой структур;
  • ⌨️ xxd — консольный просмотр и конвертация дампов, входит в состав Vim;
  • 📊 hexdump / od — классические утилиты вывода дампов для скриптов;
  • 🧪 wxHexEditor — подходит для очень больших файлов и дисков.

Для автоматизации (пакетной обработки в скриптах) интерактивный hexedit не подходит — там логичнее использовать xxd, dd или скрипты на Python.

Частые вопросы о hexedit

Есть ли в hexedit функция отмены (undo)?

Нет, полноценной отмены в hexedit не предусмотрено, а изменения записываются в файл сразу. Поэтому перед правкой всегда создавайте резервную копию командой cp.

Можно ли редактировать диск в hexedit без прав root?

Нет, для прямого доступа к блочным устройствам вроде /dev/sda требуются права суперпользователя или членство в соответствующей группе (например, disk). Обычные файлы редактируются под своим пользователем, если есть права на запись.

Чем hexedit отличается от hexdump?

Hexdump — это утилита только для просмотра: она выводит дамп файла в терминал. Hexedit — интерактивный редактор с полноэкранным интерфейсом, позволяющий изменять байты прямо в файле.

Безопасно ли открывать системные файлы в hexedit?

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

Подходит ли hexedit для очень больших файлов?

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