Самораспаковывающийся архив - Self-extracting archive

Самораспаковывающийся архив, созданный с помощью 7-Zip.

Самораспаковывающийся архив ( SFX / SEA ) представляет собой компьютер , исполняемая программа , которая содержит сжатые данные в архивном файле в сочетании с программными инструкциями машинно-исполняемым файлом для извлечения этой информации на совместимую операционную систему и без необходимости подходящего экстрактора быть уже установлен на целевом компьютере. Исполняемая часть файла называется заглушкой .

Самораспаковывающиеся файлы используются для обмена сжатыми файлами с стороной, у которой не обязательно есть программное обеспечение для распаковки файла. Пользователи также могут использовать самораспаковывающееся программное обеспечение для распространения своего программного обеспечения. Например, программа установки WinRAR выполняется с помощью самораспаковывающегося графического модуля RAR с графическим интерфейсом пользователя Default.sfx.

Обзор

Он включает в себя модуль исполняемого файла, модуль, используемый для запуска несжатых файлов из сжатых файлов. Такой сжатый файл не требует внешней программы для распаковки содержимого самораспаковывающегося файла, и он может сам выполнять операцию. Однако файловые архиваторы, такие как WinRAR, могут обрабатывать самораспаковывающиеся файлы как любые другие сжатые файлы. Пользователи, которые не хотят запускать самораспаковывающийся файл, который они получили (например, если он может содержать вирус), могут использовать файловый архиватор для просмотра или распаковки его содержимого без запуска исполняемого кода.

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

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

Например, архив может называться somefiles.zip - его можно открыть в любой операционной системе с помощью подходящего менеджера архивов, который поддерживает как формат файла, так и используемый алгоритм сжатия. В качестве альтернативы его можно преобразовать в somefiles.exe, который будет самораспаковываться на машине под управлением Microsoft Windows без необходимости в подходящем диспетчере архивов. Он не будет самораспаковываться под Linux, но может быть открыт с помощью подходящего менеджера архивов Linux.

Существует несколько функционально эквивалентных, но несовместимых форматов архивных файлов, включая ZIP, RAR, 7z и многие другие. Некоторые программы могут управлять (создавать, извлекать или изменять) только одним типом архива, в то время как многие другие могут обрабатывать несколько форматов. Кроме того, существует различие между используемым форматом файла и алгоритмом сжатия. Один формат файла, например 7z, может поддерживать несколько различных алгоритмов сжатия, включая LZMA , LZMA2 , PPMd и BZip2 . Для того чтобы утилита декомпрессии могла правильно расширять самораспаковывающийся или стандартный архив, она должна уметь работать как с используемым форматом файла, так и с используемым алгоритмом. Точный исполняемый код, помещенный в начало самораспаковывающегося архива, может поэтому варьироваться в зависимости от того, какие параметры использовались для создания архива. Процедуры декомпрессии для архива LZMA 7z будут отличаться от, например, архива LZMA2 7z.

Несколько программ могут создавать самораспаковывающиеся архивы. Для Windows есть WinZip , WinRAR , 7-Zip , WinUHA , KGB Archiver , Make SFX, встроенный мастер IExpress и многие другие, некоторые экспериментальные. Для Macintosh есть StuffIt , The Unarchiver и 7zX. Существуют также программы, которые создают самораспаковывающиеся архивы в Unix в виде сценариев оболочки, которые используют такие программы, как tar и gzip (которые должны присутствовать в целевой системе). Другие (например, 7-Zip или RAR ) могут создавать самораспаковывающиеся архивы в виде обычных исполняемых файлов в формате ELF . Ранним примером самораспаковывающегося архива был архив Unix shar, в котором один или несколько текстовых файлов были объединены в сценарий оболочки, который при выполнении воссоздает исходные файлы.

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

Преимущества

Архивирование файлов вместо их отправки по отдельности позволяет объединить несколько связанных файлов в один ресурс. Он также имеет преимущество уменьшения размера файлов, которые еще не были эффективно сжаты (многие алгоритмы сжатия не могут уменьшить размер уже сжатых данных. Поэтому сжатие обычно уменьшает размер обычного текстового документа, но практически не влияет на изображение JPEG или документ текстового процессора. Это связано с тем, что большинство современных форматов файлов текстовых процессоров теперь уже включают определенный уровень сжатия). Самораспаковывающиеся архивы также расширяют преимущества сжатых архивов для пользователей, у которых на компьютере нет необходимых программ для извлечения их содержимого, но которые работают под управлением совместимой операционной системы. Однако для пользователей, у которых есть программное обеспечение для управления архивами, самораспаковывающийся архив может быть немного более удобным.

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

Недостатки

Недостатком самораспаковывающихся архивов является то, что запуск исполняемых файлов с непроверенной надежностью, например, при отправке в виде вложения электронной почты или скачивании из Интернета, может представлять угрозу безопасности. Исполняемый файл, описываемый как самораспаковывающийся архив, на самом деле может быть вредоносной программой. Одним из способов защиты от этого является открытие его с помощью диспетчера архивов вместо его выполнения (потеря незначительного преимущества самораспаковки); менеджер архива либо сообщит, что файл не является архивом, либо покажет базовые метаданные исполняемого файла - явный признак того, что файл на самом деле не является самораспаковывающимся архивом.

Кроме того, некоторые системы распространения файлов не принимают исполняемые файлы, чтобы предотвратить передачу вредоносных программ. Эти системы запрещают самораспаковывающиеся архивные файлы, если их не переименовывает отправитель, скажем, в somefiles.exx, а затем получатель снова переименовывает их. Однако этот метод постепенно становится менее эффективным, поскольку все большее количество пакетов безопасности и пакетов антивирусного программного обеспечения сканируют заголовки файлов на предмет базового формата, а не полагаются на правильное расширение файла. Эти системы безопасности не будут обмануты неправильным расширением файла и особенно часто используются при анализе вложений электронной почты.

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

Смотрите также

Рекомендации

Внешние ссылки