¿Qué es el formato de archivo MSI?
Los archivos con la extensión .msi almacenan un paquete de instalación de aplicaciones o un paquete de controladores para Microsoft Windows. Los archivos .msi tienen una estructura estandarizada definida por metadatos y contienen todos los recursos necesarios para instalar una aplicación. El nombre MSI proviene de Microsoft Installer, el nombre original de la tecnología antes de que Microsoft la rebautizara como Windows Installer.
Estructura del paquete MSI
Los paquetes .msi son bases de datos relacionales guardadas en el formato OLE2 Compound File Binary, el mismo contenedor utilizado por los documentos binarios heredados de Office. Debido a este contenedor compartido, los primeros ocho bytes mágicos (D0 CF 11 E0 A1 B1 1A E1) no son exclusivos de .msi; el formato se distingue por sus flujos de base de datos internos como _Tables y _Columns. Cada paquete se divide en:
- Uno o más productos a instalar
- Componentes del producto: las unidades atómicas de instalación (archivos, claves de registro, accesos directos)
- Funciones (Features): estructuras jerárquicas más grandes que comprenden componentes; los usuarios pueden elegir funciones opcionales durante la configuración
- Rutas clave para componentes: elementos críticos verificados durante la instalación o desinstalación de componentes
Aunque un solo instalador puede agrupar varios productos, no puede verificar de forma nativa las dependencias entre productos. La gestión de dependencias se maneja mediante herramientas de desinstalación o a través de la interfaz gráfica de usuario. .msi sigue siendo el formato de instalador dominante para el software de Windows empresarial y heredado.
Creación y uso de paquetes de Windows Installer
Los paquetes .msi se crean con herramientas dedicadas como WiX Toolset, Orca (incluida en el Windows SDK para inspeccionar y editar bases de datos) o productos de autoría comercial. El proceso de instalación es impulsado por msiexec.exe y se divide en tres fases:
- Interfaz de usuario: los usuarios configuran las opciones de instalación
- Ejecución: la instalación real, que se ejecuta en modo *inmediato* o *diferido* (pendiente)
- Reversión (Rollback): si la instalación falla, la transacción se revierte y no persisten cambios en el sistema
El contenido de un paquete .msi se puede extraer sin ejecutar el instalador utilizando 7-Zip o mediante msiexec /a (instalación administrativa).
Versiones de Windows Installer
Los paquetes .msi debutaron con Office 2000 en 1999 (Windows Installer 1.0); el motor de ejecución también se integró en Windows 2000. La versión 5.0 se lanzó en 2009 junto con Windows 7 y Windows Server 2008 R2. Los formatos estrechamente relacionados incluyen .msp (paquetes de parches que entregan diferencias binarias a los productos instalados) y archivos de transformación .mst que modifican el comportamiento del instalador en tiempo de ejecución. El estándar más nuevo .msix, introducido en 2018, combina las tecnologías .msi, .appx, App-V y ClickOnce para mejorar la seguridad, el aislamiento (sandboxing) y la distribución en la Store, pero .msi continúa implementándose ampliamente para software empresarial y de escritorio tradicional. Los archivos de carga útil dentro de un .msi suelen estar comprimidos como flujos .cab incrustados en la base de datos.
Seguridad y protección
RIESGO: MEDIUMUn MSI es un instalador que parece confiable, lo que lo convierte en un disfraz favorito para el malware: los atacantes envían MSIs con troyanos (a menudo con acciones personalizadas maliciosas que ejecutan código durante la instalación) o actualizaciones de software falsas. Instale MSIs solo desde el sitio oficial del proveedor y prefiera paquetes firmados; haga clic derecho > Propiedades > Firmas digitales para ver el editor. Un MSI sin firma de una fuente desconocida es una señal de alerta. Debido a que MSI se ejecuta con privilegios de instalador, uno malicioso puede hacer cualquier cosa que un administrador pueda hacer. El truco de renombrar o usar 7-Zip le permite inspeccionar el contenido antes de ejecutarlo.
Detalles del formato
en pocas palabrasProgramas que abren archivos MSI
Detalles técnicos
especificación profunda| Formato de contenedor | OLE2 Compound File Binary (CFBF): la misma estructura externa que los archivos binarios heredados de Office .doc y .xls |
| Bytes mágicos (desplazamiento 0) | D0 CF 11 E0 A1 B1 1A E1 - firma OLE2 compartida con otros documentos compuestos; no es exclusiva de MSI |
| Tipo MIME | application/x-msi |
| Tablas de base de datos internas | Tablas relacionales de esquema fijo que incluyen File, Registry, Component, Feature, Property y CustomAction |
| Almacenamiento de carga útil | Archivos comprimidos como flujos Cabinet (.cab) incrustados en la base de datos o referenciados como archivos .cab externos |
| Algoritmos de compresión | Los flujos Cabinet utilizan compresión LZX o MSZIP (compatible con zlib) |
| Modelo de transacción | Reversión total en caso de fallo: todos los cambios de archivos y registro se deshacen mediante un mecanismo de scripting de copia de sombra |
| Motor de ejecución | msiexec.exe (integrado en Windows); instalar: /i, eliminar: /x {ProductCode}, reparar: /f, extracción administrativa: /a |
| Modelo de privilegios | Admite modos de instalación por máquina (elevado, ALLUSERS=1) y por usuario (no elevado) |
| Instalación anunciada | Las clases COM y los accesos directos se pueden anunciar: se registran pero no se despliegan hasta el primer uso (instalación bajo demanda) |
| Soporte de parches | Los archivos de parche .msp entregan diferencias binarias y datos de tabla suplementarios dirigidos a un código de producto MSI específico |
| Soporte de transformaciones | Los archivos de transformación .mst anulan los valores de propiedad y los datos de la tabla en el momento de la instalación sin modificar el .msi base |
| Módulos de fusión (Merge modules) | Los paquetes de módulos de fusión .msm encapsulan componentes reutilizables para su inclusión en múltiples bases de datos .msi |
| Acciones personalizadas | La lógica previa y posterior a la instalación puede ejecutar VBScript, JScript, puntos de entrada de DLL o procesos EXE externos |
| Registro de desinstalación | Escribe automáticamente entradas en HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ProductCode} |
| Versiones de ejecución | Windows Installer 1.0 (1999) hasta 5.0 (2009, incluido con Windows 7 y Server 2008 R2) |
| Lanzado | 2000 (Windows Installer 1.0, shipped with Office 2000 / Windows 2000) |
| Especificación | learn.microsoft.com |
Conversiones de MSI
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos MSI.