#1
|
||||
|
||||
ISCompilerEx.dll: Protect and Compile InnoSetup Scripts with Ease
ISCompilerEx.dll Documentation
Overview ISCompilerEx.dll is a versatile plugin designed to enhance the capabilities of InnoSetup by allowing script compilation from both local script files and encrypted resources embedded within the DLL. The latest update introduces support for encrypted code snippets, enabling you to securely share your scripts while protecting specific portions of the code. Key Features Quote:
Script Compilation Examples 1. Compile Encrypted Embedded Scripts: 'Compile_Sample1_Res.iss' & 'Compile_Sample2_Res.iss' These scripts demonstrate how to compile scripts like 'Sample1.iss' and 'Sample2.iss' from resources embedded in the DLL. Quote:
2. Compile Local Scripts: 'Compile_Sample2_Local.iss' This script demonstrates how to compile a local script using ISCompilerEx.dll. 3. Encrypted Code Snippets: 'Sample2.iss' The updated ISCompilerEx.dll supports encrypted code snippets within your scripts, allowing you to encrypt specific sections of your code while leaving the rest in plain text. Quote:
Example of Encrypted Script Below is an example of a script with partially encrypted code: Code:
[Setup] AppName={#NameX} AppVersion={#VerX} WizardStyle=modern DefaultDirName={pf}\My Program DefaultGroupName=My Program Compression=lzma2 SolidCompression=yes OutputDir=.\Output OutputBaseFilename={#OutfileX} {Code] {Seal:0xAE} dNQkg8LpNjyBfU48X3DyUR3Pkcco+bgcibpIhMi4t07ZbR3MEM0TxEvARUAEUwGMbf92vxg6D7SxG6wCOVCf/up8oth+UgUqCiovrhf4pO/XFVVHzOw88Fq4GCLutcCelFyyyS45OtjfawgHkVh1eiZqjKS/+A== e9JIccRqtvsXNUbnhRIA6syn/Pg3WnIcxjfx0feZu4tspf+oRVz6FcBOaeMgAi6/qepD2uqFotB0eqfFX2AJHtWb4IvRpLaZJpAq1c9bhEeqhQM9+YaLWA== d9O5cMHfzl5barXk4UaLF/1u+zJOX+wgoBaoYG2Wft8O3ng8j50lkyCzhTA= d9O75uq6+3Q= {Seal:0x3C} function InitializeSetup(): Boolean; begin Result := True; end; {Seal:0xAE} YmiFZJblBzwT2nkmEC7l0s0pQjE7KHb6iD607yxgrZT5VFozkHoJQkJTCwfABfSpVzwAvQsAxGD2H/6Jl4oQQw== W4vBRBylP7NLEi2viMA1zD06IbMZrvSvVB2aLCPKVRV60yd3vSmVxddaeUxGBj7K8N+jtUnbtc/JqS1iBzC9F5lp5q9Os2YTZoG8HLPbjOpwUFxpeTCeOg== cAe/VFx74XUPxKDd5B944KbmMB8GbUDDOq+oUunlw66rN+IUwUtg0KT6EXVQqvc8gyCnjw== QsMs+NzGetgL1QTYcdMeEUUldC8tm2+p5bMmApBPBtNrVUSmcxWkhxPZDnIvtGwXD/jZgPPNV4K4565O+w8T/bEt7aaVsWszxNRV1cWqJ9sTxsIQ7asMFJgTbRKo0AiPkmEdmZd/3XNM7guoT2Q4ET9VxtmUPRtDGKm3WvO6k+WapZSor75ni9yV4DKDJ3nPPqe2q9n4C3GZfK2aUFAGeUwUPm02/yJQOn7eMk/htddH3ch/x1S9ozFT7uaJNygfohiXtuY6cf0gFpjKTDHTsA== QsMs+NzGetgL1QTYcdMeEUUldC8tm2+p5bM3MQTn9iv4VVwT/IVURnH6asIIWJ5xkTVHbMSW5R1qmDBObT/z8ukrOW+iHJpqgzQALnTNStcI1Gx/eazeIqfnzDcWEqVE {Seal:0x3C} Corresponding Original Code Here is the original code corresponding to the encrypted snippets above: Code:
[Setup] AppName={#NameX} AppVersion={#VerX} WizardStyle=modern DefaultDirName={pf}\My Program DefaultGroupName=My Program Compression=lzma2 SolidCompression=yes OutputDir=.\Output OutputBaseFilename={#OutfileX} {Code] function CheckNumberParity(Number: Integer): String; begin if (Number mod 2 = 0) then Result := 'even' else Result := 'odd'; end; function InitializeSetup(): Boolean; begin Result := True; end; procedure InitializeWizard; var InputNumber: Integer; ParityResult: String; begin InputNumber := 147; ParityResult := CheckNumberParity(InputNumber); MsgBox('The number ' + IntToStr(InputNumber) + ' is ' + ParityResult + '.', mbInformation, MB_OK); end; Note: - The code surrounded by '{Seal:0xAE}' and '{Seal:0x3C}' is encrypted to protect sensitive logic while sharing scripts. . |
Sponsored Links |
#2
|
||||
|
||||
The project is great.
Thanks! However, ResPckrAPI.dll should contain a function to extract the script contained in the resource to the .iss file on the hard disk again. Sometimes developers have their encryption password for the script resource in ISCompilerEx.dll, but have lost the backup script, or are even unsure if the script in the resource is the same as the one they have as backup, so a function to extract the script from ISCompilerEx.dll to the disk would be welcome. If the functions in ResPckrAPI.dll are only compatible with including resources in ISCompilerEx.dll, then these functions could be inside ISCompilerEx.dll, without the need for an additional library for this. |
#3
|
|||
|
|||
Resourceful and very good project. Looking forward on what it can achieve in future. I've always wanted to do this to some of my repacks, so that repackers cannot alter the info, like link to my YT or my name on credit section, but always wanted to keep my script to be free and open-source. If there is any midway where we can achieve that, it would be really very good.
|
#4
|
|||
|
|||
I'm working on a repack where I have settings.ini file to alter the installer. Any idea how can I have a UI for it, so that it's no longer just a code that user has to edit but with buttons and click and can be done, idk maybe like DSG
Last edited by Fak Eid; 31-08-2024 at 03:51. |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to Protect InnoSetup from Unpacking | BLACKFIRE69 | Conversion Tutorials | 1 | 12-05-2024 04:43 |