[ITEM]
23.03.2020

Decompiler Installshield Software

Jump to Software - InstallShield Z format is a compressed archive format used by version 3 of the InstallShield installation software. Documentation is lacking. InstallShield setup.inx file for Bloodmoon, decompiled with SID Raw. Look at most relevant Windows installshield decompile websites out of 52.3 Thousand at MetricsKey. Windows installshield decompile found at forum.installsite.net. InstallShield use to leverage the.

Skip to: Download/Screenshots Installation and Usage Technical Details Supported Formats Credits

Introduction

Universal Extractor Feedback
If you have any questions about, or find any problems with, Universal Extractor, please post your comments to the UniExtract subforum on the MSFN message board. This has become the main point of discussion for this project.

Universal Extractor is a program designed to decompress and extract files from any type of archive or installer, such as ZIP or RAR files, self-extracting EXE files, application installers, etc. The full list of supported formats can be found in the table below. It's able to support so many varied file formats by utilizing the many backend utilities listed in the credits at the bottom of the page.

Please note that Universal Extractor is not intended to be a general purpose archiving program. It cannot (and never will) create archives, and therefore cannot fully replace archivers such as 7-Zip or WinRAR. What it will do, however, is allow you to extract files from virtually any type of archive, regardless of source, file format, compression method, etc.

The original motivation behind this project was to create an easy, convenient way to extract files from various types of installation packages without the need to remember arcane command line switches or track down separate utilities to handle the unpacking. Over time, and with the encouragement of its many users and the fine folks over on the MSFN forum, it has evolved into a mature and very capable unarchiving utility that many, including myself, find indispensable.

Screenshots


Universal Extractor context menu
Universal Extractor file/destination GUI
Universal Extractor preferences

Download Current Version: 1.6.1, Released: 05/12/2010

UniExtract Installer (5.3 MB) - This is the recommended download. The installer will automatically install the application and optionally integrate with the Windows Explorer context menu. This package does not contain source code.

UniExtract Binary Archive (4.95 MB) - This archive contains the binaries. Download this if you want a portable version, or just prefer not to use the installer.

UniExtract Source Code (163.13 KB) - This archive only contains the source code, but it includes all support files as well (compiler scripts, installer, etc.). This is best to download (along with the binary archive) if you want to help further development of UniExtract.

ChangeLog, ToDo - UniExtract development details

Universal Extractor Download Archive - archived versions of all official binary and source code releases

Note: If you download Universal Extractor from one of the official links above, it is not infected with a virus. If your anti-virus software tells you otherwise, please see this forum post for details.

Language Files

As of version 1.4, Universal Extractor supports internationalization. If you're interested in translating Universal Extractor into another language, please download the source archive and follow the instructions in English.ini. Please send me your completed translation and I'll include it in the next version of Universal Extractor. Thanks to all of the contributors!

To use these language files, simply download and copy into the lang directory of your Universal Extractor installation. The new language will appear as an option the next time you run UniExtract.

Note: The (alt) language files are alternate translations that are not included with the official release. Sometimes I get multiple submissions for a single language, and I like to give everyone credit, but I generally stick with the first one that's submitted out of fairness. Some of the alternate translations may be better than the included ones (or, they may not be), so feel free to give them a try. If you find that an alternate version is better than the included version, please let me know; I may switch them out for the next release.

Language FileNative NameContributerAdded/Updated
Arabic*العربيةAwadh A Al-Ghaamdi10/22/2008
Arabic (alt)العربيةMusab (KooTaa)10/12/2008
Armenian*Հայերէն HayerenHrant Ohanyan05/11/2010
Bulgarian*БългарскиКирил Кирилов (DumpeR)10/12/2008
Chinese (Simplified)简体中文phCole05/13/2010
Chinese (Traditional)*繁体中文Huang Junwei11/21/2006
Croatian*HrvatskiTomislav Glušac10/22/2008
Croatian (alt1)HrvatskiDanijel Ivanieviæ05/11/2010
Croatian (alt2)HrvatskiIvica Hrvoj Ivanić10/12/2008
Czech*ČeštinaLubomír Hajda05/11/2010
Dutch*NederlandsRobby Kooken10/12/2008
English*English (American)Default/native language file05/12/2010
Finnish*SuomiTeijo Sakkara10/25/2008
French*Françaisjacklours10/22/2008
GermanDeutschArno Krumpholz05/13/2010
Greek*ΕλληνικάNick Mattheakis10/22/2008
Hungarian*MagyarSimon László03/25/2007
Italian*ItalianoTJL73 / Roberto Boriotti05/11/2010
Japanese*日本語Yachuko Nakai11/28/2006
Japanese (alt)日本語Nardog11/28/2006
Korean*한국어/조선말Sunsuk Kim03/21/2007
Persian (Farsi)*فارسیSajjad Mohammadi05/11/2010
Polish*Język PolskiULTIMA PRIME02/22/2007
Portuguese*PortuguêsJosé Gonçalves03/01/2007
Portuguese (Brazilian)*PortuguêsZimzuM / Marcio Barbosa03/21/2007
Romanian*Limba RomânăCristian Stefan02/27/2007
Russian*Русский языкgora05/11/2010
Russian (alt)Русский языкAVV_UA10/12/2008
Russian (old)Русский языкPolarbond02/22/2007
Serbian*SrpskiIvan Stambolić05/11/2010
Slovak*SlovenčinaPeter Žilák02/22/2007
Spanish*EspañolMario Ángel / Leonardo Mauro02/22/2007
Spanish (alt)EspañolArturo Vergara05/13/2010
Swedish*SvenskaStefan Weber05/11/2010
Taiwanese*臺灣話YoYo10/12/2008
Thai*ภาษาไทยPruthisith (Terry) Prateepavanich11/28/2006
Turkish*TürkçeOnur AYDIN03/01/2007
Ukrainian*украї́нська мо́ва,Warrior10/28/2008
Valencian (Catalan)*Valencià (Català)Rafel Hidalgo i Rangel03/25/2007
Vietnamese*Tiếng ViệtNguyen Nhat Quang02/22/2007

* = Included in current release

Installation and Usage

To install UniExtract, download the installer and run it on your system. You will have a few options during installation:

Select Components - These options specify which program components are installed to disk. These options are only really useful if you need to reduce the installation size.

  • Documentation and licensing information - This includes all files in the docssubdirectory
  • Language files for internationalization support - This includes all files in the lang subdirectory
  • Support for ACE files - Binaries and/or libraries required for ACE archives
  • Support for KGB files - Binaries and/or libraries required for KGB archives
  • Support for Pea files - Binaries and/or libraries required for Pea archives
  • Support for StuffIt files - Binaries and/or libraries required for StuffIt (.sit) archives

Set Program Options - These options adjust the default Universal Extractor behavior. They can be changed after installation through the Preferences menu.

  • Default Language - specifies the language used by UniExtract
  • Debug File Location - specifies the directory to which UniExtract should write its debug file
  • Append missing file extensions - attempt to determine and append the correct extension for improperly named files using TrID
  • Maintain archive history - maintain a list of the ten most recent files that were extracted, as well as the destination directories
  • Remove duplicate files - attempt to detect and remove duplicate that may have been created during extraction
  • Remove temporary files - automatically remove temporary files that may be created during extraction
  • Warn before executing files - some .exe archives must actually be executed in order to perform the extraction. Since this can be a security risk (executing unknown/untrusted code is always a bad idea), UniExtract will display a warning before extracting these types of files.

Select Additional Tasks - These options specify additional actions that can be performed by the installer. They only affects installation of Universal Extractor, and cannot be modified later.

  • Enable Explorer context menu integration - allows you to right click on any archive and directly extract its files
    • Add UniExtract Files.. to context menu - adds ability to specify destination directory
    • Add UniExtract Here to context menu - adds ability to quickly extract to current directory
    • Add UniExtract to Subdir to context menu - adds ability to quickly extract to subdirectory
    • Force association with with all supported archive formats - Forces UniExtract to associate itself with all supported file extensions; by default, it will only associate itself with native Windows formats (.exe, .msi, etc.) and other formats not currently associated with another program
  • Add Universal Extractor to your system path - allows you to run UniExtract (and any related binaries) from the command line
  • Create a SendTo icon - add a shortcut for Universal Extractor to your SendTo context menu
  • Create a desktop icon - add a shortcut for Universal Extractor to your desktop
  • Create a Quick Launch icon - add a shortcut for Universal Extractor to your Quick Launch bar

If you wish to automate installation (for custom or unattended installs), please run uniextractXX.exe /? to get a detailed description of available command-line options for the installer. All standard Inno Setup command line parameters apply, but also pay special attention to the Components, Tasks, and Custom Parameters detailed at the bottom of the help window.

For manual installation with the binary archive, simply extract the files to the destination folder you would like. By default, this puts UniExtract in 'portable mode'. This means that the globalprefs option is enabled (see changelog for details) and the history option is disabled (see Program Options above). The end result is UniExtract can be easily run from portable devices like USB flash drives without leaving any trace of use. Of course, it'll also work just as well if copied to a real hard drive, and all preferences can be modified at any time by editing UniExtract.ini, or by running UniExtract.exe /prefs.

