Was ist das MSI-Dateiformat?
Dateien mit der Endung .msi enthalten ein Anwendungsinstallationspaket oder ein Treiberpaket für Microsoft Windows. .msi-Dateien haben eine durch Metadaten definierte standardisierte Struktur und enthalten alle zur Installation einer Anwendung benötigten Ressourcen. Der Name MSI leitet sich von Microsoft Installer ab, dem ursprünglichen Namen der Technologie, bevor Microsoft sie in Windows Installer umbenannte.
MSI-Paketstruktur
.msi-Pakete sind relationale Datenbanken, die im OLE2-Compound-File-Binary-Format gespeichert werden - demselben Container, den ältere binäre Office-Dokumente verwenden. Aufgrund dieses gemeinsamen Containers sind die ersten acht Magic Bytes (D0 CF 11 E0 A1 B1 1A E1) nicht eindeutig für .msi; das Format wird durch seine internen Datenbankstreams wie _Tables und _Columns unterschieden. Jedes Paket ist unterteilt in:
- Ein oder mehrere zu installierende Produkte
- Produktkomponenten - die atomaren Einheiten der Installation (Dateien, Registry-Schlüssel, Verknüpfungen)
- Features - größere hierarchische Strukturen, die Komponenten umfassen; Benutzer können während der Installation optionale Features auswählen
- Schlüsselpfade für Komponenten - kritische Elemente, die bei der Installation oder Deinstallation einer Komponente geprüft werden
Obwohl ein einzelnes Installationspaket mehrere Produkte bündeln kann, kann es produktübergreifende Abhängigkeiten nicht nativ überprüfen. Die Abhängigkeitsverwaltung erfolgt durch Deinstallations-Tools oder über die GUI. .msi bleibt das dominierende Installer-Format für Unternehmens- und Legacy-Windows-Software.
Erstellen und Verwenden von Windows-Installer-Paketen
.msi-Pakete werden mit dedizierten Tools wie dem WiX Toolset, Orca (im Windows SDK zum Prüfen und Bearbeiten von Datenbanken enthalten) oder kommerziellen Authoring-Produkten erstellt. Der Installationsvorgang wird von msiexec.exe gesteuert und in drei Phasen unterteilt:
- Benutzeroberfläche - Benutzer konfigurieren Installationsoptionen
- Ausführung - die eigentliche Installation, die entweder im *direkten* oder im *verzögerten* (ausstehenden) Modus abläuft
- Rollback - schlägt die Installation fehl, wird die Transaktion zurückgerollt und keine Systemänderung bleibt bestehen
Der Inhalt eines .msi-Pakets kann ohne Ausführen des Installers mit 7-Zip oder über msiexec /a (administrative Installation) extrahiert werden.
Versionen des Windows Installer
.msi-Pakete debütierten mit Office 2000 im Jahr 1999 (Windows Installer 1.0); die Laufzeitumgebung war auch in Windows 2000 integriert. Version 5.0 wurde 2009 zusammen mit Windows 7 und Windows Server 2008 R2 ausgeliefert. Eng verwandte Formate sind .msp (Patch-Pakete, die binäre Diffs für installierte Produkte liefern) und .mst-Transformationsdateien, die das Installationsverhalten zur Laufzeit ändern. Der neuere .msix-Standard, 2018 eingeführt, kombiniert .msi, .appx, App-V und ClickOnce-Technologien für verbesserte Sicherheit, Sandboxing und Store-Verteilung - aber .msi wird weiterhin weit verbreitet für Unternehmens- und traditionelle Desktop-Software eingesetzt. Nutzlastdateien innerhalb einer .msi sind typischerweise als .cab-Streams in der Datenbank komprimiert.
Sicherheit
RISIKO: MEDIUMEine MSI ist ein vertrauenswürdig aussehender Installer, was sie zu einer bevorzugten Malware-Tarnung macht: Angreifer verteilen trojaner-infizierte MSIs (oft mit bösartigen Custom Actions, die während der Installation Code ausführen) oder gefälschte „Software-Updates“. Installieren Sie MSIs nur von der offiziellen Anbieter-Website, und bevorzugen Sie signierte Pakete - Rechtsklick > Eigenschaften > Digitale Signaturen zeigt den Herausgeber; eine unsignierte MSI aus einer unbekannten Quelle ist ein Warnsignal. Da MSI mit Installer-Rechten läuft, kann eine bösartige MSI alles tun, was ein Administrator kann. Der Umbenennen-/7-Zip-Trick ermöglicht es, den Inhalt vor der Ausführung zu prüfen.
Formatdetails
kurz gefasstProgramme zum Öffnen von MSI-Dateien
Technische Details
technische Spezifikation| Container-Format | OLE2-Compound-File-Binary (CFBF) - gleiche äußere Struktur wie ältere binäre .doc- und .xls-Office-Dateien |
| Magic Bytes (Offset 0) | D0 CF 11 E0 A1 B1 1A E1 - OLE2-Signatur, die mit anderen Compound-Dokumenten geteilt wird; nicht eindeutig für MSI allein |
| MIME-Typ | application/x-msi |
| Interne Datenbanktabellen | Fest-Schema-relationale Tabellen, darunter File, Registry, Component, Feature, Property und CustomAction |
| Nutzlastspeicherung | Als Cabinet (.cab)-Streams in der Datenbank eingebettete oder als externe .cab-Archive referenzierte komprimierte Dateien |
| Komprimierungsalgorithmen | Cabinet-Streams verwenden LZX- oder MSZIP-Komprimierung (zlib-kompatibel) |
| Transaktionsmodell | Vollständiges Rollback bei Fehler - alle Datei- und Registry-Änderungen werden über einen Shadow-Copy-Scripting-Mechanismus rückgängig gemacht |
| Ausführungsmodul | msiexec.exe (in Windows integriert); installieren: /i, entfernen: /x {ProductCode}, reparieren: /f, administrative Extraktion: /a |
| Berechtigungsmodell | Unterstützt computerweite (erhöhte Rechte, ALLUSERS=1) und benutzerspezifische (ohne erhöhte Rechte) Installationsmodi |
| Advertised Installation | COM-Klassen und Verknüpfungen können advertised werden - registriert, aber erst bei erster Verwendung bereitgestellt (Demand-Install) |
| Patch-Unterstützung | .msp-Patch-Dateien liefern binäre Diffs und ergänzende Tabellendaten für einen bestimmten MSI-Produkt-Code |
| Transformations-Unterstützung | .mst-Transformationsdateien überschreiben Property-Werte und Tabellendaten zur Installationszeit, ohne die Basis-.msi zu ändern |
| Merge-Module | .msm-Merge-Modul-Pakete kapseln wiederverwendbare Komponenten zur Einbindung in mehrere .msi-Datenbanken |
| Benutzerdefinierte Aktionen | Vor- und Nach-Installations-Logik kann VBScript, JScript, DLL-Einstiegspunkte oder externe EXE-Prozesse ausführen |
| Deinstallationsregistrierung | Schreibt automatisch HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ProductCode}-Einträge |
| Laufzeitversionen | Windows Installer 1.0 (1999) bis 5.0 (2009, gebündelt mit Windows 7 und Server 2008 R2) |
| Veröffentlicht | 2000 (Windows Installer 1.0, shipped with Office 2000 / Windows 2000) |
| Spezifikation | learn.microsoft.com |
MSI-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu MSI-Dateien.