jte / installscript-decompiler

InstallScript Decompiler is a decompiler for InstallShield's InstallScript programming language.
MIT License
6 stars 1 forks source link

Request to support INS files from 1990s which have a different format #6

Open LucienMP opened 6 months ago

LucienMP commented 6 months ago

The older installshield files ".ins" from 1990s is not currently supported.
This seems to be a similar file format to the existing aLuZ format with some different offsets.

image

Referring to : https://github.com/file/file/blob/master/magic/Magdir/windows#L1765 and

SEE: TrID ; https://mark0.net/soft-tridnet-e.html clipped as below

InstallShield Script (1997) INS application/octet-stream https://en.wikipedia.org/wiki/InstallShield Marco Pontello marcopon@gmail.com https://mark0.net 21 7 by Marco Pontello True 2023 3 12 TrIDScan/Py v2.02 B8C90C00 0 000100 5 BATCH_INSTALL ERRORFILENAME HINST_INSTALL INFOFILENAME LAST_RESULT SUPPORTDIR TARGETDISK WINSYSDISK ISVERSION LOGHANDLE TARGETDIR WINSYSDIR CMDVALUE CMDLINE PROGRAM SRCDISK WINDISK FOLDER SHARED SRCDIR SYSTEM UNINST WINDIR FILES MODE USER

setup.ins.zip

LucienMP commented 6 months ago

What I got so far 00: B8 C9 0C 00 :: MAGIC? 04: 50 00 01 00 1B D3 28 00 32 30 00 :: MAGIC / CRC? 0F: "InstallSHIELD Software Coporation (c) 1990-1997" 3F: GlobalsSizeA :: System Vars Size 41: GlobalsSizeB 44: Array[GlobalsSizeA] Table of type data? 0002 or FFFF D5: TableSize D7: String# Index D9: String Len DB: char string 22F: Constant 16? 231: TableSize (of Global table) 233: String# Index 235: String Len 237: char string ... repeats << chunk of 0002 / 0004 / 0003 ... >> << GDI/USER DLL link chunk >> << chunk of 0002 / 0004 / 0003 ... >> <

>

jte commented 6 months ago

Thank you for the issue. I will take a look.

LucienMP commented 6 months ago

Thanks for the reply. Do you have the INS generator, I have found that the command ops (bytecode) seems different from the later 2000s bytecode.

jte commented 6 months ago

Hey, I have finally found a version of InstallShield that generates .ins files: https://archive.org/details/IS5pro. Now I can begin the work.

LucienMP commented 6 months ago

Sorry for my late reply, thats what I found and was using it. How far did you get, need any help?

jte commented 6 months ago

Hey, I found information about actions (a number of arguments for each) in InstallShield installer (in decompressed INST32I.EX). That allowed me to make a placeholder action for yet unimplemented actions, so the decompiler outputs something. I am currently working on adding the missing actions (and their decompiler counterpart). If you want to help and have time, you could add some of the missing actions.