Go Back   FileForums > Game Backup > PC Games > PC Games - CD/DVD Conversions > Conversion Tutorials

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 30-08-2024, 05:40
BLACKFIRE69's Avatar
BLACKFIRE69 BLACKFIRE69 is offline
Registered User
 
Join Date: Mar 2019
Location: In the Hell
Posts: 672
Thanks: 474
Thanked 2,407 Times in 546 Posts
BLACKFIRE69 is on a distinguished road
Arrow 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:
- Compile Local Scripts: Compile scripts directly from local files.

- Compile Encrypted Embedded Scripts: Compile scripts embedded as encrypted resources within the DLL.

- Script Protection: Scripts added to the ISCompilerEx.dll resource are encrypted internally, making extraction impossible. This feature turns ISCompilerEx.dll into a script protector.

- Encrypted Code Snippets: Securely encrypt parts of your script to protect sensitive code, allowing you to share your script with others while keeping critical code snippets hidden.

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:
  • Step 1: Add these sample scripts to the ISCompilerEx.dll resource using 'ResourcePacker.exe'.
  • Note: The scripts are automatically encrypted when added to the DLL resource, ensuring they cannot be extracted or tampered with.
  • Step 2: Assign any name to the 'ResourceName' in 'ResourcePacker.exe'.
  • Make sure to update this name in the 'ResourceName' field within the 'Compile_Sample_Res.iss' script.
  • For this example, 'SCRIPT_01' and 'SCRIPT_02' are used as the 'ResourceName' for the sample scripts.

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:
  • Step 1: Use 'CodeEncryptor.exe' to create encrypted code snippets.
  • Step 2: Ensure that the encrypted code is enclosed within the following comments:
"
{Seal:0xAE}
<encrypted_code>
{Seal:0x3C}
"

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.


.
Attached Images
File Type: png 0a.png (36.0 KB, 87 views)
File Type: png 0b.png (27.4 KB, 86 views)
File Type: png 1.png (22.6 KB, 82 views)
File Type: png 2.png (31.6 KB, 84 views)
File Type: png 3.png (11.3 KB, 84 views)
File Type: png 4.png (19.6 KB, 83 views)
Attached Files
File Type: rar ISCompilerEx [2024-Aug-30].rar (4.06 MB, 36 views)
Reply With Quote
The Following 8 Users Say Thank You to BLACKFIRE69 For This Useful Post:
ADMIRAL (30-08-2024), audiofeel (30-08-2024), Cesar82 (30-08-2024), Ele (30-08-2024), Fak Eid (31-08-2024), hitman797 (30-08-2024), Lord.Freddy (30-08-2024), ScOOt3r (30-08-2024)
Sponsored Links
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
How to Protect InnoSetup from Unpacking BLACKFIRE69 Conversion Tutorials 1 12-05-2024 04:43



All times are GMT -7. The time now is 13:13.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Copyright 2000-2020, FileForums @ https://fileforums.com