All Projects → dscharrer → Innoextract

dscharrer / Innoextract

Licence: other
A tool to unpack installers created by Inno Setup

Projects that are alternatives of or similar to Innoextract

Cmake Templates
Some CMake Templates (examples). Qt, Boost, OpenCV, C++11, etc 一些栗子
Stars: ✭ 368 (-9.58%)
Mutual labels:  cmake, boost
Hazelcast Cpp Client
Hazelcast IMDG C++ Client
Stars: ✭ 67 (-83.54%)
Mutual labels:  cmake, boost
Cmake Examples
Useful CMake Examples
Stars: ✭ 7,220 (+1673.96%)
Mutual labels:  cmake, boost
Burst
То, чего нет в Бусте
Stars: ✭ 72 (-82.31%)
Mutual labels:  cmake, boost
tbag
Tea-bag is Third party extension utility project
Stars: ✭ 13 (-96.81%)
Mutual labels:  boost, zlib
S25client
Return To The Roots (Settlers II(R) Clone)
Stars: ✭ 288 (-29.24%)
Mutual labels:  cmake, boost
Bcm
Boost cmake modules
Stars: ✭ 48 (-88.21%)
Mutual labels:  cmake, boost
Rawspeed
fast raw decoding library
Stars: ✭ 179 (-56.02%)
Mutual labels:  cmake, zlib
Fixed point
C++ Binary Fixed-Point Arithmetic
Stars: ✭ 199 (-51.11%)
Mutual labels:  cmake, boost
Vanilla Rtb
Real Time Bidding (RTB) - Demand Side Platform framework
Stars: ✭ 257 (-36.86%)
Mutual labels:  cmake, boost
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (-17.69%)
Mutual labels:  cmake, zlib
Phoenix
A multi-system emulator and library manager designed to be both powerful and easy to use.
Stars: ✭ 367 (-9.83%)
Mutual labels:  cmake
Flate2 Rs
DEFLATE, gzip, and zlib bindings for Rust
Stars: ✭ 390 (-4.18%)
Mutual labels:  zlib
Libcopp
cross-platform coroutine library in c++
Stars: ✭ 398 (-2.21%)
Mutual labels:  boost
Units
A compile-time enabled Modern C++ library that provides compile-time dimensional analysis and unit/quantity manipulation.
Stars: ✭ 365 (-10.32%)
Mutual labels:  cmake
Downloadproject
CMake module for downloading an external project's source at configure time
Stars: ✭ 388 (-4.67%)
Mutual labels:  cmake
Cmakepp
An Enhancement Suite for the CMake Build System
Stars: ✭ 365 (-10.32%)
Mutual labels:  cmake
Awesome Cmake
A curated list of awesome CMake resources, scripts, modules and examples.
Stars: ✭ 3,970 (+875.43%)
Mutual labels:  cmake
Gzipswift
Swift framework that enables gzip/gunzip Data using zlib
Stars: ✭ 356 (-12.53%)
Mutual labels:  zlib
Ros 21 tutorials
《古月 · ROS入门21讲》课件&源码
Stars: ✭ 405 (-0.49%)
Mutual labels:  cmake

innoextract - 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 6.1.2.

In addition to standard Inno Setup installers, innoextract also supports some modified Inno Setup variants including Martijn Laan's My Inno Setup Extensions 3.0.6.1 as well as GOG.com's Inno Setup-based game installers.

innoextract is available under the ZLIB license - see the LICENSE file.

See the website for Linux packages.

Contact

Website

Author: Daniel Scharrer

Dependencies

  • Boost 1.37 or newer
  • liblzma from xz-utils (optional)
  • iconv (optional, either as part of the system libc, as is the case with glibc and uClibc, or as a separate libiconv)

For Boost you will need the headers as well as the iostreams, filesystem, date_time, system and program_options libraries. Older Boost version may work but are not actively supported. The boost iostreams library needs to be build with zlib and bzip2 support.

