Helionix

Как определить настоящий формат архива

Как распознать ZIP, 7Z, RAR, TAR или GZ по сигнатуре и структуре, заметить неверное или двойное расширение, HTML вместо архива и SFX.

Расширение ZIP, RAR, 7Z, TAR или GZ — это подсказка операционной системе, а не надёжное описание содержимого. Файл можно переименовать вручную, получить с обрезанным именем или сохранить после неверной конвертации. Настоящий формат определяют по сигнатуре, структуре заголовков и согласованности служебных полей.

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

Почему расширение бывает неправильным

  • пользователь случайно переименовал файл;
  • почтовый или веб-сервис удалил часть имени;
  • программа экспорта указала неверный MIME-тип;
  • внутри находится другой контейнер или несколько слоёв;
  • это самораспаковывающийся архив с расширением EXE;
  • загрузка прервалась и сохранилась HTML-страница ошибки;
  • злоумышленник маскирует исполняемый файл двойным расширением.

Как определить формат по содержимому

  1. Не запускайте файл и не меняйте расширение наугад.
  2. Сохраните копию и зафиксируйте исходное имя.
  3. Откройте Archive Inspector.
  4. Выберите файл и посмотрите распознанную сигнатуру.
  5. Проверьте, удалось ли разобрать заголовки и каталог.
  6. Сопоставьте структуру с заявленным расширением.
  7. Проверьте вложенные слои, например GZ поверх TAR.
  8. При расхождении уточните источник до извлечения.

Типичные сигнатуры и структуры

ФорматХарактерный признакОсобенность
ZIPСигнатуры локальных заголовков и центрального каталогаЗаписи могут начинаться не строго с первого байта у некоторых вариантов
7ZФиксированная сигнатура и стартовый заголовокМетаданные могут быть сжаты и зашифрованы
RARОтдельные сигнатуры RAR 4.x и RAR 5.xSFX допускает исполняемый префикс перед архивом
GZЗаголовок GZIP и поток DEFLATEЧаще содержит один поток, а не дерево
TARПоследовательность блочных заголовковСигнатура определяется не одним первым байтом

Почему «неизвестный формат» не всегда означает повреждение

Инструмент может не поддерживать редкий метод, новый вариант, самораспаковывающийся префикс или многослойную конструкцию. Кроме того, часть заголовков может быть зашифрована. Сравните результат в актуальной совместимой программе и с официальной документацией формата, но не запускайте подозрительный код.

HTML вместо архива

Иногда ссылка на скачивание возвращает страницу авторизации, сообщение 404 или уведомление об ограничении, сохранённое под именем backup.zip. Такой файл обычно мал, начинается с HTML-разметки и не содержит каталога ZIP. Повторите загрузку после проверки доступа, а не пытайтесь «чинить архив».

Двойные расширения

Имя invoice.pdf.exe может отображаться как PDF, если система скрывает известные расширения. Включите отображение полного имени и ориентируйтесь на сигнатуру. Самораспаковывающийся архив тоже является исполняемым файлом: даже если внутри есть документы, запуск оболочки выполняет код.

Многослойные форматы

.tar.gz содержит внешний GZIP и внутренний TAR. Сначала определяется и проверяется слой GZ, затем поток интерпретируется как TAR. Аналогично архив может лежать внутри ZIP. Инспектор должен показывать уровни отдельно, чтобы пользователь не путал размер и свойства внешнего контейнера с внутренним.

Можно ли просто исправить расширение

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

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

Почему ZIP начинается с EXE?

Это может быть SFX с программой распаковки перед данными либо вообще другой файл. Не запускайте его из неизвестного источника.

Можно ли определить формат на 100% по первым байтам?

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

Файл без расширения можно проверить?

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

Итог

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

Определить формат архива →