Как читать hex dump
Hex dump показывает файл таким, какой он есть на самом деле: последовательностью байтов. В каждой строке три колонки. Смещение слева — это позиция первого байта строки, в hex. В середине каждый байт показан двумя hex-цифрами. Правая колонка показывает те же байты как символы ASCII, с точкой вместо всего непечатаемого. Формат тот же, что печатают xxd, hexdump -C и od -A x -t x1z.
Сигнатуры (magic bytes)
Большинство форматов файлов начинается с фиксированной сигнатуры — именно так инструменты распознают их независимо от расширения:
| Первые байты | ASCII | Формат |
|---|---|---|
| 89 50 4E 47 0D 0A 1A 0A | .PNG.... | Изображение PNG |
| FF D8 FF | ... | Изображение JPEG |
| 47 49 46 38 | GIF8 | Изображение GIF |
| 25 50 44 46 | ||
| 50 4B 03 04 | PK.. | ZIP (а также DOCX, XLSX, JAR, APK) |
| 1F 8B | .. | gzip |
| 7F 45 4C 46 | .ELF | Исполняемый файл Linux |
| 4D 5A | MZ | Исполняемый файл Windows (EXE, DLL) |
| CA FE BA BE | .... | Java class-файл / fat-бинарник Mach-O |
| EF BB BF | ... | Маркер порядка байтов UTF-8 (текстовый файл) |
| 53 51 4C 69 74 65 | SQLite | База данных SQLite |
Что показывает hex dump
- Концы строк:
0A— Unix (LF),0D 0A— Windows (CRLF). - BOM (
EF BB BF) в начале «простого» текстового файла, который ломает некоторые парсеры. - Невидимые символы: неразрывные пробелы (
C2 A0), zero-width joiner (E2 80 8D), типографские кавычки (E2 80 9C), которые в редакторе выглядят как обычные символы. - Пробелы в конце и заполнение NUL в конце полей.
Вопросы
В чём разница между xxd и hexdump?
Они показывают одну и ту же информацию в немного разной раскладке. xxd группирует байты парами и обратим (xxd -r восстанавливает файл); hexdump -C использует одиночные байты и обрамляет колонку ASCII символами |. Этот просмотрщик следует раскладке hexdump -C.
Почему некоторые символы показаны точками?
Байты вне печатаемого диапазона ASCII (32–126) не имеют единственного видимого символа, поэтому в правой колонке они рисуются точкой. Колонка hex по-прежнему показывает реальное значение.
Можно ли здесь редактировать байты?
Не в этой версии; это просмотрщик. Для редактирования используйте hex-редактор, например hexedit, ImHex или расширение Hex Editor для VS Code.
Есть ли ограничение на размер?
Принимаются файлы до 8 МБ, а отображаются первые 64 КБ, чтобы страница оставалась быстрой. Тип файла определяется по первым байтам.
Мой файл загружается на сервер?
Нет. Браузер читает его локально через File API, а дамп формируется на JavaScript на вашей машине.