Skip to content
Tool and library to extract CAB files from InstallShield installers
C CMake Objective-C Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
man Added missing man page update from https://sourceforge.net/p/synce/pa… Jul 26, 2017
src Merge branch 'master' of github.com:twogood/unshield Aug 5, 2019
test Fix for #70 Dec 2, 2017
win32_msvc Keep compatibility with MinGW Oct 9, 2016
.editorconfig Two spaces indent Dec 3, 2017
.gitignore Ignore cmake-build-debug/ Dec 2, 2017
.travis.yml Merge pull request #67 from maqifrnswa/travis2 Oct 22, 2018
CMakeLists.txt Fix man page install path Nov 2, 2018
ChangeLog mark release in changelogs Jul 16, 2009
LICENSE Initial revision Aug 9, 2003
README.md Remove Pledgie Mar 10, 2018
libunshield.pc.in Inital cmake implementation May 13, 2015
rebuild.sh Rebuild inside "build" subdirectory Dec 26, 2016
run-tests.sh exit run-tests.sh with non-zero if there were failed tests Jan 15, 2017
valgrind.sh - Initial support for components and file groups Apr 25, 2004

README.md

Unshield

Build Status

Support Unshield development

Dictionary

InstallShield (IS): see www.installshield.com

InstallShield Cabinet File (ISCF): A .cab file used by IS.

Microsoft Cabinet File (MSCF): A .cab file used by Microsoft.

About Unshield

To install a Pocket PC application remotely, an installable Microsoft Cabinet File is copied to the /Windows/AppMgr/Install directory on the PDA and then the wceload.exe is executed to perform the actual install. That is a very simple procedure.

Unfortunately, many applications for Pocket PC are distributed as InstallShield installers for Microsoft Windows, and not as individual Microsoft Cabinet Files. That is very impractical for users of other operating systems, such as Linux or FreeBSD.

An installer created by the InstallShield software stores the files it will install inside of InstallShield Cabinet Files. It would thus be desirable to be able to extract the Microsoft Cabinet Files from the InstallShield Cabinet Files in order to be able to install the applications without access to Microsoft Windows.

The format of InstallShield Cabinet Files is not officially documented but there are two tools available for Microsoft Windows that extracts files from InstallShield installers, and they are distributed with source code included. These tools are named "i5comp" and "i6comp" and can be downloaded from the Internet.

One major drawback with these tools are that for the actual decompression of the files stored in the InstallShield Cabinet Files they require the use of code written by InstallShield that is not available as source code. Luckily, by examining this code with the 'strings' tool, I discovered that they were using the open source zlib library (www.gzip.org/zlib) for decompression.

I could have modified i5comp and i6comp to run on other operating systems than Microsoft Windows, but I preferred to use them as a reference for this implementation. The goals of this implementation are:

  • Use a well known open source license (MIT)

  • Work on both little-endian and big-endian systems

  • Separate the implementation in a tool and a library

  • Support InstallShield versions 5 and later

  • Be able to list contents of InstallShield Cabinet Files

  • Be able to extract files from InstallShield Cabinet Files

License

Unshield uses the MIT license. The short version is "do as you like, but don't blame me if anything goes wrong".

See the file LICENSE for details.

You can’t perform that action at this time.