Once UniExtract is installed, usage is simple. The easiest way, if you used the installer and enabled context menu integration, is to right-click on any archive and select click one of the UniExtract options. UniExtract Here will extract files to the current directory, UniExtract to Subdir will extract files to a subdirectory named after the file, and UniExtract Files will prompt you for the destination directory.

If you did not enable context menu integration, you may run the Universal Extractor start menu shortcut, or double-click directly on UniExtract.exe. This will launch the UniExtract GUI. Enter (or use the file browser to select) the file you wish to extract and the destination directory, then click OK. It is also possible to drag-and-drop the file you wish to extract onto the icon or main application window to easily extract the dropped file.

UniExtract can also be run from the command line. Run UniExtract.exe /? for detailed command line parameters.

You can use Add/Remove Programs to uninstall UniExtract, or just delete the directory if you used the binary archive.

Technical Details

When a file is passed to UniExtract, it begins by scanning the file with TrID. If the file format matches one of the supported non-executable formats listed below, it immediately begins extraction from the archive. If it's an executable file, it calls PEiD to analyze the file signature. If the signature indicates that it's a supported format, then it attempts to begin extraction. If it is not a recognized signature, it will try running it through 7-Zip and UnZip as default cases. If 7-Zip or UnZip recognizes it, it will be extracted; otherwise, UniExtract displays an error message and exits.

Note: Filetype scanning with TrID is new as of v1.5. Older versions relied on the file extension to identify the filetype. This behavior is still used if the TrID scan cannot determine the filetype.

If the filetype is supported, UniExtract begins by checking for a valid destination directory and recording the directory size. If necessary, a new directory will be created (with a directory size of zero). UniExtract then spawns a shell and calls the supporting binary to begin extracting files from the selected archive to the destination directory. After completion, UniExtract checks the size and timestamp of the subdirectory to determine if extraction was successful; if the size or timestamp is greater than the initial values, UniExtract assumes success and exits. If extraction fails, UniExtract notifies the user and leaves a log file (uniextract.log) that (should) contain any error messages.

The uniextract.log file is created during the extraction process by the tee program. Essentially, all output from the running binary is redirected to tee, which in turn writes the output to the log file as well as echo it to the screen to give the user current progress. Upon successful execution this file is deleted, but if an error is detected it is left alone for the user to review. Note: As of v1.4, the location of uniextract.log can be changed to any user-specified directory.

Supported Formats

As of v1.5, UniExtract uses TrID to determine the filetype of any given file. If this detection fails, file extensions are used as a backup identifier. The table below is a reference of known-supported filetypes and common extensions; any supported archive types should work regardless of actual extension.

Archive TypeCommon File Extension(s)
7-zip archive.7z, .exe
ACE archive.ace, .exe
ARC archive.arc
ARJ archive.arj, .exe
ASpack compressed file.exe
BIN/CUE CD-ROM image.bin, .cue
bzip2 archive.bz2, .tbz2, .tar.bz2
CPIO compressed file.cpio
Debian package.deb
DiscJuggler CD-ROM image.cdi
Encoded files.b64, .uu, .uue, .xx,
.xxe, .yenc, .ntx
Gentee package.exe
gzip archive.gz, .tgz, .tar.gz
IMG floppy disk image.img
Inno Setup package.exe
Installer VISE package.exe
InstallShield Cabinet archive.cab, .1, .lib
InstallShield package.exe
ISO 9660 CD-ROM image.iso
KGB archive.kgb, kge, .exe
LZH compressed file.lzh, .lha
LZMA compressed file.lzma
LZO compressed file.lzo
LZW compressed file.Z, .tz, .tar.Z
LZX compressed file.lzx
MHTML file.mht
Microsoft Cabinet archive.cab, .exe, .imf
Microsoft Compiled Help file.chm
Microsoft compressed file.??_
Microsoft LIT e-book.lit
Microsoft Windows Help file.hlp
HTC NBH ROM image.nbh
Nero CD-ROM images.nrg
NSIS package.exe
Oasis Document Format (ODF) document.odt, .odp, .odg, .ods
Office Open XML (OOXML) document.docx, .pptx, .xlsx
Outlook Express mail archive.dbx
PEA archive.pea
RAR archive.rar, .001, .exe
Reflexive Arcade package.exe
RoboForm package.exe
RPM package.rpm
SetupFactory package.exe
SIS (SymbianOS) packages.sis
StuffIt packages.sit
TAR archive.tar, .tbz2, .tgz, .txz, .tz,
.tar.bz2, .tar.gz, .tar.xz, .tar.Z
UHARC archive.uha
UPX compressed file.exe, .dll
Windows Imaging Format image.wim
Windows Installer merge module.msm
Windows Installer package.msi
Windows Installer patch.msp
Windows Update Standalone patch.msu
Wise Installer package.exe
XZ compressed file.xz, .txz, .tar.xz
ZIP archive.zip, .jar, .xpi, .wz, .exe
Zoo archive.zoo

Credits

