Extract old InstallShield 3-style .Z, _SETUP.LIB, and numbered multipart archives on modern systems.
It can also take a classic self-extracting InstallShield installer .exe and do the intermediate FILE resource extraction for you.
These files are not plain Unix .Z archives. They contain:
- a small InstallShield footer table
- per-file TTCOMP-compressed member streams
Modern tools like 7z and unshield usually do not handle this format directly.
setup30.py:
- accepts old
.Z/_SETUP.LIBarchives, numbered multipart sets such asDATA.1/DATA.2, or a compatible self-extracting installer.exe - extracts installer
FILEresources itself when given a self-extracting installer - parses the old InstallShield footer
- finds member names, offsets, and compressed sizes
- reconstructs disk-spanning TTCOMP members across numbered archive parts
- expands each TTCOMP member directly in Python
- optionally unzips extracted
.zipmembers - writes a
manifest.jsondescribing the extraction
- Python 3.10+
python setup30.py DATA.Z SYSTEM.Z JAVA.Z _SETUP.LIB -o outFor numbered multipart archives:
python setup30.py DATA.1 -o outFrom a classic self-extracting installer:
python setup30.py n32d304.exe -o outWith intermediate TTCOMP streams preserved:
python setup30.py DATA.Z -o out --keep-ttcompWithout auto-unzipping extracted ZIP members:
python setup30.py DATA.Z -o out --no-unzipFor input DATA.Z, output looks like:
out/
DATA.Z/
netscape.exe
NPAUDIO.DLL
NPAVI.ZIP
...
manifest.json
For multipart input such as DATA.1, output is grouped by basename:
out/
DATA/
MFC42.DLL
MSVCRT.DLL
...
manifest.json
For installer input, the extracted FILE resources are also kept:
out/
n32d304/
raw_file_resources/
clean_file_resources/
DATA.Z/
SYSTEM.Z/
...
manifest.json
- This currently targets the later Stirling/InstallShield archive family that identifies itself with strings like
InstallShield Launcher SE v2.1andInstallShieldSetup30. - Verified samples so far include direct PE Netscape installers
n32e201.exe,n32e202.exe,n32e30p.exe, andn32d304.exe; plus raw non-NetscapeDATA.Z/_SETUP.LIBarchives and numbered multipartDATA.1/DATA.2sets from Toshiba and Ricoh utility packages. - The self-extracting installer path assumes a PE installer with standard resource tables and
FILEresources. - Older pre-
Setup30InstallShield launchers with strings likeInstallSHIELD Launcher (C) The Stirling Group, 1990, 1991and payloads such asINSTALL.EX$/INSTALL.INSare not currently supported. - No support for later CAB-based InstallShield installers, unrelated 16-bit installers, or outer wrapper formats such as ZIP/WinZip SFX or LHa SFX.
- Directory records in these archives are not fully reconstructed yet; extracted files are currently grouped by source archive.