While innoextract can be built without liblzma by manually setting -DUSE_LZMA=OFF, it is highly recommended and you won't be able to extract most installers created by newer Inno Setup versions without it.

To build innoextract you will also need CMake 2.8 and a working C++ compiler, as well as the development headers for liblzma and boost.

See the Website for operating system-specific instructions.

Compile and install

To compile innoextract, run:

$ mkdir -p build && cd build
$ cmake ..
$ make

To install the binaries system-wide, run as root:

# make install

The default build settings are tuned for users - if you plan to make changes to Arx Libertatis you should append the -DDEVELOPER=1 option to the cmake command to enable debug output and fast incremental builds.

Build options:

Option Default Description
USE_ARC4 ON Build ARC4 decryption support.
USE_LZMA ON Use liblzma.
WITH_CONV not set The charset conversion library to use. Valid values are iconv, win32 and builtin¹. If not set, a library appropriate for the target platform will be chosen.
CMAKE_BUILD_TYPE Release Set to Debug to enable debug output.
DEBUG OFF² Enable debug output and runtime checks.
DEBUG_EXTRA OFF Expensive debug options.
SET_WARNING_FLAGS ON Adjust compiler warning flags. This should not affect the produced binaries but is useful to catch potential problems.
SET_NOISY_WARNING_FLAGS OFF Enable warnings with false positives many cases that still need to be fixed.
SET_OPTIMIZATION_FLAGS ON Adjust compiler optimization flags.
CXX_STD_VERSION 2017 Maximum C++ standard version to enable.
USE_DYNAMIC_UTIMENSAT OFF Dynamically load utimensat(2) if not available at compile time.
USE_STATIC_LIBS OFF³ Turns on static linking for all libraries, including -static-libgcc and -static-libstdc++. You can also use the individual options below:
LZMA_USE_STATIC_LIBS OFF Statically link liblzma.
Boost_USE_STATIC_LIBS OFF Statically link Boost. See also FindBoost.cmake.
ZLIB_USE_STATIC_LIBS OFF Statically link libz. (used via Boost)
BZip2_USE_STATIC_LIBS OFF Statically link libbz2. (used via Boost)
iconv_USE_STATIC_LIBS OFF Statically link libiconv.
STRICT_USE OFF Abort if there are missing optional dependencies.
DEVELOPER OFF Enable build options suitable for developers⁵.
FASTLINK OFF Optimize for link speed.
USE_LTO ON² Use link-time code generation.
  1. The builtin charset conversion only supports Windows-1252 and UTF-16LE. This is normally enough for filenames, but custom message strings (which can be included in filenames) may use arbitrary encodings.
  2. Enabled automatically if CMAKE_BUILD_TYPE is set to Debug.
  3. Under Windows, the default is ON.
  4. Default is ON if USE_STATIC_LIBS is enabled.
  5. Currently this and enables DEBUG and FASTLINK for faster incremental builds and improved debug output, unless those options have been explicitly specified by the user.
  6. Enabled automatically if DEVELOPER is enabled.
  7. Disabled automatically if SET_OPTIMIZATION_FLAGS is disabled or FASTLINK is enabled.

Install options:

Option Default Description
CMAKE_INSTALL_PREFIX /usr/local Where to install innoextract.
CMAKE_INSTALL_BINDIR bin Location for binaries (relative to prefix).
CMAKE_INSTALL_DATAROOTDIR share Location for data files (relative to prefix).
CMAKE_INSTALL_MANDIR ${DATAROOTDIR}/man Location for man pages (relative to prefix).

Set options by passing -D<option>=<value> to cmake.

Run

To 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

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 variables 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.

A perhaps more complete, but Windows-only, tool to extract Inno Setup files is innounp.

Extracting Windows installer executables created by programs other than Inno Setup is out of the scope of this project. Some of these can be unpacked by the following programs:

Disclaimer

This project is in no way associated with Inno Setup or jrsoftware.org.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].