innounp, the Inno Setup Unpacker:
innounp, the Inno Setup Unpacker
Version 0.37
Supports Inno Setup versions 2.0.8 through 5.5.0
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.
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).
innounp [command] [options] <setup.exe or setup.0> [@filelist] [filemask ...]
Commands:
(no) display general installation info
-v verbosely list the files (with sizes and timestamps)
-x extract the files from the installation (to the current directory, also see -d)
-e extract files without paths
-t test files for integrity
Options:
-b batch (non-interactive) mode - will not prompt for password or disk changes
-q do not indicate progress while extracting
-m process internal embedded files (such as license and uninstall.exe)
-pPASS decrypt the installation with a password
-dDIR extract the files into DIR (can be absolute or relative path)
-cDIR specifies that DIR is the current directory in the installation
-n don't attempt to unpack new versions
-fFILE same as -p but reads the password from FILE
-a process all copies of duplicate files
-y assume Yes on all queries (e.g. overwrite files)
If an installation has setup.0 (it is made without using SetupLdr), run innounp on setup.0 instead ofsetup.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}\subdir\program.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, -aoption will do it.
If -m is specified, the file listing includes embedded\CompiledCode.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?
'via Blog this'