2

I've stumbled upon Inno Setup installer with additional separate Arc archives (commonly with .bin extension) that I was unable to extract using normal methods:

  1. the installer didn't work for an obscure reason (e.g. Runtime Error (at -1:0): Cannot Import EXTRACTFILENAME.),
  2. extracting the Arc file with FreeArc was impossible due to ERROR: unsupported compression method srep,
  3. also, the archive was apparently password-protected (trying to open it with FreeArc UI resulted in Enter decryption password dialog box).

How can one deal with such a situation?

2

There are three main steps here:

  1. you'll have to decompile/dissect the IS installer itself; the easiest way is to use Inno Setup Decompiler ; essentially, you'll need to get CompiledCode.bin from your .exe file, and then disasm it, possibly finding a code that handles the unpacking - it usually calls ISArcExtract or a similar library function, and is placed in a method named CURSTEPCHANGED.
  2. you have to get SREP (SuperREP) extractor (for more info, see e.g. http://krinkels.org/resources/superrep-srep.107/ and https://www.fileforums.com/showthread.php?p=460707) - the easiest way is to get a pack called SrepInside0.33.7z (available for download in various places), as it has all the required files bundled (essentially, you'll get an unarc.exe with CLS-srep.dll lib and cls.ini config).
  3. in your Inno Setup's disassembly, locate the variable that holds the password itself (in case of ISArcExtract it's the 7th parameter passed), and pass it to your unarc call - note that it may contain non-printable characters (e.g. <32 ASCII codes), so that passing the password using a script is advisable.

Note that there are different versions/variants to both Arc and SREP; the above method should work in most cases, though.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.