Un archivo autoextraíble ( SFX / SEA ) es un programa ejecutable de computadora que contiene datos comprimidos en un archivo de almacenamiento combinado con instrucciones del programa ejecutable por máquina para extraer esta información en un sistema operativo compatible y sin la necesidad de contar con un extractor adecuado. instalado en la computadora de destino. La parte ejecutable del archivo se conoce como stub .
Los archivos autoextraíbles se utilizan para compartir archivos comprimidos con una parte que no necesariamente tiene el software para descomprimir el archivo. Los usuarios también pueden utilizar la extracción automática para distribuir su propio software. Por ejemplo, el programa de instalación de WinRAR se realiza utilizando el módulo gráfico autoextraíble de la GUI RAR Default.sfx.
Descripción general
Incorpora un módulo de archivo ejecutable, un módulo que se utiliza para ejecutar archivos sin comprimir a partir de archivos comprimidos. Un archivo comprimido de este tipo no requiere un programa externo para descomprimir el contenido del archivo autoextraíble y puede ejecutar la operación por sí mismo. Sin embargo, los archivadores de archivos como WinRAR aún pueden tratar los archivos autoextraíbles como cualquier otro archivo comprimido. Los usuarios que no estén dispuestos a ejecutar el archivo autoextraíble que recibieron (por ejemplo, cuando puede contener un virus) pueden utilizar el archivador de archivos para ver o descomprimir su contenido sin ejecutar código ejecutable.
Al ejecutar un archivo autoextraíble en un sistema operativo que lo admita, el contenido del archivo se extrae y se almacena como archivos en el disco. A menudo, el autoextractor incrustado admite una serie de argumentos de línea de comando para controlar el comportamiento, es decir, para especificar la ubicación de destino o seleccionar solo archivos específicos para ser extraídos.
Los archivos no autoextraíbles contienen solo los archivos archivados y, por lo tanto, deben extraerse con un programa compatible. Los archivos autoextraíbles no se pueden autoextraer en un sistema operativo diferente, pero la mayoría de las veces se pueden abrir con un extractor adecuado, ya que esta herramienta ignorará la parte ejecutable del archivo y, en su lugar, extraerá solo el recurso del archivo. En algunos casos, esto requiere que se cambie el nombre del ejecutable autoextraíble para que tenga una extensión de archivo asociada con el empaquetador correspondiente. Los archivos autoextraíbles suelen tener una extensión .exe, como otros archivos ejecutables.
Por ejemplo, un archivo puede llamarse somefiles.zip: puede abrirse en cualquier sistema operativo mediante un administrador de archivos adecuado que admita tanto el formato de archivo como el algoritmo de compresión utilizado. Alternativamente, podría convertirse en somefiles.exe que se autoextraerá en una máquina que ejecute Microsoft Windows sin la necesidad de un administrador de archivos adecuado. No se autoextraerá en Linux, pero se puede abrir con un administrador de archivos de Linux adecuado.
Hay varios formatos de archivo de archivo funcionalmente equivalentes pero incompatibles, incluidos ZIP, RAR, 7z y muchos otros. Algunos programas pueden administrar (crear, extraer o modificar) solo un tipo de archivo, mientras que muchos otros pueden manejar múltiples formatos. Además, existe una distinción entre el formato de archivo y el algoritmo de compresión utilizado. Un solo formato de archivo, como 7z, puede admitir varios algoritmos de compresión diferentes, incluidos LZMA , LZMA2 , PPMd y BZip2 . Para que una utilidad de descompresión expanda correctamente un archivo de la variedad autoextraíble o estándar, debe poder operar tanto en el formato de archivo como en el algoritmo utilizado. Por lo tanto, es posible que sea necesario modificar el código ejecutable exacto colocado al principio de un archivo autoextraíble en función de las opciones que se utilizaron para crear el archivo. Las rutinas de descompresión serán diferentes para un archivo LZMA 7z en comparación con un archivo LZMA2 7z, por ejemplo.
Varios programas pueden crear archivos autoextraíbles. Para Windows hay WinZip , WinRAR , 7-Zip , WinUHA , KGB Archiver , Make SFX, el asistente IExpress integrado y muchos otros, algunos experimentales. Para Macintosh existen StuffIt , The Unarchiver y 7zX. También hay programas que crean archivos autoextraíbles en Unix como scripts de shell que utilizan programas como tar y gzip (que deben estar presentes en el sistema de destino). Otros (como 7-Zip o RAR ) pueden crear archivos autoextraíbles como ejecutables regulares en formato ELF . Un ejemplo temprano de un archivo autoextraíble fue el archivo shar de Unix en el que uno o más archivos de texto se combinaron en un script de shell que, cuando se ejecutaba, recreaba los archivos originales.
Los archivos autoextraíbles se pueden utilizar para archivar cualquier cantidad de datos, así como archivos ejecutables. Deben distinguirse de la compresión ejecutable , donde el archivo ejecutable contiene un solo ejecutable y ejecutar el archivo no da como resultado que el archivo sin comprimir se almacene en el disco, sino que su código se ejecute en la memoria después de la descompresión.
Ventajas
Archivar archivos en lugar de enviarlos por separado permite combinar varios archivos relacionados en un solo recurso. También tiene la ventaja de reducir el tamaño de los archivos que aún no están comprimidos de manera eficiente (muchos algoritmos de compresión no pueden hacer que los datos ya comprimidos sean más pequeños. Por lo tanto, la compresión generalmente reducirá el tamaño de un documento de texto sin formato , pero apenas afectará una imagen JPEG o un documento de procesador de texto Esto se debe a que la mayoría de los formatos de archivo de procesadores de texto modernos ya implican un cierto nivel de compresión). Los archivos autoextraíbles también extienden las ventajas de los archivos comprimidos a los usuarios que no tienen los programas necesarios instalados en su computadora para extraer su contenido, pero están ejecutando un sistema operativo compatible. Sin embargo, para los usuarios que tienen software de gestión de archivos, un archivo autoextraíble puede resultar un poco más conveniente.
Los archivos autoextraíbles también permiten cifrar su contenido por motivos de seguridad, siempre que el algoritmo de compresión subyacente elegido y el formato lo permitan. En muchos casos, los nombres de archivos y directorios no forman parte del cifrado y cualquier persona puede verlos, incluso sin la clave o contraseña. Además, algunos algoritmos de cifrado se basan en que no hay textos sin formato parciales conocidos disponibles, por lo que si un atacante puede adivinar parte del contenido de los archivos solo a partir de sus nombres o contexto, es posible que pueda romper el cifrado de todo el archivo con solo un cantidad razonable de tiempo y potencia de cálculo. Por lo tanto, se debe tener cuidado o se debe utilizar un algoritmo de cifrado más adecuado.
Desventajas
Una desventaja de los archivos autoextraíbles es que la ejecución de archivos ejecutables de confiabilidad no verificada, por ejemplo, cuando se envían como un archivo adjunto de correo electrónico o se descargan de Internet, puede representar un riesgo para la seguridad. Un archivo ejecutable descrito como un archivo autoextraíble puede ser en realidad un programa malicioso. Una protección contra esto es abrirlo con un administrador de archivos en lugar de ejecutarlo (perdiendo la pequeña ventaja de la autoextracción); el administrador de archivos informará que el archivo no es un archivo o mostrará los metadatos subyacentes del archivo ejecutable, una fuerte indicación de que el archivo no es realmente un archivo autoextraíble.
Además, algunos sistemas de distribución de archivos no aceptan archivos ejecutables para evitar la transmisión de programas maliciosos. Estos sistemas no permiten archivos de almacenamiento autoextraíbles a menos que el remitente les cambie el nombre de forma engorrosa a, digamos, somefiles.exx, y luego el destinatario les vuelva a nombrar. Sin embargo, esta técnica se está volviendo cada vez menos efectiva a medida que un número cada vez mayor de suites de seguridad y paquetes de software antivirus escanean los encabezados de los archivos en busca del formato subyacente en lugar de confiar en una extensión de archivo correcta. Estos sistemas de seguridad no se dejarán engañar por una extensión de archivo incorrecta y son particularmente frecuentes en el análisis de archivos adjuntos de correo electrónico.
Los archivos autoextraíbles solo se ejecutarán en el sistema operativo con el que sean compatibles. Además, dado que deben incluir código ejecutable para manejar la extracción del archivo comprimido contenido, son un poco más grandes que el archivo original.
Ver también
- Instalador
- Shar
- Complejidad de Kolmogorov , un límite inferior teórico del tamaño de un archivo autoextraíble
Referencias
enlaces externos
- http://www.winzip.com
- http://www.7-zip.org
- http://www.jackmccarthy.com/malware/WinRAR_Archive_Creation.htm (Acerca de SFX)
- http://hem.bredband.net/magli143/exo/ para ejecutables 6502 / Z80 / 6809
- http://74.cz/make-sfx/