Inno Setup is a tool to create installers for Microsoft Windows applications. innoextract allows to extract such installers without running the actual setup executable under Windows or using Wine. innoextract currently supports installers created by Inno Setup 1.2.10 to 6.2.1. (
details]
Author:
Daniel Scharrer (
daniel@constexpr.org)
License:
zlib/libpngIn addition to standard Inno Setup installers, innoextract also supports some modified Inno Setup variants including
Martijn Laan's My Inno Setup Extensions 1.3.10 to 3.0.6.1 as well as
GOG.com's Inno Setup-based game installers. innoextract is able to unpack
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.
While developed on Linux, innoextract is cross-platform and meant to work with any C++03 to C++17 compiler, architecture and operating system supported by
CMake,
Boost,
liblzma and (optionally)
iconv.
Announcements
https://constexpr.org/feed.rssinnoextract 1.9 released2020-08-09
- Added preliminary support for Inno Setup 6.1.0
- Added support for a modified Inno Setup 5.4.2 variant
- Fixed output directory being created for unsupported installers
- Fixed some safe non-ASCII characters being stripped from filenames
- Fixed handling of path separators in Japanese and Korean installers
- Fixed build with newer Boost versions
- Windows: Fixed heap corruption
- Windows: Fixed garbled output
See the
full changelog for more details.
DownloadThe current version of innoextract is 1.9 (
changelog):
The files have been signed with
this OpenPGP key (
28555A66D7E1DEC9).
Windows binaries should work on XP or newer.
The Linux tarball includes x86, amd64 and ARMELv6j+hardfloat+vfp (
Raspberry Pi compatible) binaries.
FreeBSD binaries are built against FreeBSD 9.1, but will likely also work on other versions.
All 32-bit binaries are compiled for i686 (Pentium Pro or newer). 64-bit binaries are included for some platforms.
Older versions are still available for download.
There is also a
port of innoextract to Android by Alan Woolley.
macOSThere are no pre-built innoextract binaries for macOS (formerly OS X), but there are also MacPorts and
Homebrew packages.
You can also build it yourself by downloading the source code and then following
these instructions.
Packagesinnoextract packages are available for the following operating systems and Linux distributions:
OS / DistributionRepositoryPackageVersionType
Alpine Linux
Alpine packages innoextract 1.9 distro
ALT Linux
Sisyphus repository innoextract 1.9 distro
AOSC OS
AOSC packages innoextract 1.9 distro
Arch Linux
community innoextract 1.9 distro
Instructions Calculate Linux
Portage innoextract 1.9 distro
Chakra
Chakra Community Repo innoextract 1.4 user
Instructions Clear Linux
sysadmin-basic innoextract 1.8 distro
Debian stable
home:dscharrer on
OBS innoextract 1.9 own
Instructions Debian 8 (jessie) main
innoextract 1.4 distro
Instructions Debian 9 (stretch) main
innoextract 1.6 distro
Instructions Debian 10 (buster) main
innoextract 1.7 distro
Instructions Debian testing (bullseye) main
innoextract 1.8 distro
Instructions Debian unstable (sid) main
innoextract 1.8 distro
Instructions Deepin deepin
innoextract 1.6 distro
Devuan 1 (Jessie) main
innoextract 1.4 distro
Devuan 2 (ASCII) main
innoextract 1.6 distro
Devuan 3 (Beowulf) main
innoextract 1.7 distro
Devuan Testing (Chimaera) main
innoextract 1.8 distro
Devuan Unstable (Ceres) main
innoextract 1.8 distro
DragonFly BSD
DPorts innoextract 1.9 distro
EL 7 (RHEL 7, CentOS 7, …)
scx on
Copr innoextract 1.7 user
Fedora
home:dscharrer on
OBS innoextract 1.9 own
Instructions Fedora 32
fedora innoextract 1.8 distro
Instructions Fedora 33
fedora innoextract 1.8 distro
Instructions Fedora 34
fedora innoextract 1.9 distro
Instructions FreeBSD
FreeBSD ports innoextract 1.9 distro
Instructions Funtoo
nokit innoextract 1.7 distro
Gentoo
arx-libertatis overlay innoextract 1.9 own
Instructions GuixSD GNU Guix
innoextract 1.9 distro
Haiku
HaikuPorts innoextract 1.8 distro
Kali Linux main
innoextract 1.8 distro
Linuxbrew
linuxbrew-core innoextract 1.9 distro
macOS
Homebrew innoextract 1.9 distro
Instructions macOS
MacPorts innoextract 1.9 distro
Mageia
home:dscharrer on
OBS innoextract 1.9 own
Instructions Mageia 6 Core
innoextract 1.6 distro
Instructions Mageia 7 Core
innoextract 1.7 distro
Instructions Mageia 8 Core
innoextract 1.9 distro
Instructions Mageia Cauldron Core
innoextract 1.9 distro
Instructions Manjaro community
innoextract 1.8 distro
NetBSD
pkgsrc innoextract 1.9 distro
Instructions NixOS
NixOS packages innoextract 1.9 distro
Instructions OpenBSD
OpenBSD ports innoextract 1.9 distro
Instructions OpenMandriva
OpenMandriva Association innoextract 1.9 distro
openSUSE
home:dscharrer on
OBS innoextract 1.9 own
Instructions openSUSE
Archiving on
OBS innoextract 1.9 distro
Instructions openSUSE Leap 42.1
official release innoextract 1.4 distro
Instructions openSUSE Leap 42.2
official release innoextract 1.6 distro
Instructions openSUSE Leap 42.3
official release innoextract 1.6 distro
Instructions openSUSE Leap 15.0
official release innoextract 1.6 distro
Instructions openSUSE Leap 15.1
official release innoextract 1.7 distro
Instructions openSUSE Leap 15.2
official release innoextract 1.7 distro
Instructions openSUSE Tumbleweed
official release innoextract 1.9 distro
Instructions Parabola GNU/Linux-libre
community innoextract 1.9 distro
Pardus main
innoextract 1.7 distro
Parrot OS main
innoextract 1.8 distro
PLD Linux
packages innoextract 1.9 distro
PureOS main
innoextract 1.8 distro
Raspbian stable
home:dscharrer on
OBS innoextract 1.9 own
Instructions Raspbian main
innoextract 1.8 distro
Instructions Slackware 14.0
slackbuilds.org innoextract 1.4 user
Slackware 14.1
slackbuilds.org innoextract 1.5 user
Slackware 14.2
slackbuilds.org innoextract 1.9 user
Solus
shannon innoextract 1.9 distro
Solus
unstable innoextract 1.9 distro
Source Mage
grimoire innoextract 1.8 distro
SUSE Linux Enterprise 15
SUSE Package Hub innoextract 1.7 distro
Trisquel main
innoextract 1.6 distro
Ubuntu
ppa:arx/release innoextract 1.9 own
Instructions Ubuntu 18.04 (bionic) universe
innoextract 1.6 distro
Instructions Ubuntu 20.04 (focal) universe
innoextract 1.8 distro
Instructions Ubuntu 20.10 (groovy) universe
innoextract 1.8 distro
Instructions Ubuntu 21.04 (hirsute) universe
innoextract 1.8 distro
Instructions Ubuntu 21.10 (impish) universe
innoextract 1.8 distro
Instructions Void Linux
Void Packages innoextract 1.9 distro
Windows
Chocolatey innoextract 1.9 user
Instructions Windows
MSYS2 innoextract 1.9 user
Windows
Scoop innoextract 1.9 user
Windows
Yet Another Cygwin Ports innoextract 1.9 user
If your distribution is not listed, first check
Repology's package version list as well as 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.
UsageTo extract a setup file to the current directory run:$ innoextract <file>
A list of available options can be retrieved using$ innoextract --help
Documentation is also available as a
man page:$ man 1 innoextract
Compatibilityinnoextract cannot guarantee good forward compatibility as the Inno Setup data format changes frequently. The following table lists the supported versions:
innoextract
1.9 or newer Inno Setup 1.2.10 to
6.2.1 innoextract
1.8 Inno Setup 1.2.10 to
6.0.5 innoextract
1.7 Inno Setup 1.2.10* to
5.6.1 innoextract
1.6 Inno Setup 1.2.10* to
5.5.9 innoextract
1.5 Inno Setup 1.2.10* to
5.5.6 innoextract
1.3 to 1.4 Inno Setup 1.2.10* to
5.5.5 innoextract
1.0 to 1.2 Inno Setup
1.2.10* to
5.4.3* innoextract 1.7 and older cannot extract installers created by Inno Setup 1.3.0 to 1.3.23.
GOG.com InstallersGOG.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. However, innoextract 1.5 or newer can extract them using the --gog option if either unrar or
unar is installed.
Other newer GOG.com installers don't include the raw files directly but instead store them in GOG Galaxy format: split into small parts which are then individually compressed. These files are named after their MD5 hash and stored in the tmp directory, for example "tmp/ab/d7/abd72c0dddc45f2ce6098ce3a286066a". innoextract 1.7 or newer will automatically re-assemble these parts and extract the original files unless the --no-gog-galaxy option is used.
Some multi-part GOG.com installers use .bin slice files larger than 2 GiB - extracting these requires innoextract 1.8 or newer on 32-bit platforms. Older versions failed with a "bad chunk magic" error.
Limitations- There is no support for extracting individual components and limited support for filtering by name.
- Included scripts and checks are not executed.
- The mapping from Inno Setup constants like the application directory to subdirectories is hard-coded.
- Names for data slice/disk files in multi-file installers must follow the standard naming scheme.
Also see the
list of planned/requested enhancements on the issue tracker.
Another (Windows-only) tool to extract Inno Setup files is
innounp.
Development InformationProjects using innoextractRelated Projects- Inno Setup
- innounp - alternative to innoextract for Windows
- uninno - portable unpacking tool for Inno Setup installers, written in Perl
- inno2john - cracks password protected Inno Setup generated installers using John the Ripper
- cabextract - unpacker for .cab files used in Microsoft installers
- unshield - unpacker for .cab files used in InstallShield installers
This website uses icons from the
Oxygen icon set which is dual-licensed as
CC-BY-SA 3.0 and
LGPL.
Stycil Tux by Cheeseness - CC0 1.0 Universal.
This project is in no way associated with Inno Setup or
jrsoftware.org.