Universal Extractor relies heavily on other programs, and would not be possible without the incredible generosity of the Free Software community. This is a list of all of the applications that are used by, or in the creation of, Universal Extractor:

  • 7-Zip (Igor Pavlov, Open Source) - Excellent general purpose Windows archive utility; used to extract .7z, 7-Zip SFX .exe, .bz2, .cab, .chm, .cpio, .deb, .gz, .iso, .lha, .lz, .lzh, NSIS installer .exe, .rpm, .tar, .xz, .wim, and .Z files (and probably even more that I overlooked)
  • ARC (Howard Chu, Open Source) - ARC archiving utility; used to extract .arc files; Note: binary was obtained from http://gnuwin32.sourceforge.net/packages/arc.htm
  • AspackDie (yoda, Open Source) (homepage seems dead) - Unpacker for ASPack-compressed files; used to unpack .exe files with ASpack compression
  • AutoIt (Jonathan Bennett, Open Source) - General-purpose Windows scripting language; used to write the UniExtract front-end
  • bin2iso (Bob Doiron, Joonas Loppi, Open Source) - Utility to convert BIN/CUE CD-ROM images to ISO images; used in conjunction with 7-Zip to extract .bin/.cue images
  • Barebones Ooz (Booz) - (Rahul Dhesi, Open Source) - Zoo archive extractor/lister; used for extracting .zoo files
  • cdrip (DeXT, Open Source) (homepage seems dead, possible replacement) - Utility to convert DiscJuggler (CDI) CD-ROM images to ISO images; used in conjunction with 7-Zip to extract .cdi images
  • cmdTotal (Adam Blaszczyk, Open Source) - CLI frontend for Total Commander plugins; enables support for the following plugins used by Universal Extractor:
    • DBX (Dmitri R. Letichevski, Freeware) - extracts Outlook Express mail archives
    • InstallExplorer (Domo, Freeware) - Total Commander port of the InstallExplorer plugin for FAR by Sergei Wanin; extracts Gentee, Inno Setup, Installer VISE, InstallShield, NSIS, SetupFactory, and Wise Installer packages
    • MHT Unpacker (Ariel Perez, Freeware) - extracts MHTML files
    • MSI (Alex Gretha, Freeware) - extracts Windows Installer package (MSI) and patch (MSO) files
    • PDunSIS (Patrik Daranský, Freeware) - extracts SIS (SymbianOS) packages
  • Convert LIT (Dan A. Jackson, Open Source) - Converter for Microsoft Reader format e-books; used extract contents from .lit files
  • Crystal SVG (Everaldo Coelho, Free) - Collection of extremely high-quality icons for Linux/KDE; used as the source graphics for the UniExtract icon
  • E_WISE (Veit Kannegieser, Open Source) - Wise Installer decompiler; used for extracting files from Wise Installer packages
  • extract (Gilles Vollant, Freeware) - Floppy disk image extraction utility; used to extract files from .img images
  • ExtractMHT (Jared Breland, Open Source) - Splitter and base64 decoder for MHTML files; used to extract .mht files
  • GIMP (Spencer Kimball and Peter Mattis, Open Source) - The GNU Image Manipulation Program; used to create the icons used by UniExtract
  • HelpDeco (Manfred Winterhoff, Freeware) (homepage seems dead, possible replacement) - Decompiler for Windows Help files; used to extract/reconstruct .hlp files
  • i3comp (Stirling Technologies, Freeware) - InstallShield 3.x Compression and Maintenance utility; used for extracting files from InstallShield 3.x installer packages; can be download as part of WinPack
  • i5comp (fOSSiL, Open Source) - InstallShield 5.x Compression and Maintenance utility; used for extracting files from InstallShield 5.x installer packages; can be download as part of WinPack
  • i6comp (fOSSiL, Morlac, Open Source) - InstallShield 6.x Compression and Maintenance utility; used for extracting files from InstallShield 6.x installer packages; can be download as part of WinPack
  • Info-ZIP UnZip (Info-ZIP, Open Source) - Highly portable ZIP archive utility; used for extracting .zip and ZIP SFX .exe files
  • Inno Setup (Jordan Russell, Open Source) - Open Source packaging application for Windows; used to create the UniExtract installer
  • Innounp (QuickeneR, Open Source) - Inno Setup Unpacker; used for extracting files from Inno Setup installer packages
  • IsXunpack (Pit0n and SkYuS//vN, Freeware) - InstallShield Unpacker; used for extracting files from modern InstallShield installer packages
  • KGB (Thomasz Pawlak, Freeware) - KGB archiver; used to extract .kgb, .kge, and KGB SFX files
  • lzop (Markus F.X.J. Oberhumer, Open Source) - LZO file compression utility; used to extract .lzo files
  • MsiX (Heath Stewart, Open Source) - General purpose stream and transform extractor for Windows Installer files; used to extract files from .msi, .msm, and .msp files
  • NBHextract (pof and TheBlasphemer, Freeware) - Utility to extract contents from NBH files (HTC device ROM images)
  • nrg2iso (Greg Kokanosky, Open Source) - Utility to convert Nero (NRG) CD-ROM images to ISO images; used in conjunction with 7-Zip to extract .nrg images
  • Open-source ARJ (ARJ Software Russia, Open Source) - Open Source implementation of the ARJ archiving utility; used to extract .arj and ARJ SFX .exe files
  • PeaZip (Giorgio Tani, Open Source) - PeaZip archiver; used to extract Pea archives
  • PEiD (Jibz, Qwerton, snaker, and xineohP, Freeware) - Portable Executable File Identifier; used to analyze .exe file signature to determine the filetype and whether or not it's a supported archive; includes Bob's external signature database
  • RAIU (Icebird, Open Source) - Utility to unwrap Reflexive Arcade installers; used in conjunction with innounp to extract Reflect Arcade packages
  • StuffIt Expander 6.0 (Aladdin Systems, Freeware) - StuffIt file decompressor; used for extracting .sit files
  • StIX (Veit Kannegieser, Freeware) - Decompressor for InstallShield 3.x archives and installers; used to extract InstallShield 3.x archives (.1, .lib) and SFX installers (.exe)
  • tee (Free Software Foundation, Open Source) - Shell utility that redirects standard input to multiple outputs; used to write messages to a log file while also displaying current progress; Windows binary was obtained from GNU Utilities for Win32
  • TrID (Marco Pontello, Freeware) - Utility designed to identify file types from their binary signatures; used to determine the type of file passed for extraction
  • UnLZX (Oliver Gantert, Open Source) - LZX file decompression utility; used to extract .lzx files
  • UnRAR (Eugene and Alexander Roshal, Freeware) - Command-line utility for RAR archives; used to extract .rar and RAR SFX .exe files
  • UnUHARC (Uwe Herklotz, Freeware) - Command-line utility for UHARC archives; used to extract .uha files; can no longer find a legitimate source
  • UPX (Markus Oberhumer, Laszlo Molnar & John Reiser, Open Source) - Compression utility for PE files; used to unpack .exe and .dll files with UPX compression
  • UUDeview (Frank Pilhofer, Open Source) - Encoded file decoder; used to decode Base64, UUencoded, XXencoded, and yEnc files
  • WUN (Jägermeister Markus, Icebird, Open Source) - Wise-Setup Unpacker; used for extracting files from Wise Installer packages (updated version of HWUN)
  • XAce (Marcel Lemke, Freeware) - ACE archive utility; used for extracting .ace and ACE SFX .exe files

innounp, the Inno Setup Unpacker
Version 0.49
Supports Inno Setup versions 2.0.7 through 6.0.2

Inno Setup is a popular program for making software installations. Unfortunately, there is no official unpacker - the only method of getting the files out of the self-extracting executable is to run it. One piece of software that addresses this issue is Sergei Wanin's InstallExplorer, a plug-in for the FAR Manager that unpacks several types of installations, including Inno Setup (IS). But since it is not updated in a timely fashion, and so does not support the latest IS most of the time, this program was born. The advantages over InstallExplorer are:

  • Innounp is open source and based on IS source. Therefore, it is more likely to support future IS versions.
  • It recovers portions of the installation script (.iss file), including the registry changes and the compiled Innerfuse/RemObjects Pascal Script, if available.

If you want to report a bug, request a feature, or discuss anything else related to the program, please write to the forum.

On this page:
Usage How to report bugs What's new/History MultiArc settings Copyrights and licensing
In other places:
Download Forum Project summary page on SF.net Homepage

Both the source and the executable packages are compressed with WinRar. While the full-featured packer is shareware, the UnRar utility that can only extract files is free. And there are lots of free third-party programs that unpack rar just fine, e.g. 7-Zip.

As a bonus, a simple unpacker for Setup Factory installations is available on the download page. It is ripped from the SynCE project.

Usage

Innounp is a console application, and it uses command-line options to find out what to do. For a more human-friendly interface utilizing FAR or Total Commander as a front-end see the MultiArc section below. Windows Explorer fans: nullz has made some .reg scripts to add innounp into the right-click menu and Richard Santaella crafted a graphical wrapper for innounp (get it on the download page).

If an installation has setup.0 (it is made without using SetupLdr), run innounp on setup.0 instead of setup.exe.

To extract all files from a specific directory, use dirname*.*, not just dirname.

By default all files are extracted to the current directory. Use -d to override this behaviour. For example, -dUnpacked will create a directory named Unpacked inside the current directory and put the extracted files there.

The -c option is a little more tricky to explain. Suppose you opened an installation in a file manager and browsed to {app}subdirprogram.exe. Now if you copied program.exe to another location, the entire directory tree ({app}subdir) would be created and program.exe would be extracted there. -c notifies innounp that you are only interested in paths from the current directory and below, so that your file, program.exe, is extracted right where you intended to copy it, not several directory levels deeper. Note that in order to avoid confusion, files must still be specified by their full path names inside the installation.

Note that an installation can contain several identical files (possibly under different names). Inno Setup stores only one copy of such files, and by default innounp will also unpack one file. If you want to have all files that could ever be installed anywhere, regardless of how many identical files this may get you, -a option will do it.

If -m is specified, the file listing includes embeddedCompiledCode.bin which is the code made by the RemObjects Pascal Script compiler. It is possible to disassemble it using the ifps3_disasm.rar package on the download page. The result is not very readable though since it uses the basic 'disassembler' from IFPS3. Anyone wants to write a decompiler?

How to report bugs

OK, I know innounp is far from being perfect, but it is my intention to make the program usable. User feedback is a great way to achieve this. Here's what you should do if you find a bug and want it fixed.

Tell me what's wrong with innounp. If you encountered incorrect behaviour, say what you think it should do and what it actually does. If it crashed or gave an error message, say what did that - innounp, Windows, FAR, etc, and include the details.

Describe the exact steps necessary to reproduce the bug. Say what are the preconditions. Is the bug specific to some system settings? To a setup file you have? (include the problem part of the installation script or a link to the compiled setup, if it is small enough) To an IS version? To something else? Or does the bug occur regardless of these things?

Once you have the bug report ready, post it to the forum. Remember, if I can't reproduce the bug using the description you gave, the chances that it will be fixed fall dramatically.

If the above guidelines were not obvious for you, I suggest that you read the following articles.

How to Ask Questions the Smart Way by Eric Raymond
How to Report Bugs Effectively by Simon Tatham

What's new / History

0.49(2019.05.09)

  • Added support for IS 6.0.

0.48(2019.01.25)

  • Added support for IS 5.6.2.
  • Fixed regresson bug introduced by 5.6.0 support.

0.47(2018.07.02)

  • Added support for IS 5.6.0 and 5.6.1.
  • Added AppId field to the script.

0.46(2016.04.11)

  • Increased max. LZMA dictionary size to 1Gb (implemented in IS 5.5.9).

0.45(2015.12.31)

  • Added support for IS 5.5.7.

0.44(2015.11.24)

  • Fixed infinite loop issue on some unsupported versions.
  • Now -m flag does not affect reconstructed script content. It always contains all info.
  • Minor changes.

0.43(2015.07.18)

  • Added support for IS 5.5.6.

0.42(2015.05.27)

  • Added support for IS 1.3.21 and 1.3.25.
  • Experimental support for some custom IS versions.
  • Fixed encoding of several entries in reconstructed script.

0.41(2015.03.18)

  • All slashes in file paths are converted to Windows style for consistency.
  • Improved some error messages.
  • Fixed several parameter names in [INI] section of the script.

0.40(2013.12.20)

  • Synchronized Description fields encoding in reconstructed script.
  • Minor changes.

0.39(2013.07.12)

  • Fixed CRC32 calculation during unpacking (regression bug).

0.38(2013.02.01)

  • Added InstallDelete and UninstallDelete sections to reconstructed script.
  • Added some more values to Setup section of reconstructed script.
  • Several minor reconstructed script improvements.

0.37(2012.06.02)

  • Added support for IS 5.5.0.
  • Fixed problem with reading of large files.
  • Added some more values to reconstructed script.
  • Improved FAR MultiArc settings.

0.36(2011.06.01)

  • Fixed support for IS 5.4.2.
  • Fixed issue with '{' symbol in file names.

0.35(2010.10.01)

  • Added support for IS 5.2.5 (wasn't released, but such installers can be found).
  • Added command to test files for integrity.

0.34(2010.09.16)

  • Less technical text in some error messages.
  • Added dump of password hash to reconstructed script.
  • Added some more values to reconstructed script.

0.33(2010.07.05)

  • Fixed encoding for custom messages in reconstructed script.
  • Fixed several parameters in [LangOptions] section.
  • Fixed language names in *.isl files for Unicode-based installers.
  • Added support for legacy IS versions 2.0.8 - 2.0.10.

0.32(2010.06.14)

  • Added support for IS versions 5.3.10 (both ANSI and Unicode).
  • Added support for INI section in reconstructed script.

0.31(2010.04.19)

  • Fixed issue with endless decompression loop on incompatible files.

0.30(2010.04.12)

  • Fixed issue with password processing for Unicode versions.
  • Added support for IS versions 5.3.9 (both ANSI and Unicode).
  • Added support for LZMA2 compression, introduced in 5.3.9.

0.29(2010.02.19)

  • Added support for IS versions 5.3.8 (both ANSI and Unicode).

0.28(2010.01.14)

  • Added support for IS versions 5.3.7 (both ANSI and Unicode).
  • Added support for legacy IS versions 2.0.11 - 2.0.17.
  • Fixed renaming of duplicate files. If we do not use -a then don't append numbers to names
    (this switch does not affect different files with same name, only duplicates with same content).

0.27(2009.12.04)

  • Yet another tuning for file mask processing.
  • Added overwrite prompt for files extraction (and option for auto-overwrite).
  • Several tweaks to reconstructed script.

0.26(2009.11.30)

  • Added manifest resource to resolve Vista/Win7 UAC issue.
  • Added restored %n formatter to custom messages.
  • Added default OutputBaseFilename value if one from header is empty.

0.25(2009.11.26)

  • Added support fro [Dirs] section in reconstructed script.
  • Moved version parameter in script to comment (since it is not original IS parameter).
  • Fixed ArchitecturesInstallIn64BitMode and ArchitecturesAllowed flags in script.
  • Fixed file mask processing in some cases.

0.24(2009.11.20)

  • Added support for IS versions 5.3.6 (both ANSI and Unicode).
  • Added version information resource.
  • Fixed extraction of multiple files with same name.

0.23(2009.09.25)

  • Added support for IS versions 5.3.5 (both ANSI and Unicode).
  • Added Inno Setup version info to reconstructed install script.

0.22(2009.08.24)

  • Added support for Unicode versions.
  • Added support for IS versions 5.3.0 - 5.3.4 (both ANSI and Unicode).
  • Fixed rare issue with double backslashes in file path.

0.21(2009.04.24)

  • Supports legacy IS versions 2.0.18 - 2.0.19

0.20(2008.05.23)

  • Supports IS up to version 5.2.3
  • Several bugs fixed.

0.19(2007.02.23)

  • Supports IS up to version 5.1.10
  • Fixed wrong representation of Unicode characters in LanguageName.
  • Another fix to the handling of duplicate file names.
  • New option -a to extract all copies of duplicate files.

0.18(2006.11.23)

  • The reconstructed script now includes the [Types], [CustomMessages], and [Languages] sections.
  • ROPS disassembler updated to support the latest build of ROPS.
  • New option -f to read the password from file. This way it can include any special characters.
    Be sure to save the file in the correct character encoding as no translations are applied.
  • Fixed the bug that caused the file timestamps to be inconsistently reported and applied (UTC vs. local).
  • Updated the decompression libraries: zlib to version 1.2.3, bzip2 to version 1.03, and LZMA to version 4.43 (optimized for speed).

0.17(2005.08.31)

  • Supports IS up to version 5.1.5.
  • Supports Martijn Laan's My Inno Setup Extensions 3.0.6.1 (by request).
  • The Types parameter is now space-separated, as required by the IS script specification.

0.16(2005.04.30)

  • Supports IS up to 5.1.2-beta.
  • Innounp will try to unpack new versions of IS to handle the cases when the binary format is compatible with one of the previous versions. Use -n to disable this attempt.

0.15(2005.03.08)

  • Supports IS up to 5.1.0-beta.
  • The old bug that prevented innounp from working properly with {reg:..} constants and the like has got another fix.
  • Preliminary support for the 64-bit extensions that appeared in IS 5.1.0.

0.14(2004.10.14)

  • Supports IS up to 5.0.4-beta.
  • It is now possible to specify the destination directory to extract files into using the -d option. This directory will be created if necessary.
  • New option -c specifies the current directory inside an installation and prevents the creation of the upper-level directories. MultiArc settings are updated accordingly.
  • The old -c command is removed. To get the compiled Pascal script, use -m and extract it like a normal file.

0.13(2004.08.26)

  • Supports IS up to 5.0.3-beta.
  • Supports the Components and Tasks sections.

0.12(2004.07.28)

  • Supports IS up to 5.0.0-beta.
  • Improved processing of big installations with many files.
  • Innounp now supports a certain level of user interaction - it prompts the user for password and disk changes as necessary. To switch this functionality off (e.g. in batch mode), use the -b option.
  • If no command is specified, innounp displays a brief summary of the specified installation. The old -i command is removed. To get the setup script, extract it like a normal file.

0.11(2004.05.04)

  • Supports IS 4.2.2.
  • Supports ArcFour encryption. Use the -p switch to specify a password if files are encrypted

0.10(2004.04.26)

  • Fixed (again): filenames containing invalid characters could not be specified on the command line or in a list file.

0.09(2004.04.22)

  • Fixed (again): invalid characters in filenames (such as ':' and ' ') made innounp crash.
  • Updated TC MultiArc settings.

0.08(2004.04.14)

  • Added support for IS versions up to 4.2.1.
  • Added MultiArc settings for Total Commander (thanks to Gnozal).
  • Fixed a bug in MultiArc settings that prevented shells from displaying file dates and times (thanks to Maxim Ryazanov).
  • The reconstructed setup script (.iss) is now included together with the 'normal' files. Using -m option it's possible to view/extract other internal files in the same way.

0.07(2004.03.16)

  • Multiple files with the same name are not overwritten now, instead they are appended with numbers.
  • -c command extracts the compiled Innerfuse Pascal Script code to a file. It can then be 'disassembled' with a separate tool. Get one on the download page.
  • The output of -i command now looks more like .iss script. More data is included.

0.06(2004.03.11)

  • Added support for IS versions 3.0.0 - 4.0.0.
  • Supports installations that were not packaged into a single exe using SetupLdr (these can be identified by the presence of setup.0 which is appended to setup.exe in packaged installations).
  • -i command displays registry changes made by an installation.
  • Supports (displays and reads from filelists) filenames with national characters (single-byte character encodings only, Unicode/MBCS was not tested). The correct code page must be set in Windows for this function to work properly.
  • [fix] File dates and times were not set during extraction.

0.05(2004.03.09)

  • Improved batch processing. Now it's possible to browse and extract IS installations in FAR using the supplied settings for the standard MultiArc plug-in.
  • Removed isbunzip.dll. Bzip2 library is linked statically.

0.04(2004.02.27)

  • Initial release. Supports IS versions 4.0.1 - 4.1.8.

MultiArc settings

Unless you are a die-hard fan of command line, you may like the idea of working with IS installations like with conventional archives in a file manager. Right now two programs support this: FAR and Total Commander. Below are the instructions how to integrate innounp into each.

FAR

Copy innounp.exe to a directory in your PATH and edit your FARPluginsMultiArcFormatsCustom.ini file. There are two alternate settings differing in several aspects and each having its own pros and cons. Try the recommended setting first, if it does not work well for you, try the other setting or even combine them.

Co-operation with InstallExplorer

If you have InstallExplorer installed (or another plug-in that handles IS, but you will need to adjust the settings accordingly), you might want to let it process all the other types of installations but keep IS installations for innounp. FAR does not provide a means of customizing the plug-in call order; however, an empirical study has shown that it loads plug-ins and applies them to files in lexical order. So the solution is to rename InstallExplorer's dll file from 6InstExpl.dll to e.g. zInstExpl.dll (and restart FAR).

FAR: recommended setting

FAR: alternate setting

Will not work for IS 5.1.5 and up because new versions no longer have this signature.

Total Commander

Will not work for IS 5.1.5 and up because new versions no longer have this signature. I guess the version-specific settings from above have to be cloned.

Configuration made up by Gnozal and Maxwish and posted on TC forum. Change the path below to where you have innounp installed and add this to your MultiArc.ini. Note that MultiArc is not included in the default TC installation, instead it is available as a separate download from Siarzhuk Zharski's web site. Refer to the help file for information on any additional configuration necessary.

Copyrights and licensing

Copyright © 2004-2019 QuickeneR, 2009-2019 Ariman
This program is licensed under the terms of the GNU General Public License (GPL). A copy of the license is included with the source files.
If you distribute innounp on the WWW, please put a link to its home page, http://innounp.sourceforge.net

Over 90% of code is ripped from Inno Setup which is Copyright © 1997-2010 Jordan Russell. All rights reserved.
Portions Copyright © 2000-2006 Martijn Laan. All rights reserved.
See http://www.jrsoftware.org for details.

Contains zlib code, Copyright © 1995-2005 Jean-loup Gailly and Mark Adler.

Contains bzip2 code, Copyright © 1996-2009 Julian R Seward. All rights reserved.

Contains LZMA code, Copyright © 1999-2009 Igor Pavlov.

Innerfuse Pascal Script is Copyright © 2000-2004 by Carlo Kok, Innerfuse.

A schema is owned by a database user and has the same name as that user. Retrieved November 26, 2012. Schema objects can be created and manipulated with SQL. Factsage database schema. Each user owns a single schema. A schema is a collection of logical structures of data, or schema objects.

StripReloc is Copyright © 1999-2005 Jordan Russell, www.jrsoftware.org

[/ITEM]
[/MAIN]
23.03.2020

Decompiler Installshield Software

Jump to Software - InstallShield Z format is a compressed archive format used by version 3 of the InstallShield installation software. Documentation is lacking. InstallShield setup.inx file for Bloodmoon, decompiled with SID Raw. Look at most relevant Windows installshield decompile websites out of 52.3 Thousand at MetricsKey. Windows installshield decompile found at forum.installsite.net. InstallShield use to leverage the.

Skip to: Download/Screenshots Installation and Usage Technical Details Supported Formats Credits

Introduction

Universal Extractor Feedback
If you have any questions about, or find any problems with, Universal Extractor, please post your comments to the UniExtract subforum on the MSFN message board. This has become the main point of discussion for this project.

Universal Extractor is a program designed to decompress and extract files from any type of archive or installer, such as ZIP or RAR files, self-extracting EXE files, application installers, etc. The full list of supported formats can be found in the table below. It's able to support so many varied file formats by utilizing the many backend utilities listed in the credits at the bottom of the page.

Please note that Universal Extractor is not intended to be a general purpose archiving program. It cannot (and never will) create archives, and therefore cannot fully replace archivers such as 7-Zip or WinRAR. What it will do, however, is allow you to extract files from virtually any type of archive, regardless of source, file format, compression method, etc.

The original motivation behind this project was to create an easy, convenient way to extract files from various types of installation packages without the need to remember arcane command line switches or track down separate utilities to handle the unpacking. Over time, and with the encouragement of its many users and the fine folks over on the MSFN forum, it has evolved into a mature and very capable unarchiving utility that many, including myself, find indispensable.

Screenshots


Universal Extractor context menu
Universal Extractor file/destination GUI
Universal Extractor preferences

Download Current Version: 1.6.1, Released: 05/12/2010

UniExtract Installer (5.3 MB) - This is the recommended download. The installer will automatically install the application and optionally integrate with the Windows Explorer context menu. This package does not contain source code.

UniExtract Binary Archive (4.95 MB) - This archive contains the binaries. Download this if you want a portable version, or just prefer not to use the installer.

UniExtract Source Code (163.13 KB) - This archive only contains the source code, but it includes all support files as well (compiler scripts, installer, etc.). This is best to download (along with the binary archive) if you want to help further development of UniExtract.

ChangeLog, ToDo - UniExtract development details

Universal Extractor Download Archive - archived versions of all official binary and source code releases

Note: If you download Universal Extractor from one of the official links above, it is not infected with a virus. If your anti-virus software tells you otherwise, please see this forum post for details.

Language Files

As of version 1.4, Universal Extractor supports internationalization. If you're interested in translating Universal Extractor into another language, please download the source archive and follow the instructions in English.ini. Please send me your completed translation and I'll include it in the next version of Universal Extractor. Thanks to all of the contributors!

To use these language files, simply download and copy into the lang directory of your Universal Extractor installation. The new language will appear as an option the next time you run UniExtract.

Note: The (alt) language files are alternate translations that are not included with the official release. Sometimes I get multiple submissions for a single language, and I like to give everyone credit, but I generally stick with the first one that's submitted out of fairness. Some of the alternate translations may be better than the included ones (or, they may not be), so feel free to give them a try. If you find that an alternate version is better than the included version, please let me know; I may switch them out for the next release.

Language FileNative NameContributerAdded/Updated
Arabic*العربيةAwadh A Al-Ghaamdi10/22/2008
Arabic (alt)العربيةMusab (KooTaa)10/12/2008
Armenian*Հայերէն HayerenHrant Ohanyan05/11/2010
Bulgarian*БългарскиКирил Кирилов (DumpeR)10/12/2008
Chinese (Simplified)简体中文phCole05/13/2010
Chinese (Traditional)*繁体中文Huang Junwei11/21/2006
Croatian*HrvatskiTomislav Glušac10/22/2008
Croatian (alt1)HrvatskiDanijel Ivanieviæ05/11/2010
Croatian (alt2)HrvatskiIvica Hrvoj Ivanić10/12/2008
Czech*ČeštinaLubomír Hajda05/11/2010
Dutch*NederlandsRobby Kooken10/12/2008
English*English (American)Default/native language file05/12/2010
Finnish*SuomiTeijo Sakkara10/25/2008
French*Françaisjacklours10/22/2008
GermanDeutschArno Krumpholz05/13/2010
Greek*ΕλληνικάNick Mattheakis10/22/2008
Hungarian*MagyarSimon László03/25/2007
Italian*ItalianoTJL73 / Roberto Boriotti05/11/2010
Japanese*日本語Yachuko Nakai11/28/2006
Japanese (alt)日本語Nardog11/28/2006
Korean*한국어/조선말Sunsuk Kim03/21/2007
Persian (Farsi)*فارسیSajjad Mohammadi05/11/2010
Polish*Język PolskiULTIMA PRIME02/22/2007
Portuguese*PortuguêsJosé Gonçalves03/01/2007
Portuguese (Brazilian)*PortuguêsZimzuM / Marcio Barbosa03/21/2007
Romanian*Limba RomânăCristian Stefan02/27/2007
Russian*Русский языкgora05/11/2010
Russian (alt)Русский языкAVV_UA10/12/2008
Russian (old)Русский языкPolarbond02/22/2007
Serbian*SrpskiIvan Stambolić05/11/2010
Slovak*SlovenčinaPeter Žilák02/22/2007
Spanish*EspañolMario Ángel / Leonardo Mauro02/22/2007
Spanish (alt)EspañolArturo Vergara05/13/2010
Swedish*SvenskaStefan Weber05/11/2010
Taiwanese*臺灣話YoYo10/12/2008
Thai*ภาษาไทยPruthisith (Terry) Prateepavanich11/28/2006
Turkish*TürkçeOnur AYDIN03/01/2007
Ukrainian*украї́нська мо́ва,Warrior10/28/2008
Valencian (Catalan)*Valencià (Català)Rafel Hidalgo i Rangel03/25/2007
Vietnamese*Tiếng ViệtNguyen Nhat Quang02/22/2007

* = Included in current release

Installation and Usage

To install UniExtract, download the installer and run it on your system. You will have a few options during installation:

Select Components - These options specify which program components are installed to disk. These options are only really useful if you need to reduce the installation size.

  • Documentation and licensing information - This includes all files in the docssubdirectory
  • Language files for internationalization support - This includes all files in the lang subdirectory
  • Support for ACE files - Binaries and/or libraries required for ACE archives
  • Support for KGB files - Binaries and/or libraries required for KGB archives
  • Support for Pea files - Binaries and/or libraries required for Pea archives
  • Support for StuffIt files - Binaries and/or libraries required for StuffIt (.sit) archives

Set Program Options - These options adjust the default Universal Extractor behavior. They can be changed after installation through the Preferences menu.

  • Default Language - specifies the language used by UniExtract
  • Debug File Location - specifies the directory to which UniExtract should write its debug file
  • Append missing file extensions - attempt to determine and append the correct extension for improperly named files using TrID
  • Maintain archive history - maintain a list of the ten most recent files that were extracted, as well as the destination directories
  • Remove duplicate files - attempt to detect and remove duplicate that may have been created during extraction
  • Remove temporary files - automatically remove temporary files that may be created during extraction
  • Warn before executing files - some .exe archives must actually be executed in order to perform the extraction. Since this can be a security risk (executing unknown/untrusted code is always a bad idea), UniExtract will display a warning before extracting these types of files.

Select Additional Tasks - These options specify additional actions that can be performed by the installer. They only affects installation of Universal Extractor, and cannot be modified later.

  • Enable Explorer context menu integration - allows you to right click on any archive and directly extract its files
    • Add UniExtract Files.. to context menu - adds ability to specify destination directory
    • Add UniExtract Here to context menu - adds ability to quickly extract to current directory
    • Add UniExtract to Subdir to context menu - adds ability to quickly extract to subdirectory
    • Force association with with all supported archive formats - Forces UniExtract to associate itself with all supported file extensions; by default, it will only associate itself with native Windows formats (.exe, .msi, etc.) and other formats not currently associated with another program
  • Add Universal Extractor to your system path - allows you to run UniExtract (and any related binaries) from the command line
  • Create a SendTo icon - add a shortcut for Universal Extractor to your SendTo context menu
  • Create a desktop icon - add a shortcut for Universal Extractor to your desktop
  • Create a Quick Launch icon - add a shortcut for Universal Extractor to your Quick Launch bar

If you wish to automate installation (for custom or unattended installs), please run uniextractXX.exe /? to get a detailed description of available command-line options for the installer. All standard Inno Setup command line parameters apply, but also pay special attention to the Components, Tasks, and Custom Parameters detailed at the bottom of the help window.

For manual installation with the binary archive, simply extract the files to the destination folder you would like. By default, this puts UniExtract in 'portable mode'. This means that the globalprefs option is enabled (see changelog for details) and the history option is disabled (see Program Options above). The end result is UniExtract can be easily run from portable devices like USB flash drives without leaving any trace of use. Of course, it'll also work just as well if copied to a real hard drive, and all preferences can be modified at any time by editing UniExtract.ini, or by running UniExtract.exe /prefs.

Once UniExtract is installed, usage is simple. The easiest way, if you used the installer and enabled context menu integration, is to right-click on any archive and select click one of the UniExtract options. UniExtract Here will extract files to the current directory, UniExtract to Subdir will extract files to a subdirectory named after the file, and UniExtract Files will prompt you for the destination directory.

If you did not enable context menu integration, you may run the Universal Extractor start menu shortcut, or double-click directly on UniExtract.exe. This will launch the UniExtract GUI. Enter (or use the file browser to select) the file you wish to extract and the destination directory, then click OK. It is also possible to drag-and-drop the file you wish to extract onto the icon or main application window to easily extract the dropped file.

UniExtract can also be run from the command line. Run UniExtract.exe /? for detailed command line parameters.

You can use Add/Remove Programs to uninstall UniExtract, or just delete the directory if you used the binary archive.

Technical Details

When a file is passed to UniExtract, it begins by scanning the file with TrID. If the file format matches one of the supported non-executable formats listed below, it immediately begins extraction from the archive. If it's an executable file, it calls PEiD to analyze the file signature. If the signature indicates that it's a supported format, then it attempts to begin extraction. If it is not a recognized signature, it will try running it through 7-Zip and UnZip as default cases. If 7-Zip or UnZip recognizes it, it will be extracted; otherwise, UniExtract displays an error message and exits.

Note: Filetype scanning with TrID is new as of v1.5. Older versions relied on the file extension to identify the filetype. This behavior is still used if the TrID scan cannot determine the filetype.

If the filetype is supported, UniExtract begins by checking for a valid destination directory and recording the directory size. If necessary, a new directory will be created (with a directory size of zero). UniExtract then spawns a shell and calls the supporting binary to begin extracting files from the selected archive to the destination directory. After completion, UniExtract checks the size and timestamp of the subdirectory to determine if extraction was successful; if the size or timestamp is greater than the initial values, UniExtract assumes success and exits. If extraction fails, UniExtract notifies the user and leaves a log file (uniextract.log) that (should) contain any error messages.

The uniextract.log file is created during the extraction process by the tee program. Essentially, all output from the running binary is redirected to tee, which in turn writes the output to the log file as well as echo it to the screen to give the user current progress. Upon successful execution this file is deleted, but if an error is detected it is left alone for the user to review. Note: As of v1.4, the location of uniextract.log can be changed to any user-specified directory.

Supported Formats

As of v1.5, UniExtract uses TrID to determine the filetype of any given file. If this detection fails, file extensions are used as a backup identifier. The table below is a reference of known-supported filetypes and common extensions; any supported archive types should work regardless of actual extension.

Archive TypeCommon File Extension(s)
7-zip archive.7z, .exe
ACE archive.ace, .exe
ARC archive.arc
ARJ archive.arj, .exe
ASpack compressed file.exe
BIN/CUE CD-ROM image.bin, .cue
bzip2 archive.bz2, .tbz2, .tar.bz2
CPIO compressed file.cpio
Debian package.deb
DiscJuggler CD-ROM image.cdi
Encoded files.b64, .uu, .uue, .xx,
.xxe, .yenc, .ntx
Gentee package.exe
gzip archive.gz, .tgz, .tar.gz
IMG floppy disk image.img
Inno Setup package.exe
Installer VISE package.exe
InstallShield Cabinet archive.cab, .1, .lib
InstallShield package.exe
ISO 9660 CD-ROM image.iso
KGB archive.kgb, kge, .exe
LZH compressed file.lzh, .lha
LZMA compressed file.lzma
LZO compressed file.lzo
LZW compressed file.Z, .tz, .tar.Z
LZX compressed file.lzx
MHTML file.mht
Microsoft Cabinet archive.cab, .exe, .imf
Microsoft Compiled Help file.chm
Microsoft compressed file.??_
Microsoft LIT e-book.lit
Microsoft Windows Help file.hlp
HTC NBH ROM image.nbh
Nero CD-ROM images.nrg
NSIS package.exe
Oasis Document Format (ODF) document.odt, .odp, .odg, .ods
Office Open XML (OOXML) document.docx, .pptx, .xlsx
Outlook Express mail archive.dbx
PEA archive.pea
RAR archive.rar, .001, .exe
Reflexive Arcade package.exe
RoboForm package.exe
RPM package.rpm
SetupFactory package.exe
SIS (SymbianOS) packages.sis
StuffIt packages.sit
TAR archive.tar, .tbz2, .tgz, .txz, .tz,
.tar.bz2, .tar.gz, .tar.xz, .tar.Z
UHARC archive.uha
UPX compressed file.exe, .dll
Windows Imaging Format image.wim
Windows Installer merge module.msm
Windows Installer package.msi
Windows Installer patch.msp
Windows Update Standalone patch.msu
Wise Installer package.exe
XZ compressed file.xz, .txz, .tar.xz
ZIP archive.zip, .jar, .xpi, .wz, .exe
Zoo archive.zoo

Credits

Universal Extractor relies heavily on other programs, and would not be possible without the incredible generosity of the Free Software community. This is a list of all of the applications that are used by, or in the creation of, Universal Extractor:

  • 7-Zip (Igor Pavlov, Open Source) - Excellent general purpose Windows archive utility; used to extract .7z, 7-Zip SFX .exe, .bz2, .cab, .chm, .cpio, .deb, .gz, .iso, .lha, .lz, .lzh, NSIS installer .exe, .rpm, .tar, .xz, .wim, and .Z files (and probably even more that I overlooked)
  • ARC (Howard Chu, Open Source) - ARC archiving utility; used to extract .arc files; Note: binary was obtained from http://gnuwin32.sourceforge.net/packages/arc.htm
  • AspackDie (yoda, Open Source) (homepage seems dead) - Unpacker for ASPack-compressed files; used to unpack .exe files with ASpack compression
  • AutoIt (Jonathan Bennett, Open Source) - General-purpose Windows scripting language; used to write the UniExtract front-end
  • bin2iso (Bob Doiron, Joonas Loppi, Open Source) - Utility to convert BIN/CUE CD-ROM images to ISO images; used in conjunction with 7-Zip to extract .bin/.cue images
  • Barebones Ooz (Booz) - (Rahul Dhesi, Open Source) - Zoo archive extractor/lister; used for extracting .zoo files
  • cdrip (DeXT, Open Source) (homepage seems dead, possible replacement) - Utility to convert DiscJuggler (CDI) CD-ROM images to ISO images; used in conjunction with 7-Zip to extract .cdi images
  • cmdTotal (Adam Blaszczyk, Open Source) - CLI frontend for Total Commander plugins; enables support for the following plugins used by Universal Extractor:
    • DBX (Dmitri R. Letichevski, Freeware) - extracts Outlook Express mail archives
    • InstallExplorer (Domo, Freeware) - Total Commander port of the InstallExplorer plugin for FAR by Sergei Wanin; extracts Gentee, Inno Setup, Installer VISE, InstallShield, NSIS, SetupFactory, and Wise Installer packages
    • MHT Unpacker (Ariel Perez, Freeware) - extracts MHTML files
    • MSI (Alex Gretha, Freeware) - extracts Windows Installer package (MSI) and patch (MSO) files
    • PDunSIS (Patrik Daranský, Freeware) - extracts SIS (SymbianOS) packages
  • Convert LIT (Dan A. Jackson, Open Source) - Converter for Microsoft Reader format e-books; used extract contents from .lit files
  • Crystal SVG (Everaldo Coelho, Free) - Collection of extremely high-quality icons for Linux/KDE; used as the source graphics for the UniExtract icon
  • E_WISE (Veit Kannegieser, Open Source) - Wise Installer decompiler; used for extracting files from Wise Installer packages
  • extract (Gilles Vollant, Freeware) - Floppy disk image extraction utility; used to extract files from .img images
  • ExtractMHT (Jared Breland, Open Source) - Splitter and base64 decoder for MHTML files; used to extract .mht files
  • GIMP (Spencer Kimball and Peter Mattis, Open Source) - The GNU Image Manipulation Program; used to create the icons used by UniExtract
  • HelpDeco (Manfred Winterhoff, Freeware) (homepage seems dead, possible replacement) - Decompiler for Windows Help files; used to extract/reconstruct .hlp files
  • i3comp (Stirling Technologies, Freeware) - InstallShield 3.x Compression and Maintenance utility; used for extracting files from InstallShield 3.x installer packages; can be download as part of WinPack
  • i5comp (fOSSiL, Open Source) - InstallShield 5.x Compression and Maintenance utility; used for extracting files from InstallShield 5.x installer packages; can be download as part of WinPack
  • i6comp (fOSSiL, Morlac, Open Source) - InstallShield 6.x Compression and Maintenance utility; used for extracting files from InstallShield 6.x installer packages; can be download as part of WinPack
  • Info-ZIP UnZip (Info-ZIP, Open Source) - Highly portable ZIP archive utility; used for extracting .zip and ZIP SFX .exe files
  • Inno Setup (Jordan Russell, Open Source) - Open Source packaging application for Windows; used to create the UniExtract installer
  • Innounp (QuickeneR, Open Source) - Inno Setup Unpacker; used for extracting files from Inno Setup installer packages
  • IsXunpack (Pit0n and SkYuS//vN, Freeware) - InstallShield Unpacker; used for extracting files from modern InstallShield installer packages
  • KGB (Thomasz Pawlak, Freeware) - KGB archiver; used to extract .kgb, .kge, and KGB SFX files
  • lzop (Markus F.X.J. Oberhumer, Open Source) - LZO file compression utility; used to extract .lzo files
  • MsiX (Heath Stewart, Open Source) - General purpose stream and transform extractor for Windows Installer files; used to extract files from .msi, .msm, and .msp files
  • NBHextract (pof and TheBlasphemer, Freeware) - Utility to extract contents from NBH files (HTC device ROM images)
  • nrg2iso (Greg Kokanosky, Open Source) - Utility to convert Nero (NRG) CD-ROM images to ISO images; used in conjunction with 7-Zip to extract .nrg images
  • Open-source ARJ (ARJ Software Russia, Open Source) - Open Source implementation of the ARJ archiving utility; used to extract .arj and ARJ SFX .exe files
  • PeaZip (Giorgio Tani, Open Source) - PeaZip archiver; used to extract Pea archives
  • PEiD (Jibz, Qwerton, snaker, and xineohP, Freeware) - Portable Executable File Identifier; used to analyze .exe file signature to determine the filetype and whether or not it's a supported archive; includes Bob's external signature database
  • RAIU (Icebird, Open Source) - Utility to unwrap Reflexive Arcade installers; used in conjunction with innounp to extract Reflect Arcade packages
  • StuffIt Expander 6.0 (Aladdin Systems, Freeware) - StuffIt file decompressor; used for extracting .sit files
  • StIX (Veit Kannegieser, Freeware) - Decompressor for InstallShield 3.x archives and installers; used to extract InstallShield 3.x archives (.1, .lib) and SFX installers (.exe)
  • tee (Free Software Foundation, Open Source) - Shell utility that redirects standard input to multiple outputs; used to write messages to a log file while also displaying current progress; Windows binary was obtained from GNU Utilities for Win32
  • TrID (Marco Pontello, Freeware) - Utility designed to identify file types from their binary signatures; used to determine the type of file passed for extraction
  • UnLZX (Oliver Gantert, Open Source) - LZX file decompression utility; used to extract .lzx files
  • UnRAR (Eugene and Alexander Roshal, Freeware) - Command-line utility for RAR archives; used to extract .rar and RAR SFX .exe files
  • UnUHARC (Uwe Herklotz, Freeware) - Command-line utility for UHARC archives; used to extract .uha files; can no longer find a legitimate source
  • UPX (Markus Oberhumer, Laszlo Molnar & John Reiser, Open Source) - Compression utility for PE files; used to unpack .exe and .dll files with UPX compression
  • UUDeview (Frank Pilhofer, Open Source) - Encoded file decoder; used to decode Base64, UUencoded, XXencoded, and yEnc files
  • WUN (Jägermeister Markus, Icebird, Open Source) - Wise-Setup Unpacker; used for extracting files from Wise Installer packages (updated version of HWUN)
  • XAce (Marcel Lemke, Freeware) - ACE archive utility; used for extracting .ace and ACE SFX .exe files

innounp, the Inno Setup Unpacker
Version 0.49
Supports Inno Setup versions 2.0.7 through 6.0.2

Inno Setup is a popular program for making software installations. Unfortunately, there is no official unpacker - the only method of getting the files out of the self-extracting executable is to run it. One piece of software that addresses this issue is Sergei Wanin's InstallExplorer, a plug-in for the FAR Manager that unpacks several types of installations, including Inno Setup (IS). But since it is not updated in a timely fashion, and so does not support the latest IS most of the time, this program was born. The advantages over InstallExplorer are:

  • Innounp is open source and based on IS source. Therefore, it is more likely to support future IS versions.
  • It recovers portions of the installation script (.iss file), including the registry changes and the compiled Innerfuse/RemObjects Pascal Script, if available.

If you want to report a bug, request a feature, or discuss anything else related to the program, please write to the forum.

On this page:
Usage How to report bugs What's new/History MultiArc settings Copyrights and licensing
In other places:
Download Forum Project summary page on SF.net Homepage

Both the source and the executable packages are compressed with WinRar. While the full-featured packer is shareware, the UnRar utility that can only extract files is free. And there are lots of free third-party programs that unpack rar just fine, e.g. 7-Zip.

As a bonus, a simple unpacker for Setup Factory installations is available on the download page. It is ripped from the SynCE project.

Usage

Innounp is a console application, and it uses command-line options to find out what to do. For a more human-friendly interface utilizing FAR or Total Commander as a front-end see the MultiArc section below. Windows Explorer fans: nullz has made some .reg scripts to add innounp into the right-click menu and Richard Santaella crafted a graphical wrapper for innounp (get it on the download page).

If an installation has setup.0 (it is made without using SetupLdr), run innounp on setup.0 instead of setup.exe.

To extract all files from a specific directory, use dirname*.*, not just dirname.

By default all files are extracted to the current directory. Use -d to override this behaviour. For example, -dUnpacked will create a directory named Unpacked inside the current directory and put the extracted files there.

The -c option is a little more tricky to explain. Suppose you opened an installation in a file manager and browsed to {app}subdirprogram.exe. Now if you copied program.exe to another location, the entire directory tree ({app}subdir) would be created and program.exe would be extracted there. -c notifies innounp that you are only interested in paths from the current directory and below, so that your file, program.exe, is extracted right where you intended to copy it, not several directory levels deeper. Note that in order to avoid confusion, files must still be specified by their full path names inside the installation.

Note that an installation can contain several identical files (possibly under different names). Inno Setup stores only one copy of such files, and by default innounp will also unpack one file. If you want to have all files that could ever be installed anywhere, regardless of how many identical files this may get you, -a option will do it.

If -m is specified, the file listing includes embeddedCompiledCode.bin which is the code made by the RemObjects Pascal Script compiler. It is possible to disassemble it using the ifps3_disasm.rar package on the download page. The result is not very readable though since it uses the basic 'disassembler' from IFPS3. Anyone wants to write a decompiler?

How to report bugs

OK, I know innounp is far from being perfect, but it is my intention to make the program usable. User feedback is a great way to achieve this. Here's what you should do if you find a bug and want it fixed.

Tell me what's wrong with innounp. If you encountered incorrect behaviour, say what you think it should do and what it actually does. If it crashed or gave an error message, say what did that - innounp, Windows, FAR, etc, and include the details.

Describe the exact steps necessary to reproduce the bug. Say what are the preconditions. Is the bug specific to some system settings? To a setup file you have? (include the problem part of the installation script or a link to the compiled setup, if it is small enough) To an IS version? To something else? Or does the bug occur regardless of these things?

Once you have the bug report ready, post it to the forum. Remember, if I can't reproduce the bug using the description you gave, the chances that it will be fixed fall dramatically.

If the above guidelines were not obvious for you, I suggest that you read the following articles.

How to Ask Questions the Smart Way by Eric Raymond
How to Report Bugs Effectively by Simon Tatham

What's new / History

0.49(2019.05.09)

  • Added support for IS 6.0.

0.48(2019.01.25)

  • Added support for IS 5.6.2.
  • Fixed regresson bug introduced by 5.6.0 support.

0.47(2018.07.02)

  • Added support for IS 5.6.0 and 5.6.1.
  • Added AppId field to the script.

0.46(2016.04.11)

  • Increased max. LZMA dictionary size to 1Gb (implemented in IS 5.5.9).

0.45(2015.12.31)

  • Added support for IS 5.5.7.

0.44(2015.11.24)

  • Fixed infinite loop issue on some unsupported versions.
  • Now -m flag does not affect reconstructed script content. It always contains all info.
  • Minor changes.

0.43(2015.07.18)

  • Added support for IS 5.5.6.

0.42(2015.05.27)

  • Added support for IS 1.3.21 and 1.3.25.
  • Experimental support for some custom IS versions.
  • Fixed encoding of several entries in reconstructed script.

0.41(2015.03.18)

  • All slashes in file paths are converted to Windows style for consistency.
  • Improved some error messages.
  • Fixed several parameter names in [INI] section of the script.

0.40(2013.12.20)

  • Synchronized Description fields encoding in reconstructed script.
  • Minor changes.

0.39(2013.07.12)

  • Fixed CRC32 calculation during unpacking (regression bug).

0.38(2013.02.01)

  • Added InstallDelete and UninstallDelete sections to reconstructed script.
  • Added some more values to Setup section of reconstructed script.
  • Several minor reconstructed script improvements.

0.37(2012.06.02)

  • Added support for IS 5.5.0.
  • Fixed problem with reading of large files.
  • Added some more values to reconstructed script.
  • Improved FAR MultiArc settings.

0.36(2011.06.01)

  • Fixed support for IS 5.4.2.
  • Fixed issue with '{' symbol in file names.

0.35(2010.10.01)

  • Added support for IS 5.2.5 (wasn't released, but such installers can be found).
  • Added command to test files for integrity.

0.34(2010.09.16)

  • Less technical text in some error messages.
  • Added dump of password hash to reconstructed script.
  • Added some more values to reconstructed script.

0.33(2010.07.05)

  • Fixed encoding for custom messages in reconstructed script.
  • Fixed several parameters in [LangOptions] section.
  • Fixed language names in *.isl files for Unicode-based installers.
  • Added support for legacy IS versions 2.0.8 - 2.0.10.

0.32(2010.06.14)

  • Added support for IS versions 5.3.10 (both ANSI and Unicode).
  • Added support for INI section in reconstructed script.

0.31(2010.04.19)

  • Fixed issue with endless decompression loop on incompatible files.

0.30(2010.04.12)

  • Fixed issue with password processing for Unicode versions.
  • Added support for IS versions 5.3.9 (both ANSI and Unicode).
  • Added support for LZMA2 compression, introduced in 5.3.9.

0.29(2010.02.19)

  • Added support for IS versions 5.3.8 (both ANSI and Unicode).

0.28(2010.01.14)

  • Added support for IS versions 5.3.7 (both ANSI and Unicode).
  • Added support for legacy IS versions 2.0.11 - 2.0.17.
  • Fixed renaming of duplicate files. If we do not use -a then don't append numbers to names
    (this switch does not affect different files with same name, only duplicates with same content).

0.27(2009.12.04)

  • Yet another tuning for file mask processing.
  • Added overwrite prompt for files extraction (and option for auto-overwrite).
  • Several tweaks to reconstructed script.

0.26(2009.11.30)

  • Added manifest resource to resolve Vista/Win7 UAC issue.
  • Added restored %n formatter to custom messages.
  • Added default OutputBaseFilename value if one from header is empty.

0.25(2009.11.26)

  • Added support fro [Dirs] section in reconstructed script.
  • Moved version parameter in script to comment (since it is not original IS parameter).
  • Fixed ArchitecturesInstallIn64BitMode and ArchitecturesAllowed flags in script.
  • Fixed file mask processing in some cases.

0.24(2009.11.20)

  • Added support for IS versions 5.3.6 (both ANSI and Unicode).
  • Added version information resource.
  • Fixed extraction of multiple files with same name.

0.23(2009.09.25)

  • Added support for IS versions 5.3.5 (both ANSI and Unicode).
  • Added Inno Setup version info to reconstructed install script.

0.22(2009.08.24)

  • Added support for Unicode versions.
  • Added support for IS versions 5.3.0 - 5.3.4 (both ANSI and Unicode).
  • Fixed rare issue with double backslashes in file path.

0.21(2009.04.24)

  • Supports legacy IS versions 2.0.18 - 2.0.19

0.20(2008.05.23)

  • Supports IS up to version 5.2.3
  • Several bugs fixed.

0.19(2007.02.23)

  • Supports IS up to version 5.1.10
  • Fixed wrong representation of Unicode characters in LanguageName.
  • Another fix to the handling of duplicate file names.
  • New option -a to extract all copies of duplicate files.

0.18(2006.11.23)

  • The reconstructed script now includes the [Types], [CustomMessages], and [Languages] sections.
  • ROPS disassembler updated to support the latest build of ROPS.
  • New option -f to read the password from file. This way it can include any special characters.
    Be sure to save the file in the correct character encoding as no translations are applied.
  • Fixed the bug that caused the file timestamps to be inconsistently reported and applied (UTC vs. local).
  • Updated the decompression libraries: zlib to version 1.2.3, bzip2 to version 1.03, and LZMA to version 4.43 (optimized for speed).

0.17(2005.08.31)

  • Supports IS up to version 5.1.5.
  • Supports Martijn Laan's My Inno Setup Extensions 3.0.6.1 (by request).
  • The Types parameter is now space-separated, as required by the IS script specification.

0.16(2005.04.30)

  • Supports IS up to 5.1.2-beta.
  • Innounp will try to unpack new versions of IS to handle the cases when the binary format is compatible with one of the previous versions. Use -n to disable this attempt.

0.15(2005.03.08)

  • Supports IS up to 5.1.0-beta.
  • The old bug that prevented innounp from working properly with {reg:..} constants and the like has got another fix.
  • Preliminary support for the 64-bit extensions that appeared in IS 5.1.0.

0.14(2004.10.14)

  • Supports IS up to 5.0.4-beta.
  • It is now possible to specify the destination directory to extract files into using the -d option. This directory will be created if necessary.
  • New option -c specifies the current directory inside an installation and prevents the creation of the upper-level directories. MultiArc settings are updated accordingly.
  • The old -c command is removed. To get the compiled Pascal script, use -m and extract it like a normal file.

0.13(2004.08.26)

  • Supports IS up to 5.0.3-beta.
  • Supports the Components and Tasks sections.

0.12(2004.07.28)

  • Supports IS up to 5.0.0-beta.
  • Improved processing of big installations with many files.
  • Innounp now supports a certain level of user interaction - it prompts the user for password and disk changes as necessary. To switch this functionality off (e.g. in batch mode), use the -b option.
  • If no command is specified, innounp displays a brief summary of the specified installation. The old -i command is removed. To get the setup script, extract it like a normal file.

0.11(2004.05.04)

  • Supports IS 4.2.2.
  • Supports ArcFour encryption. Use the -p switch to specify a password if files are encrypted

0.10(2004.04.26)

  • Fixed (again): filenames containing invalid characters could not be specified on the command line or in a list file.

0.09(2004.04.22)

  • Fixed (again): invalid characters in filenames (such as ':' and ' ') made innounp crash.
  • Updated TC MultiArc settings.

0.08(2004.04.14)

  • Added support for IS versions up to 4.2.1.
  • Added MultiArc settings for Total Commander (thanks to Gnozal).
  • Fixed a bug in MultiArc settings that prevented shells from displaying file dates and times (thanks to Maxim Ryazanov).
  • The reconstructed setup script (.iss) is now included together with the 'normal' files. Using -m option it's possible to view/extract other internal files in the same way.

0.07(2004.03.16)

  • Multiple files with the same name are not overwritten now, instead they are appended with numbers.
  • -c command extracts the compiled Innerfuse Pascal Script code to a file. It can then be 'disassembled' with a separate tool. Get one on the download page.
  • The output of -i command now looks more like .iss script. More data is included.

0.06(2004.03.11)

  • Added support for IS versions 3.0.0 - 4.0.0.
  • Supports installations that were not packaged into a single exe using SetupLdr (these can be identified by the presence of setup.0 which is appended to setup.exe in packaged installations).
  • -i command displays registry changes made by an installation.
  • Supports (displays and reads from filelists) filenames with national characters (single-byte character encodings only, Unicode/MBCS was not tested). The correct code page must be set in Windows for this function to work properly.
  • [fix] File dates and times were not set during extraction.

0.05(2004.03.09)

  • Improved batch processing. Now it's possible to browse and extract IS installations in FAR using the supplied settings for the standard MultiArc plug-in.
  • Removed isbunzip.dll. Bzip2 library is linked statically.

0.04(2004.02.27)

  • Initial release. Supports IS versions 4.0.1 - 4.1.8.

MultiArc settings

Unless you are a die-hard fan of command line, you may like the idea of working with IS installations like with conventional archives in a file manager. Right now two programs support this: FAR and Total Commander. Below are the instructions how to integrate innounp into each.

FAR

Copy innounp.exe to a directory in your PATH and edit your FARPluginsMultiArcFormatsCustom.ini file. There are two alternate settings differing in several aspects and each having its own pros and cons. Try the recommended setting first, if it does not work well for you, try the other setting or even combine them.

Co-operation with InstallExplorer

If you have InstallExplorer installed (or another plug-in that handles IS, but you will need to adjust the settings accordingly), you might want to let it process all the other types of installations but keep IS installations for innounp. FAR does not provide a means of customizing the plug-in call order; however, an empirical study has shown that it loads plug-ins and applies them to files in lexical order. So the solution is to rename InstallExplorer's dll file from 6InstExpl.dll to e.g. zInstExpl.dll (and restart FAR).

FAR: recommended setting

FAR: alternate setting

Will not work for IS 5.1.5 and up because new versions no longer have this signature.

Total Commander

Will not work for IS 5.1.5 and up because new versions no longer have this signature. I guess the version-specific settings from above have to be cloned.

Configuration made up by Gnozal and Maxwish and posted on TC forum. Change the path below to where you have innounp installed and add this to your MultiArc.ini. Note that MultiArc is not included in the default TC installation, instead it is available as a separate download from Siarzhuk Zharski's web site. Refer to the help file for information on any additional configuration necessary.

Copyrights and licensing

Copyright © 2004-2019 QuickeneR, 2009-2019 Ariman
This program is licensed under the terms of the GNU General Public License (GPL). A copy of the license is included with the source files.
If you distribute innounp on the WWW, please put a link to its home page, http://innounp.sourceforge.net

Over 90% of code is ripped from Inno Setup which is Copyright © 1997-2010 Jordan Russell. All rights reserved.
Portions Copyright © 2000-2006 Martijn Laan. All rights reserved.
See http://www.jrsoftware.org for details.

Contains zlib code, Copyright © 1995-2005 Jean-loup Gailly and Mark Adler.

Contains bzip2 code, Copyright © 1996-2009 Julian R Seward. All rights reserved.

Contains LZMA code, Copyright © 1999-2009 Igor Pavlov.

Innerfuse Pascal Script is Copyright © 2000-2004 by Carlo Kok, Innerfuse.

A schema is owned by a database user and has the same name as that user. Retrieved November 26, 2012. Schema objects can be created and manipulated with SQL. Factsage database schema. Each user owns a single schema. A schema is a collection of logical structures of data, or schema objects.

StripReloc is Copyright © 1999-2005 Jordan Russell, www.jrsoftware.org