Сигнатуры файлов
Степень завершённости урока: 50%
При запуске файлов с известными расширениями (например, .txt, .doc, .jpg и др.) операционная система Windows без лишних вопросов их открывает в соответствующих программах. Файлы с расширением .txt обычно открываются в Блокноте, файлы с расширением .doc в Microsoft Word и т.д. Это значит, что каждое расширение ассоциировано с конкретной программой.
Что произойдёт, если убрать расширение? Создадим произвольный PDF-файл, затем удалим расширение. При открытии файла операционная система предложит выбрать программу, с помощью которой попытается открыть файл без расширения.
Я выбрал браузер Vivaldi и файл открылся без каких-либо проблем. Какой из этого напрашивается вывод? Для чтения файлов программам не нужны расширения (хотя с ними открытие файлов на порядок удобнее).
Давайте посмотрим на процесс открытия файлов с другой стороны. Вся информация на жёстком диске компьютера состоит из байтов. Созданный ранее PDF-файл без расширения также состоит из последовательности байтов. Программа читает байты и отображает содержимое на экране компьютера.
Как же браузер Vivaldi понял, что файл без расширения является PDF-файлом? Для этого используется сигнатура - последовательность байтов, уникальная для каждого расширения, расположенная в самом начале (так называемый маркер начала файла). Давайте посмотрим на последовательность байтов в созданном PDF-файле (ссылка на PDF-файл). Для этого воспользуемся бесплатным хекс-редактором (хекс от слова "hexadecimal", шестнадцатеричный) HxD Hex Editor (https://mh-nexus.de/en/hxd/).
Для чистоты эксперимента проверим также последовательность байтов в графическом файле с расширением .jpg (ссылка на JPEG-файл).
Мы собственными глазами убедились, что маркер начала PDF-файла содержит последовательность 25 50, а файл с расширением .jpg - FF D8.
Для каких целей может понадобиться знание сигнатур файлов? Три очевидных применения: восстановление файлов, стеганография и анализ вредоносных файлов.
Страница обновлена 17 ноября 2024 года.