A tool to unpack installers created by Inno Setup
Inno Setup is a tool to create installers for Microsoft Windows applications.
innoextract allows to extract such installers under non-windows systems without running the actual installer using Wine.
innoextract currently supports installers created by Inno Setup 1.2.10 to 5.5.5. (details)
innoextract is able to unpack (most) GOG.com installers, Wadjet Eye Games installers (to play with AGS), Arx Fatalis patches (for use with Arx Libertatis) as well as various other Inno Setup executables. See the list of limitations below.
- Improved compatibility with Windows™ (MinGW and MSVC), Mac OS X and FreeBSD systems
- Fixed extracting very large installers with 32-bit builds
- Added support for preserving timestamps of extracted files (enabled by default)
-d) command-line options
- Various bug fixes and tweaks
The current version of
innoextract is 1.4 (changelog):
innoextract Source Code
innoextract Windows Binaries
innoextract FreeBSD Binaries
The files have been signed with this OpenPGP key (D7E1DEC9).
Windows binaries should work with XP and newer.
FreeBSD binaries are built against FreeBSD 9.1, but will likely also work on older versions.
All 32-bit binaries are compiled for
i686 (Pentium Pro or newer). 64-bit binaries are included for some platforms.
There is also a port of
innoextract to Android by Alan Woolley.
Mac OS XThere are no pre-built
innoextractbinaries for OS X, but there is a Homebrew package.
You can also build it yourself by downloading the source code and then following these instructions.
innoextract packages are available for the following operating systems and Linux distributions:
|OS / Distribution||Repository||Package||Version||Type|
|ALT Linux||Sisyphus repository||innoextract||1.4||distro|
|Arch Linux||Arch User Repository||innoextract||1.4||user||Instructions|
|Chakra||Chakra Community Repo||innoextract||1.4||user||Instructions|
|Debian stable (7, 8)||home:dscharrer on OBS||innoextract||1.4||own||Instructions|
|Debian 7 (wheezy)||main||innoextract||1.2+git20120504||distro||Instructions|
|Debian 8 (jessie)||main||innoextract||1.4||distro||Instructions|
|Debian testing (stretch)||main||innoextract||1.4||distro||Instructions|
|Debian unstable (sid)||main||innoextract||1.4||distro||Instructions|
|Fedora||home:dscharrer on OBS||innoextract||1.4||own||Instructions|
|Gentoo Linux||portage tree||innoextract||1.4||distro||Instructions|
|Mac OS X||Homebrew||innoextract||1.4||distro||Instructions|
|openSUSE||home:dscharrer on OBS||innoextract||1.4||own||Instructions|
|openSUSE||Archiving on OBS||innoextract||1.4||distro||Instructions|
|Slackware 13.37 - 14.1||~alien||innoextract||1.3||user|
|Slackware 14.0 - 14.1||slackbuilds.org||innoextract||1.4||user|
|Ubuntu 10.04 - 13.10||ppa:arx/release||innoextract||1.4||own||Instructions|
|Ubuntu 14.04 (trusty)||universe||innoextract||1.4||distro||Instructions|
|Ubuntu 14.10 (utopic)||universe||innoextract||1.4||distro||Instructions|
|Ubuntu 15.04 (vivid)||universe||innoextract||1.4||distro||Instructions|
If your distribution is not listed, first check the appropriate repositories in case someone already created a package for your distribution. If you create your own packages or find one that isn't listed here, please let me know so that I can add them.
For distributions where no package is available, you can either build from source code or use the following distribution-agnostic binaries. Using a distribution-specific package, if available, is recommended for better integration with the rest of the system.
The Linux tarball includes x86, amd64 and ARMELv6j+hardfloat+vfp (Raspberry Pi compatible) binaries.
To extract a setup file to the current directory run:
$ innoextract <file>
A list of available options can be retrieved using
$ innoextract --help
$ man 1 innoextract
innoextract cannot guarantee good forward compatibility as the Inno Setup data format changes frequently. The following table lists the supported versions:
|innoextract 1.3 or newer||Inno Setup 1.2.10 to 5.5.5|
|innoextract 1.0 to 1.2||Inno Setup 1.2.10 to 5.4.3|
GOG.com installers with a 2.x.x version number on the download page or in the filename use Inno Setup 5.5.0 and cannot be extracted by
innoextract 1.2 and older. Older installers use Inno Setup 5.2.3 and usually have no version in the filename.
Some GOG.com multi-part installers with version 2.1.x or higher use RAR archives (renamed to
.bin) to store the game data. These files are not part of the Inno Setup installer and will not be extracted by
innoextractcurrently only supports extracting all the data. There is no support for extracting individual files or components and limited support for extracting language-specific files.
- Included scripts and checks are not executed.
- The mapping from Inno Setup variables like the application directory to subdirectories is hard-coded.
innoextractdoes not check if an installer includes multiple files with the same name and will continually overwrite the destination file when extracting.
- Names for data slice/disk files in multi-file installers must follow the standard naming scheme.
- Encrypted installers are not supported.
Also see the list of planned/requested enhancements on the issue tracker.
A perhaps more complete, but Windows-only, tool to extract Inno Setup files is
- source code repository on GitHub
- bug tracker on GitHub
- Travis CI page
- Coverity Scan page
- build logs
- Doxygen documentation
- Open Hub source code statistics
- Debian popularity contest statistics
- packaging scripts on GitHub
- Launchpad project
- openSUSE Build Service package
- Freecode page
Projects using innoextract
- gogonlinux uses
innoextractto unpack GOG.com installers
- Inno Setup Extractor for Android uses
innoextractas the backend
- The arch-gog project uses
innoextractin many PKGBUILD scripts
- vcmibuilder uses
innoextractwhen installing from a GOG.com setup file
- arx-install-data from Arx Libertatis uses
innoextractto extract GOG.com installers and Arx Fatalis patches
- The Linux version of the Daikatana 1.3 patch uses
innoextractin its GOG.com install script