#REDIRECT [[ de:Nullsoft#Nullsoft Scriptable Install System]] ▼
{{notability|date=April 2024}}
{{Short description|Software for creating installation programs}}
{{Redirect category shell|
'''Nullsoft Scriptable Install System''' (NSIS) is a [[Software|software]] for creating [[Installation (computer programs)|installation programs]] for the [[Microsoft Windows|Windows]] operating system. It was originally developed by [[Nullsoft]], who used the installer for their media player [[Winamp]], among others. Today, NSIS is [[free software]] and is licensed under the [[zlib License|zlib/libpng License]].
{{R from subtopic}}
The source code of NSIS and the downloads are offered through [[SourceForge]], where NSIS was awarded ''Project of the Month'' in January 2006.
{{R to section}}
{{R from product name}}
NSIS itself consists only of a [[Command-line interface|command-line]] compiler and a [[Graphical user interface|graphical user interface]] for the compiler, which aids in compiling and simplifies some settings. However, several [[Free software|free]] [[Integrated development environment|IDEs]] for NSIS are available. The most comprehensive one currently is EclipseNSIS, a [[Plug-in (computing)|plug-in]] for the cross-platform, also free, [[Eclipse (software)|Eclipse IDE]].
{{R with history}}
}}
When using NSIS in software products, it is not possible to obtain a certification from Microsoft as "Designed for Windows Vista" because NSIS is not capable of generating the necessary Windows Installer files.
== Features (Selection) ==
* Very small [[Overhead (computing)|overhead]] of about 34 KB
* Compatible with all common Windows operating systems (Windows 95, 98, 2000, 2003, 2008, ME, NT, XP, Vista, 7, 8, 10)
* Three different compression algorithms ([[zlib]], [[bzip2]], and [[Lempel-Ziv-Markov algorithm|LZMA]]), optionally with [[Progressive compression|solid compression]]
* 49 languages, including languages written from right to left
* [[Plug-in (computing)|Plug-in]] system for nearly unlimited extension of the already extensive features (e.g., there are plug-ins for array operations, advanced mathematical functions, or control of Windows services and processes)
* Compilation of the installer under Windows or a [[POSIX]] compatible system such as [[Linux]] or [[FreeBSD]] (currently only support for [[X86 architecture|x86]] platforms)
* In addition to a "classic design," also a modern design that closely resembles proprietary installers.
Through the scripting language and the plugin interface, almost unlimited functions can be implemented in self-written installers. This includes managing system services, web-based installations, dynamic updates, repair and rollback functions.
== Functionality ==
An installer is based on a script, where each line is an instruction.
The script file is compiled into an [[Executable file|executable file]] containing all files (compressed) and the installation program (script commands) by the command-line compiler "makensis.exe", which can then be easily distributed. MakeNSISW is available as a graphical interface for makensis.
<syntaxhighlight lang="nsis">
; Example script
Name "MyExample"
OutFile "installer.exe"
SetCompressor lzma
InstallDir "$PROGRAMFILES\example"
InstallDirRegKey HKLM "SOFTWARE\example" "installdir"
LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf"
Page directory
Page instfiles
Section
SetOutPath $INSTDIR
File "myexample.exe"
WriteRegStr HKLM "SOFTWARE\example" "installdir" "$INSTDIR"
CreateShortCut "$DESKTOP\example.lnk" "$OUTDIR\myexample.exe"
SectionEnd
</syntaxhighlight>
The adjacent images show the result of the above script.
Using extensions like the "Modern UI" or specific plug-ins, visually appealing installation wizards can also be created.
Thanks to strong compression algorithms and low overhead, very small installers are possible, making NSIS ideal for distributing programs over the Internet.
== Security ==
Installers created with NSIS have security vulnerabilities when an outdated version is used.<ref>FullDisclosure: [http://seclists.org/fulldisclosure/2015/Dec/32 Executable installers are vulnerable^WEVIL (case 2): NSIS allows remote code execution with escalation of privilege]</ref><ref>FullDisclosure: [http://seclists.org/fulldisclosure/2015/Oct/109 Arbitrary code execution resp. escalation of privilege with Mozilla's SETUP.EXE]</ref><ref>FullDisclosure: [http://seclists.org/fulldisclosure/2015/Dec/74 Executable installers are vulnerable^WEVIL (case 10): McAfee Security Scan Plus, WebAdvisor and CloudAV (Beta)]</ref><ref>FullDisclosure: [http://seclists.org/fulldisclosure/2015/Dec/75 Executable installers are vulnerable^WEVIL (case 11): Nmap <7.01 and Nmap-WinPcap <4.13]</ref><ref>Gpg4win: [https://www.gpg4win.org/news-20151125.html Security Advisory Gpg4win 2015-11-25]</ref><ref>Intel: [https://service.mcafee.com/FAQDocument.aspx?lc=1033&id=TS102462 Intel Security – Security Bulletin: Security patch for several McAfee installers and uninstallers]</ref>
Possible security vulnerabilities were closed in versions 2.47<ref>[http://nsis.sourceforge.net/Docs/AppendixF.html#v2.47 Appendix F: Changelog and Release Notes]</ref>, 2.50<ref>[http://nsis.sourceforge.net/Docs/AppendixF.html#v2.50 Appendix F: Changelog and Release Notes]</ref>, and 2.51<ref>[http://nsis.sourceforge.net/Docs/AppendixF.html#v2.51 Appendix F: Changelog and Release Notes]</ref>.
== References ==
<references />
== External links ==
* [https://nsis.sourceforge.io/Main_Page NSIS Homepage]
* [http://sourceforge.net/projects/nsis/ NSIS Download] via SourceForge
* [http://eclipsensis.sourceforge.net/ EclipseNSIS IDE] – Eclipse plugin for NSIS
* [http://hmne.sourceforge.net/ HM NIS EDIT IDE] – graphical editor for NSIS
▲[[de:Nullsoft Scriptable Install System]]
[[Category:Installation software]]
[[Category:Windows-only free software]]
[[Category:Free and open-source software]]
[[Category:Free installation software]]
[[Category:Free software programmed in C]]
[[Category:Free software programmed in C++]]
[[Category:Software using the zlib license]]
|