утилки.ру

редакторы кода и файлов

Hex-редактор: просмотр и редактирование файлов

Бесплатный hex-редактор в браузере. Просматривайте и редактируйте содержимое файлов в шестнадцатеричном формате без установки программ.

Загруженный файл обрабатывается только в браузере. Сейчас показан пример.
Введите байты от 00 до FF, разделяя их пробелами или переносами строк.
Непечатные байты отображаются точками.
Адрес байта относительно начала файла.
Считает прямо в браузереБез регистрацииНичего не сохраняем

Что такое hex-редактор

Hex-редактор (шестнадцатеричный редактор) — программа, которая отображает содержимое файла не как текст и не как изображение, а как последовательность байтов. Каждый байт записывается двумя шестнадцатеричными цифрами: от 00 до FF, то есть от 0 до 255 в десятичной системе.

В отличие от текстового редактора, который пытается «прочитать» байты через кодировку и показывает мусор вместо управляющих символов, hex-редактор показывает всё без исключения. Это делает его незаменимым инструментом для работы с бинарными данными: файловыми заголовками, исполняемыми файлами, образами дисков, протоколами передачи.

Как устроен интерфейс

Типичный экран hex-редактора делится на три зоны:

ЗонаСодержаниеПример
Смещение (offset)Адрес первого байта строки00000010
Hex-данныеБайты в шестнадцатеричном виде, обычно по 16 в строке4D 5A 90 00 03 00 …
ASCII-представлениеТе же байты, прочитанные как текстMZ.............

Количество столбцов в hex-зоне — степень двойки: чаще всего 8 или 16. При 16 столбцах одна строка занимает ровно один «параграф» (0x10 байт), и адреса идут кратно 16 — удобно для навигации.

Навигация

  • Переход по смещению — вводите hex-адрес, и курсор перемещается к нужному байту.
  • Поиск — ищете hex-последовательность (89 50 4E 47 — сигнатура PNG) или текстовую строку.
  • Закладки — помечаете важные позиции, чтобы быстро возвращаться.

Когда нужен hex-редактор

Проверка сигнатур файлов

Каждый формат начинается с характерной последовательности байтов. Открыв файл в hex-редакторе, можно за секунду определить его тип, даже если расширение изменено или отсутствует:

Сигнатура (hex)Формат
FF D8 FFJPEG
89 50 4E 47 0D 0A 1A 0APNG
50 4B 03 04ZIP (также DOCX, XLSX, JAR)
25 50 44 46PDF
4D 5AEXE / DLL (PE)

Редактирование заголовков

Иногда нужно изменить один-два байта в структуре файла — например, подправить значение в заголовке прошивки или изменить флаг в метаданных. Перекомпилировать весь файл ради этого избыточно: hex-редактор позволяет сделать точечную правку.

Восстановление повреждённых файлов

Если файл повреждён, но большая часть данных цела, hex-редактор позволяет найти испорченный участок — часто это «обнуленный» диапазон или случайно перезаписанный заголовок — и попытаться восстановить структуру вручную.

Анализ протоколов и форматов

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

Сравнение бинарных файлов

Два варианта одного файла с разным поведением? Откройте оба в hex-редакторе с функцией сравнения (diff) — различающиеся байты будут подсвечены.

Практические примеры

Пример 1: определение кодировки

Открываем текстовый файл, где кириллица отображается «кракозябрами». В hex-зоне видим байты D0 9F D1 80 D0 B8. Это последовательность UTF-8: D0 9F = «П», D1 80 = «р», D0 B8 = «и». Значит, файл в UTF-8, а программа-просмотр пытается прочитать его в Windows-1251.

Пример 2: поиск спрятанного текста

В бинарном файле нужно найти email-адрес. Выполняем поиск ASCII-строки @ — редактор покажет все вхождения, и рядом в ASCII-панели будет виден полный адрес.

Пример 3: патч бинарного файла

Нужно заменить строку DEBUG на RELEASE в скомпилированной программе. Обе строки одинаковой длины (5 символов), значит, структура файла не пострадает. Находим 44 45 42 55 47 и заменяем на 52 45 4C 45 41 — ошибка, «RELEASE» длиннее. Вместо этого ищем коротший тег или используем строку той же длины: RELEA — или находим альтернативный подход. Главный принцип: длина данных после правки не должна меняться, если формат не допускает сдвигов.

Шпаргалка по шестнадцатеричной системе

DecHexBinDecHexBin
000000881000
110001991001
22001010A1010
33001111B1011
44010012C1100
55010113D1101
66011014E1110
77011115F1111

Один hex-разряд = 4 бита (ниббл). Два разряда = 1 байт. Поэтому FF = 255, а 0A = 10.

Полезные привычки при работе с hex-данными

  1. Всегда делайте копию перед редактированием. Одно неверное изменение — и файл может стать нечитаемым.
  2. Проверяйте endianness (порядок байтов). Число 0x1234 в little-endian хранится как 34 12, в big-endian — как 12 34. Многие форматы и архитектуры используют разные порядки.
  3. Используйте поиск по шаблонам, а не визуальный просмотр. В файле размером в мегабайты найти нужный байт глазами невозможно.
  4. Помните про выравнивание. Структуры в скомпилированных программах часто содержат padding-байты для выравнивания по границе 4 или 8 байт — они могут выглядеть как 00 и не нести смысловой нагрузки.
  5. Сверяйтесь со спецификацией формата. Не угадывайте назначение байтов — откройте документацию (например, формат PNG чётко описан в спецификации W3C).

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

Чем hex-редактор отличается от обычного текстового?

Текстовый редактор интерпретирует байты как символы по таблице кодировки и скрывает непечатные. Hex-редактор показывает каждый байт как число — два шестнадцатеричных разряда — и позволяет редактировать любые данные, не только текст.

Почему для отображения байтов используют именно шестнадцатеричную систему?

Байт содержит 8 бит и принимает значения от 0 до 255. В hex-системе любое такое значение укладывается ровно в два разряда (00–FF). Двоичная запись слишком длинная (восемь цифр), десятичная — неудобна для битовых операций, поскольку не кратна степени двойки.

Можно ли повредить файл при редактировании в hex-редакторе?

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

Как найти нужный участок данных в большом файле?

Используйте поиск по hex-последовательности (например, «89 50 4E 47» для PNG-заголовка) или по текстовой строке. Продвинутые редакторы поддерживают шаблоны и регулярные выражения, а также переход по известному смещению (offset).

Что такое смещение (offset) в hex-редакторе?

Смещение — это позиция байта относительно начала файла, выраженная в шестнадцатеричном числе. Например, offset 0010 означает 16-й байт от начала. Смещение показывается слева от каждой строки и помогает быстро ориентироваться в данных.

Зачем рядом с hex-данными показывают ASCII-столбец?

ASCII-панель помогает визуально распознать текстовые фрагменты внутри бинарного файла — имена, пути, подписи форматов. Непечатные символы обычно отображаются точкой, чтобы не засорять вывод.