Словарь

Заголовок файла: что это за raw header?

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

raw-header

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

В отчете о метаданных поле Raw Header показывает эти байты в виде шестнадцатеричных чисел. Каждая пара символов, таких как 89 или FF, обозначает 1 байт.

У электронного письма тоже есть заголовок в верхней части, с полями From, To и Subject. В этой статье рассматривается заголовок файла.

Как выглядит это значение

Шестнадцатеричная система (основание 16) записывает каждый байт как 2 символа из цифр от 0 до 9 и букв от A до F. Поэтому байт может иметь любое значение от 00 до FF.

В кодировке символов ASCII значения от 21 до 7E соответствуют буквам, цифрам и знакам препинания, а 20 это пробел. Значения ниже 20 это управляющие коды, а 00 это полностью нулевой символ NUL.

Как прочитать необработанный заголовок файла как текст

Чтобы превратить сырой заголовок в текст, найдите каждый байт в таблице ASCII. Только байты от 20 до 7E обозначают видимый символ ASCII или пробел. Остальные байты не обозначают видимые символы, поэтому обычно можно прочитать только часть заголовка.

  • 25 50 44 46 2D читается как знак процента, буквы PDF и дефис.
  • 89 50 4E 47 содержит буквы PNG во 2 4 байтах.

Типичные значения

Распространенные форматы начинаются с таких сигнатур:

  • Изображение PNG: 89 50 4E 47 0D 0A 1A 0A
  • Изображение JPEG: FF D8 FF, где FF D8 обозначает начало изображения
  • Изображение GIF: 47 49 46 38, затем 39 61 или 37 61 (GIF89a или GIF87a)
  • Документ PDF: 25 50 44 46 2D, затем версия, например 1.7
  • Изображение TIFF, порядок байтов little-endian: 49 49 2A 00 (II, затем число 42)
  • Изображение TIFF, порядок байтов big-endian: 4D 4D 00 2A (MM, затем число 42)
  • Архив ZIP и основанные на ZIP файлы Office, такие как DOCX: 50 4B 03 04 (PK)
  • Аудио MP3 с тегом ID3v2: 49 44 33 (ID3)
  • Аудио WAV: 52 49 46 46 (RIFF), 4 байта, которые меняются, затем 57 41 56 45 (WAVE)
  • Видео MP4: 4 байта размера, затем 66 74 79 70 (ftyp)

В файле TIFF первые 2 байта также задают порядок байтов для чисел в файле. В файле PDF символы после сигнатуры задают версию PDF, но запись дальше по файлу может ее переопределить.

Какие файлы его содержат

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

Почему это важно

Расширение имени файла это только часть имени, и любой может его изменить. Заголовок может показать настоящий тип файла и тип MIME, даже если расширение неверное.

Веб-сервер может не отправить тип MIME, или браузер может посчитать, что полученный тип неверный. Тогда браузер может сравнить первые байты с таблицей известных шаблонов. Команда Unix file ищет магическое число рядом с началом файла.

Заголовок также помогает замечать проблемы. Если файл с именем photo.png не начинается с 89 50 4E 47, он не соответствует формату PNG. Начало файла может быть повреждено, или файл может быть другим типом с неверным расширением.

Заголовок, состоящий только из байтов 00, не соответствует ни одной распространенной сигнатуре. Но файл MP4 может начинаться с 00, потому что маленький размер в его первых 4 байтах начинается с нуля. Когда ничего не совпадает и байты не являются текстом, браузеры рассматривают файл как application/octet-stream.

Мета-ключи