Что такое HEX и ASCII-дескрипторы или как определить формат файла без расширения

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

Логически объединенные последовательности нулей и единиц как раз и составляют то, что мы называем файлами. Но ведь мы знаем и то, что типов файлов очень много. Есть текстовые файлы, мультимедийные, архивные, системные, исполняемые и так далее. Каким же образом операционная система определяет как читать или обрабатывать тот или иной файл? Прикладные программы распознают тип файла по его расширению — набору символов следующих после имени файла и отделенных от него точкой.

Но что будет, если расширение удалить? Всё правильно, операционная система не сможет открыть такой файл, так как не будет знать какую программу для этого использовать. Однако ни логическая структура, ни содержимое переименованного файла от этого не изменится. Вы и сами в этом можете убедиться удалив расширение какого-нибудь файла, а затем попробовав его открыть соответствующей программой. Уверены, с этим у вас проблем не возникнет.

Следовательно, вовсе не расширение определяет тип файла. Тогда что же? Тип файла определяет его формат или иначе спецификация структуры данных. Расширение и формат очень часто путают, хотя на деле это совершенно разные понятия. Тут возникает вполне закономерный вопрос, а как определить формат файла, если его расширение по какой-то причине оказалось утрачено? Оказывается очень просто.

Грубо говоря, все файлы состоят из двух частей. Первая часть это заголовок, содержащий различную метаинформацию включая те данные, которые позволяют прикладным программам этот самый файл идентифицировать. Вторая часть это «тело» файла. Отвечающая за определение типа файла часть заголовка файла именуется дескриптором или описанием. Наиболее распространёнными типами дескрипторов являются HEX и ASCII. Первый тип заголовков можно просмотреть только с помощью специальных утилит — шестнадцатеричных редакторов.

Для просмотра дескрипторов второго типа можно обойтись обычным текстовым редактором, тем же Блокнотом или Notepad++. Однако следует учитывать, что далеко не все последовательности байтов можно перевести в ASCII-код, поэтому для определения формата всё-таки лучше использовать HEX-редакторы. Открытый в HEX-редакторе файл отображается в виде матрицы из последовательности байтов. Каждая ячейка соответствует одному байту. Данные дескриптора содержатся как раз в первых трёх ячейках (реже двух или четырех), расположенных по горизонтали. Представляют они из себя шесть символов в шестнадцатеричном счислении, например 49 44 33 или ff d8 e0.

Открытый в HEX-редакторе файл

Естественно они нуждаются в расшифровке. А расшифровать их можно на специальных сайтах с описаниями форматов. Одним из лучших сайтов, где можно определить формат по HEX-дескриптору является open-file.ru. Есть и другие подобные ресурсы, но они не настолько удобны. На open-file.ru же имеется специальная поисковая форма, куда можно вставить HEX или ASCII дескриптор и пробить его по базе данных. Система быстро найдёт соответствующий формат и предоставит вам его полное описание.

Open-file.ru поиск по HEX

С HEX-редакторами всё более или менее понятно, но как мы сказали для определения ASCII-заголовков также можно использовать редакторы текстовые. Принцип здесь тот же самый, открываем файл Блокнотом или Notepad++, копируем первые символы и вставляем их в поисковое поле того же open-file или другого сайта с поддержкой поиска по заголовкам.

Казалось бы всё очень просто, но есть в деле идентификации форматов и свои сложности. Иногда ASCII-заголовки совпадают с расширением файла (RAR и PDF), но может быть и такое, что заголовок оказывается принадлежащим сразу нескольким форматам. Это можно видеть на примере офисного формата DOCX (PK и 50 4b 03 04). В таких случаях точно определить формат проблематично.

ASCII

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

Файл является размеченным текстовым документом

Так, строка [Content_Types].xml в DOCX явно указывает на то, что исследуемый файл является размеченным текстовым документом.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *