Самораспаковывающийся архив это: Самораспаковывающийся архив — это… Что такое Самораспаковывающийся архив?

Содержание

Самораспаковывающийся архив — это… Что такое Самораспаковывающийся архив?

Самораспаковывающийся или самоизвлекающийся архив (англ. self-extracting archive, сокращённо «SFX archive») — файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки. Такие архивы, в отличие от обычных, не требуют отдельной программы для их распаковки (получения исходных файлов, из которых они созданы), если исполняемый код можно выполнить в указанной операционной системе. Это удобно, когда неизвестно, есть ли у пользователя, которому передаётся архив, соответствующая программа распаковки.

Основной способ использования самораспаковывающихся архивов — создание программ для установки ПО без использования систем управления пакетами.

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

Примеры

Примеры программ, способных создавать самораспаковывающиеся архивы:

7-Zip
ARJ
  • Для различных платформ.
p7zip
  • 7zCon.sfx — ненастраиваемый, для указанной пользователем платформы; поддерживает просмотр, автоматическую перезапись файлов, проверку целостности и зашифрованные архивы.
PKZIP
  • Только в зарегистрированных версиях, начиная с 2.70.
RAR и WinRAR
  • Возможно создание настраиваемых самораспаковывающихся RAR (и ZIP в WinRAR) архивов с русским и английским интерфейсом. Настройка архива производится путем задания комментария или в окне «Дополнительные параметры SFX». Возможно изменение значка.
zipSfx
  • Настраиваемый, поддерживает ZIP формат. Настройка производится подготовкой текстового файла и последующей «склейкой» файлов.

SFX Creator

  • Создание настраиваемых самораспаковывающихся архивов для Microsoft Windows с выбором компрессора (ZLIB, BZIP2, LZMA)
  • Русскоязычный интерфейс программы
  • Настройка архива производится через графический интерфейс программы

Данная программа создана исключительно для создания многофункциональных SFX архивов / пакетов инсталляторов и обладает широкими возможностями в плане функционала и возможностей создаваемого архива


Также такие архивы в своих форматах для соответствующих платформ могут создавать StuffIt и WinZip.

Существуют также программы, которые создают архивы в виде сценариев оболочки UNIX. Это часто используется для создания программ установки коммерческого ПО для UNIX-подобных ОС. Примеры: makeself и более старая shar.

Совместимость

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

Самораспаковывающиеся архивы в некоторых форматах — например, RAR и ZIP — могут быть распакованы самостоятельной программой распаковки.

Также можно создать код, который будет поддерживаться без дополнительных программ сразу на нескольких операционных системах — например, DOS и OS/2.

Или код, который будет поддерживаться стандартной поставкой одной ОС, и дополнительными средствами в другой — например, с использованием Python или shell (см. выше).

Архив с кодом под Win32 может потребовать дополнительных действий после распаковки с помощью Wine на UNIX-подобной системе — в частности, установки битов прав доступа.

мошенничество в России

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

См. также

Самораспаковывающиеся архивы

Самораспаковывающиеся архивы

Самораспаковывающиеся архивы (SFX)


Самораспаковывающийся (SFX, от англ. SelF-eXtracting) архив — это архив, к которому присоединён исполняемый модуль. Этот модуль позволяет извлекать файлы простым запуском архива как обычной программы. Таким образом, для извлечения содержимого SFX-архива не требуется дополнительных внешних программ.

Вместе с тем, WinRAR может работать с SFX-архивом точно так же, как и с любым другим, поэтому если вы не хотите запускать SFX-архив (например, когда не можете гарантировать, что в нём нет вирусов), то для просмотра или извлечения его содержимого можно использовать WinRAR.

SFX-архивы, как и любые другие исполняемые файлы, обычно имеют расширение .EXE.

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

Чтобы создать SFX-архив из командной строки, вы можете использовать ключ -sfx при создании нового архива или команду S для преобразования существующего архива в SFX. При создании нового архива в оболочке WinRAR включите параметр «Создать SFX-архив» в диалоге ввода имени и параметров архива.

Если же нужно создать SFX-архив из уже существующего, то войдите в него и нажмите кнопку «SFX».

В комплект поставки WinRAR входит несколько SFX-модулей. Все SFX-модули (они имеют расширение .sfx) должны находиться в той же папке, что и WinRAR. По умолчанию WinRAR всегда использует модуль Default.sfx, но вы можете указать имя другого модуля сразу после ключа -sfx или команды S. Например, для преобразования архива myarchive.rar в SFX с модулем WinCon.SFX выполните следующую команду:

WinRAR SWinCon.SFX myarchive.rar

В оболочке WinRAR нужный SFX-модуль можно выбрать из списка, появляющегося при выполнении команды «Преобразовать архив в SFX».

Здесь вы можете ознакомиться с информацией о следующих SFX-модулях:

GUI SFX-модули RAR и ZIP (Default.SFX и Zip.SFX)

Консольный SFX-модуль RAR (WinCon. SFX)

SFX-модуль RAR для DOS (Dos.SFX)


Самораспаковывающиеся или самоизвлекающиеся архивы — Студопедия

Самораспаковывающийся или самоизвлекающийся архив (англ. self-extracting archive, сокращённо «SFX archive») — файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки. Такие архивы, в отличие от обычных, не требуют отдельной программы для их распаковки (получения исходных файлов, из которых они созданы), если исполняемый код можно выполнить в указанной операционной системе. Это удобно, когда неизвестно, есть ли у пользователя, которому передаётся архив, соответствующая программа распаковки.

Основной способ использования самораспаковывающихся архивов — создание программ для установки ПО без использования систем управления пакетами.

Исполняемый код, присоединённый к архиву, может представлять собой полноценную программу распаковки.

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

Примеры программ, способных создавать самораспаковывающиеся архивы:

7-Zip

Ненастраиваемые 7z SFX архивы для Microsoft Windows.

Существует сторонний настраиваемый модуль — тоже для Windows.


ARJ

Для различных платформ.

p7zip

7zCon.sfx — ненастраиваемый, для указанной пользователем платформы; поддерживает просмотр, автоматическую перезапись файлов, проверку целостности и зашифрованные архивы.

PKZIP

Только в зарегистрированных версиях, начиная с 2.70.

RAR и WinRAR

Возможно создание настраиваемых самораспаковывающихся RAR (и ZIP в WinRAR) архивов с русским и английским интерфейсом. Настройка архива производится путем задания комментария или в окне «Дополнительные параметры SFX». Возможно изменение значка.

zipSfx

Настраиваемый, поддерживает ZIP формат. Настройка производится подготовкой текстового файла и последующей «склейкой» файлов.

SFX Creator

Создание настраиваемых самораспаковывающихся архивов для Microsoft Windows с выбором компрессора (ZLIB, BZIP2, LZMA)

Русскоязычный интерфейс программы

Настройка архива производится через графический интерфейс программы

Данная программа создана исключительно для создания многофункциональных SFX архивов / пакетов инсталляторов и обладает широкими возможностями в плане функционала и возможностей создаваемого архива

CAB

Существует малоизвестная утилита IExpress, входящая в состав Windows (начиная с Windows XP), позволяющая создавать в режиме мастера CAB-архивы, в том числе настраиваемые самораспаковывающиеся. Для запуска в окне «Пуск»→»Выполнить…» введите iexpress.exe и нажмите «OK».[1][2]

Также такие архивы в своих форматах для соответствующих платформ могут создавать StuffIt и WinZip.

Существуют также программы, которые создают архивы в виде сценариев оболочки UNIX. Это часто используется для создания программ установки коммерческого ПО для UNIX-подобных ОС. Примеры: makeself и более старая shar.


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

Самораспаковывающиеся архивы в некоторых форматах — например, RAR и ZIP — могут быть распакованы самостоятельной программой распаковки.

СОДЕРЖАНИЕ РАБОТЫ:

Задание 1. Отработайте технологию архивации в форматах: RAR и ZIP.

Задание 2. создайте SFX-архив с помощью встроенного упаковщика в файловом менеджере Total Commander

Самораспаковывающийся архив (SFX или Self Extracting) – это такой архив, для извлечения, или распаковки которого не требуется специальной программы-архиватора, типа WinRar, HaoZip, 7-Zip и других. Такой архив занимает больше места на диске, чем, если бы для сжатия этих же данных был применен другой метод сжатия. Обуславливается это тем, что помимо сжатых данных он содержит дополнительную информацию о том, как его распаковать. Основным достоинством SFX-архива является то, что его содержимое можно посмотреть на любом компьютере. Основное назначение самораспаковывающихся архивов – создание их для установки специального программного обеспечения.


У многих компьютерных пользователей сегодня все чаще возникает вопрос – как самостоятельно создать самораспаковывающийся архив?Сразу отметим: для этого нужно немногое – достаточно при создании архива в диалоговом окне архиватора отметить опцию SFX-архив, то есть «самораспаковывающийся архив».

Примет создания SFX-архива с помощью встроенного упаковщика в файловом менеджере Total Commander:

Открыть программу Total Commander. В одной панели открыть папку, в которую будет помещен архив. В другой панели выделить файлы, которые необходимо упаковать. В строке меню выбрать команду Файл – Упаковать. В окне «Упаковка файлов» поставить галочку напротив опции «Самораспаковывающийся архив – Создание SFX-архива в программе Total Commander. Создание SFX-архіва в программе Total Commander готово.

Задание 3.Создайте самораспаковывающийся архив средствами программы-упаковщика WinRAR.

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

1. Добавление файла к архиву в программе WinRAR. Запустить программу WinRAR, в рабочей области окна выбрать файлы для упаковки, нажать на кнопку «Добавить».

2. Создание самораспаковывающегося архива в программе WinRAR. В открывшемся окне «Имя и параметры архива» поставить галочку в «Параметрах архивации» напротив опции «Создать SFX-архив».

3. Указание места на диске, куда поместить созданный архив. Не забудьте указать путь, куда поместить созданный архив, нажав на кнопку «Обзор», которая располагается над полем «Имя архива».

Кроме того, компьютерным пользователям не помешает знать, как происходит разбиение архива на тома и задание размера тома. Бывает необходимость получить из исходного файла или группы файлов не один архив, а несколько. То ли для удобства переноса информации на съемных носителях (если недостаточно места на одном носителе), то ли для пересылки по электронной почте, которая на данный момент имеет ограничение объема вложенных файлов до 20 Мбайт, но это может быть востребовано пользователем. Архив, состоящий из нескольких файлов-архивов, называется многотомным архивом.

Размер каждого тома можно указать при упаковке, причем размеры томов могут быть как одинаковыми, так и разными.

Пример создания многотомного архива с помощью программы WinRAR:

Создание самораспаковывающегося архива в Linux

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

Однако у самораспаковывающихся архивов есть и другое применение, а именно, разрешение распаковки файлов без необходимости иметь дело со сложными инструментами, такими как Tar, Zip и другие. В этой инструкции я покажу вам, как создать самораспаковывающийся архив в Linux. Мы также рассмотрим, как зашифровать самораспаковывающиися архив для дополнительной безопасности.

Как создать самораспаковывающийся архив в Linux

Первое, что надо сделать, это установить инструмент Shar в Linux. Несмотря на популярность Shar, он не предустановлен в дистрибутивах Linux. Чтобы начать установку, откройте терминал, нажав клавиши Ctrl + Alt + T или Ctrl + Shift + T на клавиатуре. Затем следуйте инструкциям по установке.

Установка Shar

РЕКОМЕНДУЕМ:
Как защититься от руткитов в Linux

Ubuntu

В Ubuntu Linux вы можете установить Shar с помощью следующей команды Apt:

sudo apt install sharutils

Debian

В Debian установить Shar можно с помощью команды Apt-get:

sudo apt-get install sharutils

Arch Linux

Хотите, чтобы Shar был запущен в Arch Linux? Воспользуйтесь командой Pacman:

Fedora

В Fedora Linux установите Shar с помощью следующей команды Dnf:

sudo dnf install sharutils

OpenSUSE

В OpenSUSE установите Shar командой Zypper:

sudo zypper install sharutils

Создание архива Shar

Поскольку Shar — это утилита только для командной строки, чтобы создать свой архив, откройте окно терминала. Затем следуйте пошаговой инструкции.

Шаг 1: Используйте команду ls для переход в домашний каталог.

Шаг 2: С помощью команды ls найдите папку содержимое которой необходимо сжать. Затем зайдите в папку с помощью команды CD. Например, если вы хотите сжать все файлы документов внутри каталога «Документы», вы должны ввести cd Documents.

cd название-папки-в-домашнем-каталоге

Шаг 3: Попав внутрь папки, выполните команду shar, чтобы добавить файлы в новый архив .shar.

Имейте в виду, что при запуске команды shar в архив добавляется абсолютно все. Если в папке есть элементы, которые вы не хотите добавлять в архив, удалите / перенесите их, прежде чем выполнять команду.

shar . /* > ../мой-shar-архив.shar

Шаг 4: После выполнения команды shar на шаге 3 приложение Shar начнет создавать самораспаковывающийся архив. Когда процесс будет завершен, вы увидите, что мой-shar-архив.shar появится в вашем домашнем каталоге (~).

Шаг 5: После создания нового самораспаковывающегося архива Shar, необходимо обновить права доступа к файлу.

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

sudo chmod +x мой-shar-архив.shar

 

Сообщите пользователям, которым вы послали файл, что им необходимо изменить разрешения мой-shar-архив. shar в своей системе Linux с помощью команды chmod.

Использование самораспаковывающегося архива в Linux

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

./мой-shar-архив.shar

Содержимое мой-shar-архив.shar будет извлечено.

Шифрование самораспаковывающегося архива

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

Шаг 1: Убедитесь, что на вашем компьютере установлена ​​программа GPG, выполнив команду gpg —help в терминале. Если GPG установлен, вы увидите страницу справки GPG.

Шаг 2: Зашифруйте самораспаковывающийся архив с помощью команды gpg ниже. Обязательно используйте надежный пароль.

gpg -c my-shar-archive. shar

После шифрования выходной файл будет мой-shar-архив.shar.gpg.

Шаг 3: Удалите незашифрованный архив Shar с помощью rm.

Шаг 4: Отправьте мой-shar-архив.shar.gpg пользователям.

Чтобы распаковать архив нужно всего лишь запустить файл.

gpg мой-shar-архив.shar.gpg

./мой-shar-архив.shar

РЕКОМЕНДУЕМ:
Как конвертировать видео в MP3 на Linux

На этом все. Теперь вы знаете, как создать самораспаковывающийся архив в Linux (Ubuntu, Debian, Fedora, Arch Linux и т.д.).

Загрузка…

Чем отличается самораспаковывающийся архив от обычного

Самораспаковывающийся или самоизвлекающийся архив (англ. self-extracting archive , сокращённо «SFX archive») — файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки. Такие архивы, в отличие от обычных, не требуют отдельной программы для их распаковки (получения исходных файлов, из которых они созданы), если исполняемый код можно выполнить в указанной операционной системе. Это удобно, когда неизвестно, есть ли у пользователя, которому передаётся архив, соответствующая программа распаковки.

Основной способ использования самораспаковывающихся архивов — создание программ для установки ПО без использования систем управления пакетами.

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

Содержание

Примеры [ править | править код ]

Примеры программ, способных создавать самораспаковывающиеся архивы:

7-Zip

  • Ненастраиваемые SFX-архивы 7z для Microsoft Windows.
  • Существует сторонний настраиваемый модуль — тоже для Windows.

ARJ

  • Для различных платформ.

p7zip

  • 7zCon.sfx — ненастраиваемый, для указанной пользователем платформы; поддерживает просмотр, автоматическую перезапись файлов, проверку целостности и зашифрованные архивы.

PKZIP

  • Только в зарегистрированных версиях, начиная с 2.70.

RAR и WinRAR

  • Возможно создание настраиваемых самораспаковывающихся архивов RAR (и ZIP в WinRAR) с русским и английским интерфейсом. Настройка архива производится путём задания комментария или в окне «Дополнительные параметры SFX». Возможно изменение значка.

zipSfx

  • Настраиваемый, поддерживает формат ZIP. Настройка производится подготовкой текстового файла и последующей «склейкой» файлов.

SFX Creator

  • Создание настраиваемых самораспаковывающихся архивов для Microsoft Windows с выбором компрессора (ZLIB, BZIP2, LZMA).
  • Настройка архива производится через графический интерфейс программы.

Программа предназначена исключительно для создания многофункциональных SFX-архивов/пакетов инсталляторов и обладает широкими возможностями.

CAB

  • Существует малоизвестная утилита IExpress, входящая в состав Windows (начиная с Windows XP) и позволяющая создавать в режиме мастераCAB-архивы, в том числе настраиваемые самораспаковывающиеся. Для запуска в окне «Пуск»→«Выполнить…» введите iexpress.exe и нажмите OK. [1][2]

Также такие архивы в своих форматах для соответствующих платформ могут создавать StuffIt и WinZip.

Кроме того, существуют программы, создающие архивы в виде сценариев оболочки UNIX. Это часто используется для создания программ установки коммерческого ПО для UNIX-подобных ОС. Примеры: makeself и более старая shar.

Совместимость [ править | править код ]

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

Самораспаковывающиеся архивы в некоторых форматах (например RAR и ZIP) могут быть распакованы как обычные (не SFX) с помощью самостоятельной программы распаковки.

Имеется возможность создать код, который будет поддерживаться без дополнительных программ сразу несколькими операционными системами (например DOS и OS/2), а также стандартными средствами в одной ОС и дополнительными средствами в другой (например с использованием Python или shell).

Архив с кодом под Win32 может потребовать дополнительных действий после распаковки с помощью Wine на UNIX-подобной системе — в частности, установки битов прав доступа.

Самораспаковывающийся или самоизвлекающийся архив (англ. self-extracting archive, сокращённо «SFX archive») — файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки. Такие архивы, в отличие от обычных, не требуют отдельной программы для их распаковки (получения исходных файлов, из которых они созданы), если исполняемый код можно выполнить в указанной операционной системе. Это удобно, когда неизвестно, есть ли у пользователя, которому передаётся архив, соответствующая программа распаковки.

Основной способ использования самораспаковывающихся архивов — создание программ для установки ПО без использования систем управления пакетами.

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

Примеры программ, способных создавать самораспаковывающиеся архивы:

Ненастраиваемые 7z SFX архивы для Microsoft Windows.

Существует сторонний настраиваемый модуль — тоже для Windows.

Для различных платформ.

7zCon.sfx — ненастраиваемый, для указанной пользователем платформы; поддерживает просмотр, автоматическую перезапись файлов, проверку целостности и зашифрованные архивы.

Только в зарегистрированных версиях, начиная с 2. 70.

Возможно создание настраиваемых самораспаковывающихся RAR (и ZIP в WinRAR) архивов с русским и английским интерфейсом. Настройка архива производится путем задания комментария или в окне «Дополнительные параметры SFX». Возможно изменение значка.

Настраиваемый, поддерживает ZIP формат. Настройка производится подготовкой текстового файла и последующей «склейкой» файлов.

Создание настраиваемых самораспаковывающихся архивов для Microsoft Windows с выбором компрессора (ZLIB, BZIP2, LZMA)

Русскоязычный интерфейс программы

Настройка архива производится через графический интерфейс программы

Данная программа создана исключительно для создания многофункциональных SFX архивов / пакетов инсталляторов и обладает широкими возможностями в плане функционала и возможностей создаваемого архива

Существует малоизвестная утилита IExpress, входящая в состав Windows (начиная с Windows XP), позволяющая создавать в режиме мастера CAB-архивы, в том числе настраиваемые самораспаковывающиеся. Для запуска в окне «Пуск»→»Выполнить…» введите iexpress.exe и нажмите «OK».[1][2]

Также такие архивы в своих форматах для соответствующих платформ могут создавать StuffIt и WinZip.

Существуют также программы, которые создают архивы в виде сценариев оболочки UNIX. Это часто используется для создания программ установки коммерческого ПО для UNIX-подобных ОС. Примеры: makeself и более старая shar.

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

Самораспаковывающиеся архивы в некоторых форматах — например, RAR и ZIP — могут быть распакованы самостоятельной программой распаковки.

СОДЕРЖАНИЕ РАБОТЫ:

Задание 1. Отработайте технологию архивации в форматах: RAR и ZIP.

Задание 2. создайте SFX-архив с помощью встроенного упаковщика в файловом менеджере Total Commander

Самораспаковывающийся архив (SFX или Self Extracting) – это такой архив, для извлечения, или распаковки которого не требуется специальной программы-архиватора, типа WinRar, HaoZip, 7-Zip и других. Такой архив занимает больше места на диске, чем, если бы для сжатия этих же данных был применен другой метод сжатия. Обуславливается это тем, что помимо сжатых данных он содержит дополнительную информацию о том, как его распаковать. Основным достоинством SFX-архива является то, что его содержимое можно посмотреть на любом компьютере. Основное назначение самораспаковывающихся архивов – создание их для установки специального программного обеспечения.

У многих компьютерных пользователей сегодня все чаще возникает вопрос – как самостоятельно создать самораспаковывающийся архив?Сразу отметим: для этого нужно немногое – достаточно при создании архива в диалоговом окне архиватора отметить опцию SFX-архив, то есть «самораспаковывающийся архив».

Примет создания SFX-архива с помощью встроенного упаковщика в файловом менеджере Total Commander:

Открыть программу Total Commander. В одной панели открыть папку, в которую будет помещен архив. В другой панели выделить файлы, которые необходимо упаковать. В строке меню выбрать команду Файл – Упаковать. В окне «Упаковка файлов» поставить галочку напротив опции «Самораспаковывающийся архив – Создание SFX-архива в программе Total Commander. Создание SFX-архіва в программе Total Commander готово.

Задание 3.Создайте самораспаковывающийся архив средствами программы-упаковщика WinRAR.

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

1. Добавление файла к архиву в программе WinRAR. Запустить программу WinRAR, в рабочей области окна выбрать файлы для упаковки, нажать на кнопку «Добавить».

2. Создание самораспаковывающегося архива в программе WinRAR. В открывшемся окне «Имя и параметры архива» поставить галочку в «Параметрах архивации» напротив опции «Создать SFX-архив».

3. Указание места на диске, куда поместить созданный архив. Не забудьте указать путь, куда поместить созданный архив, нажав на кнопку «Обзор», которая располагается над полем «Имя архива».

Кроме того, компьютерным пользователям не помешает знать, как происходит разбиение архива на тома и задание размера тома. Бывает необходимость получить из исходного файла или группы файлов не один архив, а несколько. То ли для удобства переноса информации на съемных носителях (если недостаточно места на одном носителе), то ли для пересылки по электронной почте, которая на данный момент имеет ограничение объема вложенных файлов до 20 Мбайт, но это может быть востребовано пользователем. Архив, состоящий из нескольких файлов-архивов, называется многотомным архивом.

Размер каждого тома можно указать при упаковке, причем размеры томов могут быть как одинаковыми, так и разными.

Пример создания многотомного архива с помощью программы WinRAR:

Не нашли то, что искали? Воспользуйтесь поиском:

SFX-архив — См. SFX (значения) Самораспаковывающийся архив (англ. self extracting archive, сокращённо «SFX archive») файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки. Такие архивы, в отличие от обычных, не требуют … Википедия

Многотомный архив — Многотомный архив архив компьютерных программ и данных, разбитый на несколько частей (томов). В утилитах сжатия с возможностью задания объёма томов есть много преимуществ. Во первых, такое позволяет человеку скачать файл по частям в удобное … Википедия

Непрерывный архив — (англ. sol >Википедия

Патч — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете отредактиро … Википедия

Патч (программный) — Заплатка, или патч (англ. patch /pætʃ/ заплатка) автоматизированное отдельно поставляемое программное средство, используемое для устранения проблем в программном обеспечении или изменения его функционала, а также сам процесс установки патча (… … Википедия

SFX — См. SFX (значения) Самораспаковывающийся архив (англ. self extracting archive, сокращённо «SFX archive») файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки. Такие архивы, в отличие от обычных, не требуют … Википедия

Классификация параллельных вычислительных систем — Содержание 1 Классификация параллельных архитектур по Флинну 2 Суперскалярные и VLIW машины … Википедия

SFX (значения) — англ. SFX (/ɛs ɛf ɛks/) может означать: Спецэффекты (англ. Special effects /ˈspeʃəl ɪˈfɛkts/) Звуковые эффекты (например, семплы (англ. sample /ˈsɑ:mpl/)) (англ. sound effects /saʊnd ɪˈfɛkts/) Самораспаковывающийся архив (англ … Википедия

WATIR — (англ. Web Application Testing in Ruby) бесплатная библиотека для интерпретатора Ruby с открытым кодом, позволяющая тестировать веб приложения. Библиотека WATIR понимает структуру веб страниц и позволяет получить доступ к ее элементам … Википедия

Sfx — англ. SFX (/ɛs ɛf ɛks/) может означать: Спецэффекты (англ. Special effects /ˈspeʃəl ɪˈfɛkts/) Звуковые эффекты (например, семплы (англ. sample /ˈsɑ:mpl/)) (англ. sound effects /saʊnd ɪˈfɛkts/) Самораспаковывающийся архив (англ. self extracting… … Википедия

Создание sfx архива winrar подробная инструкция. Самораспаковывающийся архив

Е ще один, пожалуй, самый уникальный, тип архивов – самораспаковывающиеся архивы с расширениями .exe . Их уникальность необычна: sfx -архив содержит в себе и архивную часть, и специальный исполняемый код. Поэтому, он извлекается самостоятельно, и для его распаковки уже никакой архиватор, вообще, не нужен. Согласитесь, когда нет уверенности, что в нужный момент архиватор WinRAR окажется под рукой, такой архив – просто находка!

Зачем нужны sfx-архивы

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

Создать sfx-архив в WinRAR — просто, как дважды два

Классический способ запуска программы WinRAR, — использование меню «Пуск» . Но все же, большее количество пользователей предпочитает делать это в два клика мышкой по иконке архиватора на рабочем столе или из контекстного меню.

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

Дальнейшая процедура создания такого типа архивов в WinRAR ничем принципиальным не отличается, разнятся лишь некоторые параметры:
Прежде всего, указывается имя архива, например, sochi2014 . Хорошо, когда оно осмысленное, связанно с содержанием архива и состоит из цифр и латинских букв. Согласитесь, что многое сию минуту представляется абсолютно понятным, только вот уже через несколько дней легко забывается, так, что и комментарии не всегда помогают вспомнить.
Во-вторых, уточняем его расширение: rar , zip либо rar5 .
В-третьих, выставляем флаг рядом с настройкой «Создать SFXархив» .
В-четвертых, и в-пятых, в выпадающих списках определяем метод сжатия.

И уточняем оптимальный размер словаря.

А при необходимости ограничить доступ к архиву, заходим на вкладку «Установить пароль» , чтобы указать его или даже зашифровать сам архив.

Секреты конфигураций SFX-архивов

Теперь пора заняться конфигурацией параметров sfx -архива. Собственно для этого и существует на вкладке «Дополнительно» раздел «Параметры SFX» .

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

Конечно, это не всегда возможно, так, что если явного указания не будет, то перед извлечением sfx -архива его предложит вести инсталлятор.

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

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

Весьма полезной бывает также вкладка «Текст и графика» , здесь удобно формировать заголовок и текст окна SFX , кроме того, выбрать логотип и значок sfx -архива.

В общем, на вкладках можно найти еще немало полезных свойств и настроек архивирования, побродить по ним и немного поэкспериментировать Вы сможете чуть позже и сами. Когда все настройки определены, еще раз проверяем все ли сделано и нажимаем «ОК» . Через несколько коротких мгновений Вы получите необходимый sfx-архив .

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

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

Основной способ использования самораспаковывающихся архивов — создание программ для установки ПО без использования систем управления пакетами .

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

Примеры

Примеры программ, способных создавать самораспаковывающиеся архивы:

7-Zip
  • Ненастраиваемые 7z SFX архивы для Microsoft Windows .
  • Существует сторонний настраиваемый модуль — тоже для Windows.
ARJ
  • Для различных платформ.
p7zip
  • 7zCon.sfx — ненастраиваемый, для указанной пользователем платформы; поддерживает просмотр, автоматическую перезапись файлов, проверку целостности и зашифрованные архивы.
PKZIP
  • Только в зарегистрированных версиях, начиная с 2.70.
RAR и WinRAR
  • Возможно создание настраиваемых самораспаковывающихся RAR (и ZIP в WinRAR) архивов с русским и английским интерфейсом. Настройка архива производится путем задания комментария или в окне «Дополнительные параметры SFX». Возможно изменение значка.
zipSfx
  • Настраиваемый, поддерживает ZIP формат. Настройка производится подготовкой текстового файла и последующей «склейкой» файлов.
  • Создание настраиваемых самораспаковывающихся архивов для Microsoft Windows с выбором компрессора (ZLIB , BZIP2 , LZMA)
  • Русскоязычный интерфейс программы
  • Настройка архива производится через графический интерфейс программы

Данная программа создана исключительно для создания многофункциональных SFX архивов / пакетов инсталляторов и обладает широкими возможностями в плане функционала и возможностей создаваемого архива

Также такие архивы в своих форматах для соответствующих платформ могут создавать StuffIt и WinZip .

Существуют также программы, которые создают архивы в виде сценариев оболочки UNIX . Это часто используется для создания программ установки коммерческого ПО для UNIX-подобных ОС . Примеры: makeself и более старая shar.

Совместимость

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

Самораспаковывающиеся архивы в некоторых форматах — например, RAR и ZIP — могут быть распакованы самостоятельной программой распаковки.

Также можно создать код, который будет поддерживаться без дополнительных программ сразу на нескольких операционных системах — например, DOS и OS/2 .

Или код, который будет поддерживаться стандартной поставкой одной ОС, и дополнительными средствами в другой — например, с использованием Python или shell (см. выше).

Архив с кодом под Win32 может потребовать дополнительных действий после распаковки с помощью Wine на UNIX -подобной системе — в частности, установки битов прав доступа.

мошенничество в России

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

См. также

Wikimedia Foundation . 2010 .

Смотреть что такое «Самораспаковывающийся архив» в других словарях:

    Многотомный архив архив компьютерных программ и данных, разбитый на несколько частей (томов). В утилитах сжатия с возможностью задания объёма томов есть много преимуществ. Во первых, такое позволяет человеку скачать файл по частям в удобное … Википедия

    — (англ. solid archive) архив, упакованный таким образом, что все сжимаемые файлы рассматриваются как один непрерывный поток данных. При упаковке каждого файла (кроме первого) используется информация, содержащаяся в предыдущих файлах. К… … Википедия

    В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете отредактиро … Википедия

    Заплатка, или патч (англ. patch /pætʃ/ заплатка) автоматизированное отдельно поставляемое программное средство, используемое для устранения проблем в программном обеспечении или изменения его функционала, а также сам процесс установки патча (… … Википедия

    См. SFX (значения) Самораспаковывающийся архив (англ. self extracting archive, сокращённо «SFX archive») файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки. Такие архивы, в отличие от обычных, не требуют … Википедия

    Содержание 1 Классификация параллельных архитектур по Флинну 2 Суперскалярные и VLIW машины … Википедия

    Англ. SFX (/ɛs ɛf ɛks/) может означать: Спецэффекты (англ. Special effects /ˈspeʃəl ɪˈfɛkts/) Звуковые эффекты (например, семплы (англ. sample /ˈsɑ:mpl/)) (англ. sound effects /saʊnd ɪˈfɛkts/) Самораспаковывающийся архив (англ … Википедия

Область применения SFX не ограничивается приложениями, не требующими установки. Можно без проблем упаковать приложение, запакованное одним из распространенных инсталляторов и сконфигурировать SFX таким образом, что после распаковки будет запущена установка приложения с нужными ключами. Еще одним преимуществом SFX архивов является то, что в некоторых случаях они дают возможность не просто автоматизировать, но и полностью скрыть процесс и прогресс инсталляции от конечного пользователя. Для примера рассматривается упаковка Adobe Reader 7.0. Несмотря на то, что с относительно недавних пор приложение можно устанавливать без особых проблем, только SFX позволяет установить приложение абсолютно незаметно.
Подготовка к созданию SFX

Вне зависимости от того, что вы будете использовать для создания SFX, различий в подготовке не будет. Если вы просто хотите запаковать папку с файлами, то никакой подготовки не требуется. А вот приложения иногда приходится распаковывать. В случае с Adobe Reader 7 используется Install Shield с Basic MSI, причем все это еще и запаковано в некий FEAD Optimizer. Надо запустить исполняемый файл Adobe, дождаться пока FEAD Optimizer закончит распаковку и найти папку с файлом Adobe Reader 7.0.msi (она может быть в %ProgramFiles%\Adobe, например). Теперь нужно запустить файл setup.exe с ключом /a для создания административной установки. В появившемся диалоговом окне нужно указать папку, в которой по окончании будут находиться все нужные нам файлы. Теперь можно переименовать Adobe Reader 7.0.msi в, скажем, Adobe7.msi и приступать к упаковке в SFX архив. Мы рассмотрим создание SFX архивов при помощи

WinRAR

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

Итак, запустив архиватор, мы переходим в папку, в которой находится административная установка Adobe. Выделяем все файлы

и жмем Добавить

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

На вкладке Общие указываем команду для распаковки

и переходим на вкладку Режимы :

Здесь мы указываем распаковку во временную папку (что повлечет за собой автоматическое удаление распакованных файлов по окончании установки), скрытый режим и перезапись всех файлов.

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

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

Вот и все. Теперь осталось нажать ОК пару раз и спустя некоторое время у нас будет SFX, который совершенно незаметно установит Acrobat Reader.

Преимущества: абсолютно незаметная (silent) установка, возможность распаковки файлов в заданную папку, возможность добавления элементов в меню Пуск и ярлыков на рабочий стол, выбор иконки для архива.
Недостатки: стоит $30.

7-Zip

7-Zip — бесплатный архиватор, распространяющийся по лицензии GNU LGPL. Если вы с ним не знакомы, то более подробную информацию вы найдете на сайте 7-Zip. С его помощью можно создавать бесключевые SFX, хотя процесс их создания несколько длиннее, чем у WinRAR.

Для начала нужно запаковать содержимое нашей папке в 7-Zip архив. Сделать это можно через 7-Zip файл-менеджер. Запустив его, мы переходим в папку, в которой находится административная установка Adobe. В эту же папку нужно положить файл StartX.exe (его назначение я объясню ниже). Выделяем все файлы

и жмем Добавить

Именуем архив по желанию (скажем, Adobe7.7z ), выбираем формат 7-Zip, максимальный уровень сжатия и жмем ОК. На выходе получаем файл Adobe7.7z , из которого нам предстоит сделать SFX.

Теперь нужно создать конфигурационный файл для SFX. Его можно сделать в Блокноте. Единственное, но обязательное условие — он должен быть в кодировке UTF-8. В нашем случае он будет выглядеть так:

;[email protected]@!UTF-8!

;[email protected]@!

Выглядит сложно, но сейчас все прояснится. Первая и последние строки просто обозначают начало и конец конфигурационного файла. Средняя строка — команда, которая будет выполнена после распаковки архива. Непосредственно команда заключается в кавычки и помещается после RunProgram=. Утилита StartX.exe является эквивалентом консольной команды START и поддерживает такие же ключи. Ее наличие необходимо для установки MSI пакета, извлеченного из 7-Zip SFX. Если попытаться сделать нечто вроде RunProgram=»Adobe7.msi /qn», то запуск завершится ошибкой. Два обратных слэша (\) просто предваряют кавычки, находящиеся внутри команды.

Сохраняем конфигурационный файл с именем config.txt в ту же папку, где Adobe7.7z , и переходим к завершающей стадии создания SFX.

Из инсталляционной папки 7-Zip нужно взять SFX модуль 7zS.sfx и скопировать его к файлам Adobe7.7z и config.txt . Можно сжать модуль утилитой . Это уменьшит размер модуля примерно со 131 кб до 58 кб. Делается это командой

upx —best 7zS.sfx

Достаточно это сделать один раз, и можно использовать сжатый модуль в дальнейшем.

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

Теперь, когда в одной папке собраны все три файла (adobe7.7z , config.txt и 7zS.sfx ), нужно из командной строки выполнить следующую команду

COPY /b 7zs.sfx + config.txt + adobe7.7z adobe7.exe

Через мгновение в папке появится файл adobe7.exe . Это и есть наш SFX. Его запуск инициализирует распаковку архива во временную папку, запуск команды из конфигурационного файла, и удаление распакованных файлов по окончании установки.

Модифицированный SFX модуль для 7-Zip

Оригинальный 7-Zip SFX модуль не дает возможности сделать распаковку абсолютно незаметной. В процессе распаковки пользователь видит вот такое диалоговое окно

и даже может прервать установку нажатием на кнопку Cancel. Этой проблемы можно избежать, воспользовавшись SFX модулем, который модифицировал участник конференции OSZone Олег Щербаков aka Oleg_Sch . Вы можете загрузить модифицированный модуль со страницы автора , где вы также найдете справку и исходный код. В справке описаны все новые функции и примеры использования (там много интересного). Так что на этой странице я ограничусь лишь примером конфигурационного файла, который полностью скроет диалоговое окно распаковки.

;[email protected]@!UTF-8!
RunProgram=»StartX.exe /WAIT \»msiexec /i Adobe7.msi /qn\»»
GUIMode=»2″
;[email protected]@!

Вообще-то, для модифицированного модуля утилита StartX не нужна, и можно было бы обойтись RunProgram=»Adobe7.msi /qn» .

Любопытно, что в данном случае 7-Zip продемонстрировал лучшее сжатие, чем WinRAR. Размер 7-Zip SFX (даже с утилитой StartX.exe) оказался 20893 кб против 23825 кб у WinRAR SFX. Oднако, недостатком родного SFX модуля 7-Zip является невозможность сконфигурировать бесключевую распаковку SFX в заданную папку. Модифицированный модуль Олега, позволяет указать папку распаковки в конфигурационном файле и избавляет 7-Zip от данного недостатка.

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

Занимают намного меньше места. Как следствие, архивы быстрее передаются по сети. В последнее время популярностью пользуется так называемый SFX-архив, который обладает способностью к самораспаковке. Интересна эта функция тем, может быть распаковован на любом компьютере, даже при отсутствии программы архиватора. Достигается это за счёт включения в архив модуля самораспаковки, который лишь незначительно увеличивает размер архива в целом.

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

Такой способ распространения файлов подходит для тех, кто не уверен, что получатель разбирается в компьютерах и сможет распаковать посылку самостоятельно. Основное преимущество, которое заставляет использовать SFX-архив — простота. Пользователю не надо устанавливать лишние программы, не требуется никаких дополнительных знаний и навыков. Всё, что требуется от получателя — запустить распаковку и ждать её окончания.

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

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

Подобные архивы применяются для распространения модификаций к играм. Иногда 7z SFX-архивы сбивают пользователей с толку — их принимают за вирусы, файлы игры и просто за лишние файлы. Всё потому, что сейчас встретить такой архив — редкость т. к. на данный момент больше популярен формат *.rar или *.zip.

Где SFX-архив незаменим, так это в Дело в том, что такой архив удобнее, если вы планируете распаковывать его редко и полностью. Антивирус не тратит ресурсы на постоянное сканирование доверенных exe-файлов, а в случае переноса данных или их восстановления вся процедура займёт всего пару кликов.

В заключение хочется подвести итог: данный тип архивов идеален для личного пользования, но крайне нежелателен для распространения файлов в сети. Скачивать неизвестные файлы, способные к самостоятельной распаковке, не рекомендуется. При антивирус не сможет контролировать модуль SFX. Программа получит доступ к системным файлам. Например, безобидная, казалось бы, функция «удалить файлы после распаковки», может быть использована для уничтожения всех данных на диске пользователя.

Нередко при работе над автоматической установкой приложений возникает необходимость создать бесключевой самораспаковывающийся архив (в дальнейшем я буду использовать «SFX», так короче). Как правило, SFX архивы позволяют значительно сэкономить место на CD. Например, если приложение не требует установки, то его можно поместить в $OEM$\Progs и оно будет автоматически скопировано в Program Files. Однако, аналогичной цели можно достичь запаковав приложение в SFX, который распакует содержимое в нужную папку.

Область применения SFX не ограничивается приложениями, не требующими установки. Можно без проблем упаковать приложение, запакованное одним из распространенных инсталляторов и сконфигурировать SFX таким образом, что после распаковки будет запущена установка приложения с нужными ключами. Еще одним преимуществом SFX архивов является то, что в некоторых случаях они дают возможность не просто автоматизировать, но и полностью скрыть процесс и прогресс инсталляции от конечного пользователя. Для примера рассматривается упаковка Adobe Reader 7.0. Несмотря на то, что с относительно недавних пор приложение можно устанавливать с соответствующими ключами без особых проблем, только SFX позволяет установить приложение абсолютно незаметно.

Подготовка к созданию SFX

Вне зависимости от того, что вы будете использовать для создания SFX, различий в подготовке не будет. Если вы просто хотите запаковать папку с файлами, то никакой подготовки не требуется. А вот приложения иногда приходится распаковывать. В случае с Adobe Reader 7 используется Install Shield с Basic MSI, причем все это еще и запаковано в некий FEAD Optimizer. Надо запустить исполняемый файл Adobe, дождаться пока FEAD Optimizer закончит распаковку и найти папку с файлом Adobe Reader 7.0.msi (она может быть в %ProgramFiles%\Adobe, например). Теперь нужно запустить файл setup.exe с ключом /a для создания административной установки. В появившемся диалоговом окне нужно указать папку, в которой по окончании будут находиться все нужные нам файлы. Теперь можно переименовать Adobe Reader 7.0.msi в, скажем, Adobe7.msi и приступать к упаковке в SFX архив. Мы рассмотрим создание SFX архивов при помощи

WinRAR

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

Возможности программы SFX Creator:

  • Поддержка всех (ну или практически всех) переменных системных/пользовательских директорий
  • Выбор типа сжатия (LZMA — данный тип компрессии применяется в архиваторе 7-Zip), BZIP2, ZLIB
  • Создание ярлыков для файлов
  • Импорт REG-файлов после распаковки файлов
  • Выполнение приложений до и после распаковки ваших файлов
  • Выполнение операций в реестре (запись/удаление параметров, удаление разделов)
  • Выполнение файловых операций (копирование/удаление файлов, создание/удаление директорий)
  • Возможность создать программу удаления (с удобным добавлением информации в апплет «Установка и удаление программ»)
  • Возможность установить свою иконку на SFX архив
  • Возможность добавить информацию о версии файла
  • Возможность выполнить собственные функции, написанные на языке NSIS перед и после распаковки файлов
  • Возможность перед распаковкой ваших файлов проверить наличие установленного ПО и выполнить определённые действия, если вас не устравивает результат проверки (например если версия ПО ниже необходимой, можно прекратить установку и/или показать сообщение пользователю)
  • Возможность распаковать ваши файлы в каталог, который указан в каком-либо ключе реестра
  • Регистрация библиотек при распаковке файлов (и возможность отменить регистрацию при удалении приложения)
  • Возможность при запуске/завершении показать пользователю информационное сообщение
  • Вы можете создавать распаковщик (практически уже пакет инсталлятора) с графическим интерфейсом. Вам предлагается использовать 2 типа интерфейса на выбор
  • Возможность показа вашего изображения перед запуском процесса распаковки файлов
  • При создании проекта с графическим интерфейсом, вы можете добавить отображение изображения на задний план

PureBasic — Создаем самораспаковывающийся ZIP архив.

PureBasic — Создаем самораспаковывающийся ZIP архив.

Создаем самораспаковывающийся ZIP архив.

 

Что из себя представляет самораспаковывающийся архив? Это файл, объединивший в себе два файла – модуль распаковки и собственно архив. Модуль распаковки является обычным исполняемым файлом и его можно написать почти на любом языке программирования, позволяющем работать с архивами нужного формата, в нашем случае, ZIP. Архив в файле находится сразу же после модуля распаковки, то есть, он дописан в конец исполняемого файла. Это конечно же не единственный способ создания самораспаковывающегося архива, но такой метод используется многими архиваторами, в частности, популярной программой WinRAR и мы не будем изобретать колесо, а используем уже проверенные способы.

Для создания модуля распаковки, будем использовать компилятор PureBasic, бесплатную, демонстрационную версию которого, можно скачать на официальном сайте http://purebasic.com/download.php. Там есть разновидности для нескольких платформ, но нам нужна для Windows x86. Кроме того, понадобится библиотека PureZIP, которая позволяет работать с ZIP архивами. Ее можно скачать на сайте http://gnozal.ucoz.com. К статье приложена библиотека PureZIP для компилятора PureBasic версии 4.51, который использовался при разработке рассматриваемых программ. Библиотека устанавливается с помощью инсталлятора, нужно лишь правильно указать папку установленной средой PureBasic.

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

Он позволяет выбрать место (папку) распаковки файлов, а так же отображает прогресс извлечения текущего файла и прогресс распаковки всего архива. Кроме того, если архив защищен паролем, то появится окно для его ввода. Мы не будем углубляться в создание GUI программы и обработчиков событий, поскольку это выходит за рамки данной статьи, и сразу рассмотрим код распаковки архива в заданную папку — процедуру ExtractArchive() 

Код:


; Распаковка архива в папку, указанную в переменной ExtractPath.
Procedure ExtractArchive(ExtractPath.s)
 GlobalInfo.unz_global_info ; Объявление структур.
  FileInfo.PureZIP_FileInfo  BreakExtract = #False      ; Создание локальных переменных.
  DoneFiles    = 2     ; Получение данных об первом (индекс 0) файле архива.

 

If PureZIP_GetFileInfo(ProgName, 0, @FileInfo) = #True
     If FileInfo\flag & 1 = 1 ; Установленный 0 бит - признак наличия пароля.
      Pass.s=InputRequester(GetFilePart(ProgName)+" - Архив защищён паролем!", "Введите пароль архива","")
      PureZIP_SetArchivePassword(Pass) ; Устанавливаем пароль, введенный пользователем.
    EndIf
  EndIf
  If PureZIP_Archive_Read(ProgName) ; Открываем архив (исполняемый файл распаковщика).    PureZIP_Archive_GlobalInfo(@GlobalInfo)
    NrOfCompressed.l = GlobalInfo\number_entry   ; Число файлов в архиве.
    ReturnValue.l = PureZIP_Archive_FindFirst()  ; Поиск первого файла в архиве.    SetGadgetAttribute(#ProgressBar_All, #PB_ProgressBar_Maximum, NrOfCompressed)    ; Цикл (While - Wend) распаковки всех файлов, содержащихся в архиве.
    While ReturnValue = #UNZ_OK
      If
PureZIP_Archive_FileInfo(@FileInfo) = #UNZ_OK ; Данные о файле (размер, степень сжатия и др.).
        Status = PureZIP_Archive_Extract(ExtractPath, #True, @BreakExtract) ; Распаковка файла на диск.

       

If BreakExtract = #True
          MessageRequester("", "Распаковка прервана пользователем", #MB_OK|#MB_ICONINFORMATION)
          Break
        EndIf
        If Status = #UNZ_OK ; Успешная распаковка очередного файла.
          DoneFiles + 1
          SetGadgetText(#Text_ExtractFiles, Cut_FileName(ExtractPath+FileInfo\FileName))
          SetGadgetState(#ProgressBar_All, DoneFiles)
          ReturnValue = PureZIP_Archive_FindNext() ; Поиск следующего файла для распаковки.
        Else
        MessageRequester("","Произошла ошибка при распаковке"+Chr(10)+FileInfo\FileName,#MB_ICONWARNING)
          Break
        EndIf
      EndIf
    Wend

    PureZIP_Archive_Close() ; Закрытие архива.

   

If ReturnValue = #UNZ_END_OF_LIST_OF_FILE
      SetGadgetText(#Text_ExtractFiles, "Архив успешно распакован")
      MessageRequester(GetFilePart(ProgName), "Архив успешно распакован.", #MB_OK|#MB_ICONINFORMATION)
    Else ; Если не все файлы были распакованы (ошибка или операция прервана пользователем).
      SetGadgetState(#ProgressBar_File, 0)
      SetGadgetState(#ProgressBar_All,  0)
      SetGadgetText(#Text_ExtractFiles, "")
    EndIf

  Else ; Обычно свидетельствует об повреждении архива.
    MessageRequester("", "Ошибка при доступе к архиву.", #MB_OK|#MB_ICONERROR)
  EndIfEndProcedure

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

Введенный пользователем пароль будет передан функции PureZIP_SetArchivePassword(), которая установит текущий пароль архива. После всего этого, можно открыть архив для чтения, что производится при помощи функции PureZIP_Archive_Read(), единственный аргумент которой – абсолютный путь к архиву, то есть к EXE-файлу самораспаковывающегося архива. Он заносится в строковую переменную ProgName при старте программы функцией ProgramFilename(). После успешного получения доступа к архиву, его содержимое можно извлечь в папку, заданную в строковой переменной ExtractPath. Данная операция производится в цикле WhileWend, который прервется при завершении распаковки, возникновении ошибки, либо при прерывании распаковки пользователем. При помощи функции PureZIP_Archive_FileInfo() запрашивается информация о текущем файле. Это необходимо для отображения имен файлов извлекаемых из архива. Далее при помощи функции PureZIP_Archive_Extract() производится извлечение текущего файла. Нужно отметить, что работа этой функции не завершится до тех пор, пока не будет распакован весь файл. Это особенно актуально для больших файлов, распаковка которых может занять продолжительное время. В первом аргументе функции указано место (папка), куда будет извлечен файл. От второго аргумента (#True или #False) зависит, будет ли при распаковке учитываться полный путь к файлу, сохраненный в архиве, или нет. Третий аргумент не обязателен и может отсутствовать. При его наличии, его значение будет передано в Calback функцию, в которой отображается прогресс извлечения файла из архива на диск. В рассматриваемой программе, передается указатель на переменную BreakExtract, в которой изначально хранится число 0 (#False). Если же пользователь прервет распаковку файлов, то в Callback функции, в переменную запишется число 1 (#True).

 Код Callback процедуры показан ниже. 

Код:


; Отображение прогресса распаковки обрабатываемого файла.
Procedure
File_Progress(File.s, Percent.f, *UserParam)

 

SetGadgetState(#ProgressBar_File, PerCent) ; Отображение в окне прогресса распаковки.
 

 


Repeat

    Event=WindowEvent()    ; Текущее событие программы.
    If
Event=#PB_Event_CloseWindow ; Щелчок по крестику в заголовке окна.
      If EventWindow() = #Window_0
        Flags = #MB_YESNOCANCEL|#MB_ICONQUESTION|#MB_DEFBUTTON2
        Select MessageRequester("", "Закрыть окно с остановкой распаковки файлов?", Flags)
          Case
#IDYES
            End

          Case
#IDCANCEL
            PokeL(*UserParam, #True)
            Break
        EndSelect
      EndIf
    EndIf
  Until Event = 0

  ProcedureReturn 0
EndProcedure

Она зарегистрирована в библиотеке PureZIP при помощи PureZIP_SetCompressionCallback() как функция отображения прогресса упаковки / распаковки файлов. Процедуре передается имя распаковываемого файла, процент его распаковки (в диапазоне 0 … 100) и данные, переданные в необязательном аргументе функции распаковки файла. В нашем случае, это указатель на локальную переменную BreakExtract процедуры ExtractArchive(). Хоть основное назначение процедуры File_Progress() состоит в отображении распаковки файла, но тот факт что при излечении файлов, она вызывается довольно часто, как минимум несколько раз в секунду, позволило возложить на нее еще и обработку событий программы на время распаковки файлов. Иначе бы пришлось распаковывать файлы в отдельном потоке. После того как при помощи функции SetGadgetState() был отображен текущий прогресс распаковки, выполняется код обработки событий программы. В цикле вызывается функция WindowEvent() до тех пор, пока не будут обработана вся очередь событий. Из всех событий, обрабатывается только одно – закрытие окна программы, при возникновении которого, на экране появится окно. 

При нажатии на кнопку «Да», работа программы завершится и ее окно закроется. В случае нажатия на кнопку «Нет», распаковка файлов продолжится. А если нажать на кнопку «Отмена», то распаковка файлов прекратится, но программа продолжит свою работу.

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

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

Код:


; Добавление при компиляции модуля распаковки в EXE файл упаковщика.
DataSection
  SFX_File:
  IncludeBinary "SFX.exe"
  SFX_File_End:
EndDataSection

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

Самораспаковывающийся архив создает процедура Button_Archive(). 

Код:


; Создание самораспаковывающегося архива.
Procedure Button_Archive(Directory.s, File.s)  Error = #True
  BreakCompress = #False  SetGadgetText(#Text_CurrentFiles, "Подсчет файлов. Ждите...")
  ClearList( Files() )     ; Очистка динамически связанного списка.
  Find_File(Directory, "") ; Поиск файлов, подлежащих архивации.  CountFiles = ListSize( Files() ) ; Число найденных файлов.
  If
CountFiles = 0
    MessageRequester("", "В выбранной папке отсутствуют файлы!", #MB_OK|#MB_ICONWARNING)
    ProcedureReturn
  EndIf  SetGadgetAttribute(#ProgressBar_AllProgress, #PB_ProgressBar_Maximum, CountFiles)
  SetGadgetText(#Text_CurrentFiles, "Подсчет файлов")
  CurrentDir.s = GetCurrentDirectory() ; Путь к текущей папке программы.  If CreateFile(2, File) ; Создаем файл самораспаковывающегося архива.
    WriteData(2, ?SFX_File, ?SFX_File_End-?SFX_File) ; В начало файла - модуль распаковки архива.
    CloseFile(2)    Password.s = GetGadgetText(#String_Password) ; Пароль архива.
    PureZIP_SetArchivePassword(Password)

 

   If PureZIP_Archive_Create(File, #APPEND_STATUS_CREATEAFTER) ; Добавление архива в конец файла.
      SetCurrentDirectory(Directory)                            ; Установка текущей папки.
      Count = 0

      ForEach Files() ; В цикле упаковываются файлы, имена которых находятся в связанном списке.        Count + 1
        SetGadgetState(#ProgressBar_AllProgress, Count) ; Увеличение значения прогресса упаковки.
        SetGadgetText(#Text_CurrentFiles, Cut_FileName(Directory+Files()))
        Status = PureZIP_Archive_Compress(Files(), #True, @BreakCompress) ; Упаковка файла.        If BreakCompress = #True
          MessageRequester("", "Создание архива прервано пользователем", #MB_OK|#MB_ICONINFORMATION)
          Break

        EndIf

        If Status <> #Z_OK And Status <> -1
          MessageRequester("", "Возникла ошибка при упаковке файла"+Chr(10)+Files(),  #MB_OK|#MB_ICONERROR)
          Break

        EndIf
      Next

     

PureZIP_Archive_Close() ; Завершение создания архива.

      If CountFiles = Count
        Error = #False
        SetGadgetText(#Text_CurrentFiles, "SFX архив создан")
        MessageRequester("", "Самораспаковывающийся архив создан.", #MB_OK|#MB_ICONINFORMATION)
      EndIf

    Else
      MessageRequester("", "Ошибка доступа к файлу при добавлении архива!", #MB_OK|#MB_ICONERROR)
    EndIf
  Else
    MessageRequester("", "Не удалось создать файл!", #MB_OK|#MB_ICONERROR)
  EndIf    SetCurrentDirectory(CurrentDir) ; Установка текущей папки программы.

  If Error = #True         ; Если произошла ошибка,
    If FileSize(File) >= 0 ; и файл SFX архива был создан,
      DeleteFile(File)     ; удаляем файл.
    EndIf
    SetGadgetText(#Text_CurrentFiles, "SFX архив не был создан")
    SetGadgetState(#ProgressBar_FileProgress, 0)
    SetGadgetState(#ProgressBar_AllProgress,  0)
  EndIfEndProcedure

В первую очередь, очищается динамически связанный список, имеющий имя Files(). Он был объявлен в начале программы. Затем вызывается процедура Find_File(), основное назначение которой – занести в связанный список имена и пути всех файлов, подлежащих архивации.

Код:


; Занесение путей к упаковываемым файлам в связанный список.
Procedure Find_File(Path.s, Sub.s)  If Right(Path.s,1)<>"\":Path + "\":EndIf    ; Начало сканирования папки.
  Directory = ExamineDirectory(#PB_Any, Path, "*.*")
  If
Directory
    While
NextDirectoryEntry(Directory) ; Следующий файл / папка.      Type.l = DirectoryEntryType(Directory) ; Тип объекта (файл или папка).
      Name.s = DirectoryEntryName(Directory) ; Имя объекта.

      If Type = #PB_DirectoryEntry_File ; Найден файл.
        AddElement( Files() )           ; Добавления элемента в список.
        Files() = Sub + Name            ; Запись в список имени файла.
     
ElseIf Type = #PB_DirectoryEntry_Directory ; Найдена папка.
        If
Name <> "." And Name <> ".." ; Не текущая и не родительская папка.
          ; Рекурсивный вызов процедуры.
          Find_File(Path + Name, Sub + Name + "\")
        EndIf
      EndIf

    Wend
    FinishDirectory(Directory) ; Завершение сканирования папки.
  EndIf
EndProcedure

Процедура ищет файлы в выбранной папке и во всех подпапках. После того, как собранны данные об архивируемых файлах, работа процедуры завершается и управление передается процедуре Button_Archive(). Далее подсчитывается число элементов связанного списка для того, чтобы узнать сколько файлов предстоит архивировать. С помощью функции CreateFile() создается пустой файл – заготовка для самораспаковывающегося архива. При помощи функции WriteData(), в файл записывается модуль распаковки архива. Напомню, этот модулю был добавлен в программу оператором IncludeBinary. После чего, файл закрывается функцией CloseFile(). А вот дальше собственно и производится добавление файлов в самораспаковывающийся архив. Все начинается с установки текущего пароля архива, который должен находиться в поле «Пароль архива». Если это поле пустое, то пароль не устанавливается. При помощи функции PureZIP_Archive_Create(), открывается ранее созданный файл с уже записанным в него модулем распаковки. Флаг #APPEND_STATUS_CREATEAFTER означает, что архив будет создан в конце файла. После этого, функцией SetCurrentDirectory() изменяется текущая папка программы. Ею становится папка с файлами, подлежащими добавлению в архив. Это необходимо для того, чтобы в архиве были сохранены относительные пути к файлам, а не абсолютные. Далее, в цикле ForEachNext, производится перечисление всех элементов списка Files() и добавление в архив, файлов, пути к которым хранятся в списке. Файлы добавляются в архив, функцией PureZIP_Archive_Compress(). Когда все файлы будут добавлены, функция PureZIP_Archive_Close() закрывает архив. Все, самораспаковывающийся архив готов!  И его можно использовать по назначению.

Если щелкнуть правой кнопкой мышки по файлу самораспаковывающегося архива, то можно заметить что в появившемся контекстном меню, есть пункт архиватора WinRAR (если конечно он установлен в системе) и есть возможность выполнять стандартные действия над архивом, то есть, распаковать или открыть его, добавить или удалить файлы папки и т. д. В свойствах файла, так же присутствует вкладка «Архив». Все это указывает на то, что данный самораспаковывающийся архив, по своему формату, совместим с аналогичным, создаваемым программой WinRAR.





Сайт создан в системе uCoz

Что такое самораспаковывающийся ZIP-файл? — WinZip

Самораспаковывающийся Zip-файл — это исполняемый файл Windows (.exe). Он будет содержать Zip-файл и небольшую программу для извлечения (разархивирования) файлов из Zip-файла. Пользователь может запустить (выполнить) самораспаковывающийся Zip-файл так же, как и любую другую программу: просто дважды щелкните файл .exe.

WinZip предлагает две версии программы Self-Extractor. WinZip Self-Extractor Personal Edition, который включен в WinZip, и WinZip Self-Extractor, который лицензируется и продается отдельно.Для получения информации о различиях между WinZip Self-Extractor Personal Edition и полной версией WinZip Self-Extractor щелкните здесь.


Каковы преимущества самораспаковывающихся Zip-файлов?

  • Самораспаковывающиеся Zip-файлы идеально подходят для распространения и загрузки общих файлов, потому что они:
    • Могут запускать программу установки или программу установки , которая может быть включена разработчиком в файл Zip, из которого сделан распаковщик
    • Может легко распространять один или несколько сжатых файлов с папками или без них
    • Может содержать конфиденциальную информацию, защищенную 128- и 256-битным шифрованием AES
    • Может создавать файлы меньшего размера с помощью сжатых Zip-файлов LZMA, JPEG, PPMd, WavPack и Enhanced Deflate (.zip или .zipx). (Примечание : поддержка LZMA, Jpeg, WavPack и .zipx доступна только в WinZip Self-Extractor 4.0)
    • Может использовать узнаваемые пользовательские значки с высоким разрешением ( Примечание: Для поддержки текущих значков Windows требуется WinZip Self-Extractor 3.1 или более поздняя версия)
    • Может содержать несколько сжатых файлов, сокращая время загрузки и группируя важные файлы, чтобы они не были разделены или пропущены.
    • Предоставляет приемнику минимальный, простой для понимания интерфейс Windows, так что неопытные пользователи могут извлекать (разархивировать) файлы практически без инструкций.
  • Информация о папках в Zip-файлах восстанавливается автоматически, включая пустые папки
  • Стандартные самораспаковщики
  • отображают диалоговое окно, которое позволяет пользователю легко изменить папку Unzip To и установить другие параметры перед извлечением файлов.

Если у вас есть какие-либо вопросы по поводу этой информации, отправьте заявку в службу технической поддержки.

Статьи по теме:
Отличия: WinZip Self-Extractor и Personal Edition
Где скачать WinZip Self-Extractor
Каковы требования для WinZip Self-Extractor 4.0?

Как создать самораспаковывающийся архив или установщик в Linux

Последнее обновление: 15 декабря 2020 г., Дэн Нанни.

В то время как типичный архивный файл полагается на отдельную программу (например,g., tar , gunzip , 7z ) для извлечения содержимого из файла архива, самораспаковывающийся (SFX) архив сам является исполняемым файлом и может самораспаковываться при запуске. Самораспаковывающийся установщик делает то же самое, но также копирует извлеченный контент в соответствующие каталоги.

В этом руководстве я объясню , как создать самораспаковывающийся архив или программу установки в Linux .

Для этой цели вы можете использовать утилиту командной строки под названием makeself .Инструмент makeself — это сценарий оболочки, который создает сжатый архив TAR из входных каталогов / файлов и добавляет небольшую заглушку сценария оболочки в начало архива, чтобы инициировать самоизвлечение и направлять установку извлеченных файлов.

Установить

makeself на Linux

Чтобы установить makeself , загрузите последнюю версию в формате архива и распакуйте загруженный архив следующим образом. Как только архив будет распакован, он создаст новый каталог с именем makeself-2.4.2. Скопируйте все сценарии оболочки из каталога в / usr / bin .

 $ wget https://github.com/megastep/makeself/releases/download/release-2.4.2/makeself-2.4.2.run
$ chmod 755 makeself-2.4.2.run
$ ./makeself-2.4.2.run
$ cd makeself-2.4.2
$ sudo cp * .sh / usr / bin
 

Базовое использование makeself.sh выглядит следующим образом.

 makeself.sh [параметры] [каталог_в_пакете] [sfx_archive_filename] [метка] [запуск_скрипт] [дополнительные_арги_скрипта]
 

Ярлык аргумент — это сообщение для печати, пока SFX-архив не сжат.

Аргумент startup_script указывает сценарий / команду, запускаемую после успешного извлечения SFX-архива. Это полезно при создании самораспаковывающегося установщика. Обычно сценарий запуска копирует / устанавливает извлеченный контент в соответствующие целевые каталоги. Сценарий запуска должен находиться внутри каталога для упаковки, чтобы сценарий был включен в архив SFX.

Вот некоторые из доступных опций для makeself.sh :

  • --gzip : использовать gzip для сжатия (опция по умолчанию).
  • --bzip2 : использовать bzip2 для сжатия.
  • --nocomp : Не сжимать.
  • --notemp : не извлекать файлы во временный каталог, а в новый подкаталог, созданный в текущем каталоге.
  • - следовать : переходить по всем символическим ссылкам и архивным файлам, которые связаны символическими ссылками.

Создание самораспаковывающегося архива

Для создания самораспаковывающегося архива, содержащего все файлы внутри ./ backup , сделайте следующее. Здесь процедура запуска делает не что иное, как печать Извлечение завершено .

 $ makeself.sh --notemp ./backup ./backup.run "SFX-архив для резервной копии" echo "Извлечение завершено"
 
 Заголовок состоит из 403 строк

Собираемся сжать 1540 КБ данных ...
Добавление файлов в архив с именем "./backup.run" ...
./
./jpeg/
./jpeg/1.jpg
.
.
CRC: 2238411397
MD5: 0b0fd3a2ba08ffcec821b9cbaa11b70d

Самораспаковывающийся архив "./backup.run" успешно создан.

Для извлечения файлов из архива просто запустите архив:

 $ ./backup.run
 
 Создание резервной копии каталога
Проверка целостности архива ... Все хорошо.
Распаковка SFX-архива для резервного копирования .............
Готово
 

Создание самораспаковывающегося установщика

Если вы хотите создать самораспаковывающийся установщик, вам необходимо подготовить отдельный сценарий запуска, который будет выполнять установку после извлечения файла. Здесь я предполагаю, что каталог программы для упаковки находится по адресу ./ программа . Так что подготовьте сценарий запуска в каталоге ./program .

 $ vi ./program/install.sh
 
 #! / Bin / sh
   
если [-d $ HOME / bin]
потом
    cp myprogram $ HOME / bin /
фи
 

Затем сделайте запускаемый скрипт исполняемым.

 $ chmod 755 ./program/install.sh
 

Создайте самораспаковывающийся установщик и упакуйте сценарий запуска вместе с ним следующим образом.

 $ makeself.sh ./program ./program.run "Установщик SFX для программы"./install.sh
 

-sfx (Создать SFX-архив) переключатель

-sfx (Создать SFX-архив) переключатель

Создает самораспаковывающийся архив.

Синтаксис
-sfx [{SFX_Module}]
 
{SFX_Module}

Задает модуль SFX, который будет объединен с архивом. Этот модуль должен быть помещен в тот же каталог, что и 7z.exe. Если {SFX_Module} не назначен, 7-Zip будет использовать стандартную консоль SFX-модуль 7zCon.sfx.

9019fs1 (Версия с графическим интерфейсом)
SFX_Module Описание
7z.sfx SFX-модуль (версия с графическим интерфейсом пользователя)
7zCon.sfx SFX-модуль (консольная версия)
7zS2.sfx небольшой SFX-модуль для установщиков (версия с графическим интерфейсом)
7zS2con.sfx маленький SFX-модуль для установщиков (консольная версия)

SFX-модуль может распаковывать архивы 7z или многотомные архивы 7z.Например, если у вас есть архив name.7z или name.7z.001, просто переименуйте sfx muldule в name.exe и поместите в ту же папку с архивом.

SFX-модули для установщиков

SFX-модулей для инсталляторов включены во внешний пакет (LZMA SDK). Вы можете скачать эти модули с www.7-zip.org. Модуль SFX для установщиков (7zSD.sfx) позволяет создать собственную программу установки. Такой модуль извлекает архив во временную папку пользователя и запускает указанную программу, и удаляет временные файлы после завершения программы.Самораспаковывающийся архив для установщиков должен быть создан как объединение следующих файлов: SFX_Module, Installer_Config (необязательно), 7z_Archive. Вы можете использовать следующую команду для создания самораспаковывающегося архива установщика:

скопируйте / b 7zSD.sfx + config.txt + archive.7z archive.exe
 

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

Ключ

-y для модуля установщика указывает извлечение в тихом режиме.

Формат файла конфигурации установщика

Этот файл конфигурации содержит команды для установщика. Файл начинается со строки ;! @ Установить @! UTF-8! и заканчивается на ;! @ InstallEnd @! . Файл должен быть записан в кодировке UTF-8. Файл содержит любую или все эти пары строк:

ID_String = «Значение»

ID_String Описание
Заголовок Заголовок сообщений
BeginPrompt Сообщение с подсказкой начала
Progress Значение может быть «нет».Значение по умолчанию — «да».
RunProgram Команда для выполнения. Значение по умолчанию — «setup.exe». Подстрока %% T будет заменен на путь к временной папке, в которую были извлечены файлы
Каталог Префикс каталога для «RunProgram». Значение по умолчанию — «. \\»
ExecuteFile Имя файла для выполнения
ExecuteParameters Параметры для ExecuteFile

Вы можете опустить любую пару.

Есть два способа запустить программу установки: RunProgram и ExecuteFile . Используйте RunProgram , если вы хотите запустить программу из архива .7z. Используйте ExecuteFile , если вы хотите открыть документ из архива .7z, или если вы хотите выполнить команду из Windows.

Если вы используете RunProgram , и если вы укажете пустой префикс каталога: Directory = «», система ищет исполняемый файл в следующей последовательности:

  1. Каталог, из которого загружено приложение (установщик).
  2. Временная папка, в которую были извлечены файлы.
  3. Системный каталог Windows.
Примеры файла конфигурации
;! @ Установить @! UTF-8!
Title = "7-Zip 4.00"
BeginPrompt = "Вы хотите установить 7-Zip 4.00?"
RunProgram = "setup.exe"
;! @ InstallEnd @!
 
;! @ Установить @! UTF-8!
Title = "7-Zip 4.00"
BeginPrompt = "Вы хотите установить 7-Zip 4.00?"
ExecuteFile = "7zip.msi "
;! @ InstallEnd @!
 
;! @ Установить @! UTF-8!
Title = "Обновление 7-Zip 4.01"
BeginPrompt = "Вы хотите установить обновление 7-Zip 4.01?"
ExecuteFile = "msiexec.exe"
ExecuteParameters = "/ i 7zip.msi REINSTALL = ALL REINSTALLMODE = vomus"
;! @ InstallEnd @!
 
Примеры
7z a -sfx a.exe * .txt
 

добавляет файлы * .txt в самораспаковывающийся заархивируйте a.exe с помощью стандартного консольного SFX-модуля.

7z a -sfx7z.sfx a.exe *
 

добавляет все файлы в самораспаковывающийся архив a.exe с модулем 7z.sfx с использованием версии модуля SFX для Windows.

Команды, которые можно использовать с этим переключателем

a (Добавить), d (Удалить), u (Обновить),

самораспаковывающихся ZIP-файлов

самораспаковывающихся Zip-файлов
Самораспаковывающиеся ZIP-файлы

Opus позволяет конвертировать Zip-архив в так называемый самораспаковывающийся архив.Это превращает файл архива (которому нужна другая программа для распаковки it) в исполняемую программу, которую вы можете отправить людям. Когда они запустить программу, простой в использовании интерфейс поможет им распаковать содержимое архива.

Теперь, когда сама Windows имеет встроенную поддержку Zip-файлов самораспаковывающиеся архивы не так широко используются, как раньше, но есть до сих пор им пользуются.

Для создания самораспаковывающегося архива необходимо сначала создать исходный Zip-архив.Вы можете использовать Добавить в Диалог Archive для создания Zip-архива и преобразования его в самораспаковывающийся формат за один шаг, или вы можете создать архив, а затем преобразовать его отдельно, используя команду контекстного меню, которую добавляет Opus автоматически в контекстное меню для файлов .zip .

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

Диалоговое окно Создать самораспаковывающийся архив дает вам несколько параметры, управляющие окончательным самораспаковывающимся архивом:

  • From : в этом поле отображается имя Zip-архива, который вы конвертируются.
  • По : указывает путь к .exe файл, который создаст процесс преобразования. По умолчанию это то же место и назовите его как исходный архив, но с номером .exe вместо .zip расширение.
  • Имя : позволяет настроить имя, которое отображается в строка заголовка самораспаковывающегося устройства, когда он запущен.
  • Пользовательские инструкции : если вы установите этот флажок, вы сможете для выбора внешнего текстового файла ( .txt ) для предоставления инструкции или сообщение, которое будет отображаться в самораспаковывающем устройстве, когда это запущено. Если вы не предоставляете файл, отображаются инструкции по умолчанию.
  • Пользовательское изображение : если вы установите этот флажок, вы можете выбрать внешний файл изображения, который отображается в левой части самораспаковывающееся окно. Если вы не выберете эту опцию, стандартное изображение будет использовал. Если вы включите эту опцию, но не выберете файл изображения, то изображение не будет вообще будет использоваться, что может уменьшить размер финального .exe файл немного.
  • Путь по умолчанию для извлечения : позволяет указать местоположение, которое будет использоваться в качестве пути по умолчанию, в котором находятся файлы в архиве. извлекается, когда самораспаковщик работает.Конечный пользователь по-прежнему сможет изменить путь назначения; это просто значение по умолчанию.
  • Автозапуск после извлечения : Если в вашем архиве есть исполняемые программы, вы можете выбрать одну из раскрывающегося списка, чтобы файл автоматически запускается после извлечения архива. Для разработчиков, вы можете использовать это для создания простого «установщика», который извлекает несколько файлов. а затем запускает прилагаемую программу типа Setup.exe для выполнения фактического монтаж.

После выбора параметров нажмите кнопку OK , чтобы выполнить фактический процесс преобразования. Вы должны остаться с .exe Файл немного больше исходного Zip-архива.

Когда кто-то запускает ваш самораспаковывающийся архив, он увидит окно аналогично этому:

Из этого окна вы можете вывести параметры, которые мы установили при создании экстрактор:

  • Изображение в левой части окна по умолчанию — мы не указали что угодно для Пользовательский образ при создании самораспаковывающегося.
  • Отображаемый текст является результатом указания Custom Инструкция файла.
  • Мы не указали Путь по умолчанию для извлечения, поэтому по умолчанию выполняется извлечение во временную папку.
  • Мы также не указали автоматический запуск после извлечения файла , так что эта опция отключена.


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

Функция извлечения автоматически обрабатывает UAC в Vista и Windows 7. Если пользователь выбирает извлечение в место, защищенное UAC (например, C: \ Program Files ) их попросят поднять, чтобы подтвердить действие.

Как создавать самораспаковывающиеся файлы RAR и ZIP с помощью WinRAR и 7-ZIP

Большинство пользователей компьютеров прибегают к сжатию файлов, когда хотят максимально уменьшить размер файла.WinRAR и 7-Zip — два самых популярных файловых архиватора, которые позволяют легко это делать. При этом не у всех установлено это программное обеспечение на своих компьютерах. Итак, если вы собираетесь отправить сжатый файл кому-то, у кого в системе нет WinRAR, 7-Zip или какой-либо другой подобной утилиты для архивирования файлов, он не сможет извлечь эти файлы RAR или ZIP и получить к ним доступ. Эту проблему несовместимости можно решить с помощью самораспаковывающихся файлов RAR и ZIP.

Многие пользователи, которые используют WinRAR и 7-Zip в своих системах, на самом деле не знают , что делает самораспаковывающийся файл RAR или ZIP и как создать самораспаковывающийся архивный файл , и именно поэтому мы решили чтобы покрыть это здесь.

Что такое самораспаковывающийся архив?

С точки зрения непрофессионала, самораспаковывающийся архив — это не что иное, как исполняемый файл Windows, который может быть запущен в системе изначально без необходимости в каком-либо дополнительном программном обеспечении, таком как WinRAR или 7-Zip. Этот исполняемый файл содержит целевой файл RAR или ZIP со всем его содержимым, а также небольшую программу для быстрого извлечения содержимого. Еще одно ключевое преимущество использования самораспаковывающегося файла заключается в том, что он может содержать несколько сжатых файлов или папок как один исполняемый файл, что упрощает распространение файлов.Поскольку WinRAR и 7-Zip широко используются большинством пользователей для сжатия и извлечения файлов, мы рассмотрим, как создать самораспаковывающийся архив на обоих из них.

Как создать самораспаковывающийся файл RAR с помощью WinRAR

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

Шаг 1.Сначала перейдите в каталог, в котором хранятся файлы, которые вы хотите добавить в архив. Теперь выберите необходимые файлы, щелкните их правой кнопкой мыши и выберите «Добавить в архив».

Шаг 2. Откроется новое окно на вашем экране. Здесь установите флажок рядом с ‘Create SFX Archive’ и дайте предпочтительное имя для исполняемого файла, щелкнув под именем архива. Чтобы защитить архив паролем, нажмите «Установить пароль» в окне.

Шаг 3. Теперь введите желаемый пароль, подтвердите его и нажмите «ОК». Обратите внимание, что это совершенно необязательно, и вам не нужно использовать пароль, если он вам не нужен. .

Шаг 4. Затем перейдите на вкладку «Дополнительно» в окне WinRAR и щелкните «Параметры SFX», , где вы сможете получить доступ к некоторым дополнительным настройкам.

Шаг 5. Вы попадете в раздел «Общие» расширенных параметров SFX, где сможете ввести путь для извлечения исполняемого архива.В этом случае мы использовали ‘% USERPROFILE% \ Desktop’ , чтобы исполняемый файл извлекал содержимое сжатого файла на рабочий стол, но вы можете использовать любой путь по вашему выбору. Нажмите «ОК» , когда закончите создание исполняемого файла.

Шаг 6. Самораспаковывающийся файл RAR теперь будет отображаться в том же каталоге, что и выбранные вами файлы. Просто щелкните по нему, чтобы запустить самораспаковывающийся исполняемый файл WinRAR. Чтобы начать извлечение, нажмите «Извлечь.’

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

Как создать самораспаковывающийся ZIP-файл с помощью 7-Zip

Если WinRAR не является файловым архиватором по вашему выбору, вы можете использовать 7-Zip. Некоторые пользователи предпочитают это программное обеспечение, поскольку оно имеет открытый исходный код, совершенно бесплатно и предлагает немного лучшую степень сжатия.Создание самораспаковывающегося файла ZIP во многом похоже на метод WinRAR, хотя 7-Zip удалось немного упростить этот процесс. Давайте проверим:

Шаг 1. Перейдите в каталог, где хранятся файлы, которые вы хотите добавить в архив. Выберите необходимые файлы, щелкните правой кнопкой мыши и выберите ‘7-Zip’ , чтобы развернуть параметры. Теперь нажмите «Добавить в архив».

Шаг 2. Откроется окно 7-Zip на вашем экране. Установите флажок «Создать архив SFX» в разделе «Параметры», назовите исполняемый файл в соответствии с вашими предпочтениями и при необходимости введите пароль.Когда вы закончите со всем этим, нажмите «ОК».

Шаг 3. Исполняемый файл появится в том же каталоге, в котором вы выбрали файлы. Просто щелкните исполняемый файл со значком 7z , чтобы запустить его и извлечь его содержимое.

В отличие от WinRAR, 7-Zip изначально не имеет возможности выбирать путь для извлеченных файлов. Еще раз, если вы ввели пароль, вам будет предложено ввести его для успешного извлечения.

Бонусный совет: что делать, если вы забыли пароль RAR

Если вы зашифровали архивы RAR и в какой-то момент забыли пароль к одному из них, вам не совсем повезло с доступом к файлам, хранящимся в нем. Вы можете воспользоваться этим изящным инструментом восстановления пароля RAR под названием PassFab for RAR, и вы можете разблокировать пароль для всех видов зашифрованных файлов RAR без потери данных. Программное обеспечение использует три уникальных метода для восстановления пароля RAR в зависимости от того, знаете ли вы какие-либо сведения о забытом пароле.

Получить PassFab для RAR сейчас

Bottomline

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

Какую утилиту для архивирования файлов вы предпочитаете и почему? Вы используете другое программное обеспечение вместо WinRAR или 7-Zip? У вас есть какие-нибудь дополнительные советы или рекомендации? Обязательно сообщите нам об этом в разделе комментариев ниже.

Total Commander — Проблемы с самораспаковывающимися архивами

Inhalt

Проблемы с самораспаковывающимися ZIP-архивами,


, которые были созданы с помощью Total Commander версии 6.55

После установки обновления безопасности KB923191 для Microsoft Windows XP все самораспаковывающиеся архивы созданный с помощью Total Commander 6.55 больше не запускается. Причина вроде бы в ошибке Windows с дисплеем элементов диалога (например, кнопок) с Windows XP тематический вид. Нет проблем с самораспаковыванием архивы, созданные более старыми версиями Total Commander, потому что это все еще были 16-битные программы.Однако эти старые самораспаковывающиеся архивы не работают в Windows Vista. Также Total Commander 6.55a (и новее) содержит обновленный самораспаковщик.

Решение для новее архивы:

Пожалуйста, обновите Total до последней версии Командир.

Решение для существующих архивы:

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

  1. Поместите текстовый курсор на файл, нажмите Alt + Enter, перейти на вторую страницу свойства лист и включите режим совместимости для Windows 2000.Впоследствии самовыражающийся архив запустится без проблем и можно без упаковки.
  2. Переименуйте файл с filename.exe в имя_файла.zip. Впоследствии вы можете открыть его с помощью большинство распаковщиков, в том числе с Total Commander, и распаковать. Этот метод также работает со старыми самораспаковывающиеся архивы, созданные Total Commander 6.54a или старше, например для Windows Vista.

WinRAR: обнаруженная уязвимость самораспаковывающегося архива отсутствует

Уязвимость системы безопасности, обнаруженная в последней версии популярной программы сжатия WinRAR, подвергает риску пользователей программы, согласно исследователю безопасности Мохаммаду Реза Эспаргаму.

Злоумышленники могут использовать эту уязвимость для удаленного выполнения кода на целевых машинах, требуя небольшого участия пользователя в процессе.

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

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

И именно этот текст и значки могут использовать злоумышленники для удаленного запуска кода в системе. Это делается путем добавления специально созданного HTML-кода к текстовой части, которая, в свою очередь, будет выполнять код в целевой системе, когда пользователь запускает самораспаковывающийся архив в системе.

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

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

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

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

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

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

Leave a comment