Nullsoft Scriptable Install System

Nullsoft Scriptable Install System (kurz NSIS) ist eine Software zur Erstellung von Installationsprogrammen für das Betriebssystem Windows. Es wurde ursprünglich von der Firma Nullsoft entwickelt, die den Installer u. a. für ihren Medienspieler Winamp nutzten. Heute ist NSIS freie Software und steht unter der zlib/libpng-Lizenz. Der Quelltext von NSIS und die Downloads werden über SourceForge angeboten, wo NSIS im Januar 2006 zum Projekt des Monats gekürt wurde.

Das NSIS an sich verfügt lediglich über einen Kommandozeilen-Compiler und eine grafische Benutzeroberfläche für selbigen, was beim Kompilieren hilft und einige Einstellungen erleichtert. Allerdings stehen mehrere freie IDEs für NSIS zur Verfügung. Die derzeit umfangreichste ist dabei wohl EclipseNSIS, ein Plug-in für die plattformübergreifende, ebenfalls freie Eclipse-IDE.

Bei Verwendung von NSIS in Softwareprodukten ist es nicht möglich, von Microsoft eine Zertifizierung als „Designed for Windows Vista“ zu erhalten, da NSIS nicht in der Lage ist, die hierfür erforderlichen Windows-Installerdateien zu generieren.

Merkmale (Auswahl)

Über die Skriptsprache sowie die Plugin-Schnittstelle sind in selbstgeschriebenen Installern nahezu unbegrenzte Funktionen implementierbar. Dazu gehört das Verwalten von Systemdiensten, webbasierte Installationen, dynamische Updates, Reparatur- und Rollback-Funktionen.

Funktionsweise

Ein Installer basiert auf einem Skript, jede Zeile ist eine Anweisung. Die Skript-Datei wird durch den Kommandozeilen-Kompilierer „makensis.exe“ zu einer ausführbaren Datei kompiliert, die sämtliche Dateien (komprimiert) und das Installationsprogramm (Skriptbefehle) enthält und damit sehr einfach verbreitet werden kann. Als grafische Oberfläche für makensis steht MakeNSISW zur Verfügung.

; Beispiel-Skript Name "MeinBeispiel" OutFile "installer.exe" SetCompressor lzma InstallDir "$PROGRAMFILES\beispiel" InstallDirRegKey HKLM "SOFTWARE\beispiel" "installdir" LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf" Page directory Page instfiles Section SetOutPath $INSTDIR File "meinbeispiel.exe" WriteRegStr HKLM "SOFTWARE\beispiel" "installdir" "$INSTDIR" CreateShortCut "$DESKTOP\beispiel.lnk" "$OUTDIR\meinbeispiel.exe" SectionEnd Zielverzeichnis angeben Installation fertiggestellt

Nebenstehend sieht man das Resultat des obigen Skripts. Durch Verwendung von Erweiterungen wie dem „Modern UI“ (deutsch: „moderne Benutzerschnittstelle“) oder speziellen Plug-Ins können auch optisch sehr ansprechende Installationsassistenten erstellt werden.

Dank starker Kompressions-Algorithmen und geringem Overhead sind sehr kleine Installer möglich, womit NSIS ideal für die Verbreitung von Programmen über das Internet ist.

Sicherheit

Mit NSIS erstellte Installationsprogramme haben Sicherheitslücken, wenn eine veraltete Version eingesetzt wird. In den Versionen 2.47, 2.50 sowie 2.51 wurden mögliche Sicherheitslücken geschlossen.

Einzelnachweise

  1. NSIS version history.
  2. nsis.sourceforge.io. (abgerufen am 4. Februar 2024).
  3. a b c d www.openhub.net.
  4. Full-Disclosure: Executable installers are vulnerable^WEVIL (case 2): NSIS allows remote code execution with escalation of privilege
  5. Full-Disclosure: Arbitrary code execution resp. escalation of privilege with Mozilla's SETUP.EXE
  6. Full-Disclosure: Executable installers are vulnerable^WEVIL (case 10): McAfee Security Scan Plus, WebAdvisor and CloudAV (Beta)
  7. Full-Disclosure: Executable installers are vulnerable^WEVIL (case 11): Nmap <7.01 and Nmap-WinPcap <4.13
  8. Gpg4win: Security Advisory Gpg4win 2015-11-25
  9. Intel: Intel Security – Security Bulletin: Security patch for several McAfee installers and uninstallers
  10. Appendix F: Changelog and Release Notes
  11. Appendix F: Changelog and Release Notes
  12. Appendix F: Changelog and Release Notes