Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A tool to unpack installers created by Inno Setup

License

NotificationsYou must be signed in to change notification settings

dscharrer/innoextract

Repository files navigation

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

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

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

See the website forLinux packages.

Contact

Website

Author:Daniel Scharrer

Dependencies

  • Boost 1.37 or newer
  • liblzma fromxz-utils(optional)
  • iconv (optional, either as part of the system libc, as is the case withglibc anduClibc, or as a separatelibiconv)

For Boost you will need the headers as well as theiostreams,filesystem,date_time,system andprogram_options libraries. Older Boost version may work but are not actively supported. The boostiostreams 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 needCMake 2.8 and a working C++ compiler, as well as the development headers for liblzma and boost.

See the Website foroperating 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 thecmake command to enable debug output and fast incremental builds.

Build options:

OptionDefaultDescription
BUILD_DECRYPTIONONBuild decryption support.
USE_LZMAONUseliblzma.
WITH_CONVnot setThe charset conversion library to use. Valid values areiconv,win32 andbuiltin¹. If not set, a library appropriate for the target platform will be chosen.
CMAKE_BUILD_TYPEReleaseSet toDebug to enable debug output.
DEBUGOFF²Enable debug output and runtime checks.
DEBUG_EXTRAOFFExpensive debug options.
SET_WARNING_FLAGSONAdjust compiler warning flags. This should not affect the produced binaries but is useful to catch potential problems.
SET_NOISY_WARNING_FLAGSOFFEnable warnings with false positives many cases that still need to be fixed.
SET_OPTIMIZATION_FLAGSONAdjust compiler optimization flags.
CXX_STD_VERSION2017Maximum C++ standard version to enable.
USE_DYNAMIC_UTIMENSATOFFDynamically load utimensat(2) if not available at compile time.
USE_STATIC_LIBSOFF³Turns on static linking for all libraries, including-static-libgcc and-static-libstdc++. You can also use the individual options below:
LZMA_USE_STATIC_LIBSOFFStatically linkliblzma.
Boost_USE_STATIC_LIBSOFFStatically link Boost. See alsoFindBoost.cmake.
ZLIB_USE_STATIC_LIBSOFFStatically linklibz. (used via Boost)
BZip2_USE_STATIC_LIBSOFFStatically linklibbz2. (used via Boost)
iconv_USE_STATIC_LIBSOFFStatically linklibiconv.
STRICT_USEOFFAbort if there are missing optional dependencies.
DEVELOPEROFFEnable build options suitable for developers⁵.
FASTLINKOFFOptimize for link speed.
USE_LTOON²Use link-time code generation.
USE_LDbestLinker to use -default,mold,lld,gold,bfd orbest
BUILD_TESTSOFFBuild unit tests that can be run usingmake check
RUN_TESTSOFFAutomatically run tests
RUN_TARGET(none)Wrapper to run binaries produced in the build process
  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 ifCMAKE_BUILD_TYPE is set toDebug.
  3. Under Windows, the default isON.
  4. Default isON ifUSE_STATIC_LIBS is enabled.
  5. Currently this and enablesDEBUG,BUILD_TESTS,RUN_TESTS andFASTLINK for faster incremental builds and improved debug output, unless those options have been explicitly specified by the user.
  6. Enabled automatically ifDEVELOPER is enabled.
  7. Enabled automatically ifDEVELOPER is enabled unless cross-compiling withoutRUN_TARGET set
  8. Disabled automatically (set todefault) if bothSET_OPTIMIZATION_FLAGS andFASTLINK are disabled.best will select the most suited linker based on availability and other settings such asUSE_LTO.

Install options:

OptionDefaultDescription
CMAKE_INSTALL_PREFIX/usr/localWhere to install innoextract.
CMAKE_INSTALL_BINDIRbinLocation for binaries (relative to prefix).
CMAKE_INSTALL_DATAROOTDIRshareLocation for data files (relative to prefix).
CMAKE_INSTALL_MANDIR${DATAROOTDIR}/manLocation 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 isinnounp.

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 orjrsoftware.org.


[8]ページ先頭

©2009-2025 Movatter.jp