|
#6
|
||||
|
||||
|
FXPacker API Interface
====================== Secure archive handling library designed for integration with Inno Setup. Provides multi-layered protection with password-based access control (AES-256), executable binding verification, Runtime executable state matching and Host-state coupling synchronization. Code:
> Support:
- Supports both standard distribution (external data file) and
Single-EXE distribution (data file embedded directly inside the installer).
> Compatibility:
- Inno Setup v6.0 or later (Required)
- Inno Setup v6.5 or later (Required for Partial Safe Mode)
> Specifications:
- Version : 3.0.0.0
- Author : BLACKFIRE69
- Build : 699CEA00
- Compatibility : Inno Setup v6.x, v6.5 or later
- License : Proprietary (See LICENSE file for details)
> Distribution:
- FXPackerAPI.dll — Core API library. Exposes all packing and unpacking
functions for direct integration into Inno Setup
pascal scripts.
- FXPackerCLI.exe — Command-line interface. Provides full packing
functionality via terminal commands. Suitable for
build pipeline and automation integration.
- FXPackerGUI.exe — Graphical interface. Provides full packing
functionality via a visual interface. Suitable for
manual archive creation and workflow configuration.
Code:
> Protection Layers:
- Layer 1 — Password-based access control (AES-256)
- Layer 2 — Executable binding verification
- Layer 3 — Runtime executable state matching and Host-state coupling synchronization.
> Modes:
- Safe Mode : Full protection — all 3 layers active.
Standard distribution with an external data file.
- Partial Safe Mode : Embedded distribution — Designed to allow the data
file to be embedded directly into the installer (Single-EXE)
via Inno Setup compilation.
- Unsafe Mode : Layer 1 only — password protection exclusively.
Anyone with the correct password can extract the
data file. Intended for initial template creation
in the Partial Safe workflow and debugging purposes only.
Code:
> Important: - Safe and Partial Safe modes require the exact same executable that was present during the packing process. The correct password alone is not sufficient to extract the data file — the executable identity must also match. Only Unsafe mode allows extraction with the password alone. > Features: - Standard and Single-EXE (embedded) distribution modes - Detailed logging support (API, CLI, and GUI) - Automatic protection mode detection on extraction - Inno Setup credential storage and retrieval - Buffer, stream, and file input/output support - Progress tracking for packing, extraction, and processing - Detailed error reporting via FXGetLastError - Cross-platform pointer and type conversion utilities * Basic DataFile Creation Code:
1. Open `Example.iss` and compile it (`MySetup.exe`). 2. Generate Data File: FXPackerCLI.exe ^ -e:".\MySetup.exe" ^ -p:"Secret123" ^ -i:"inno_key_here" ^ ".\Resources\*" ^ ".\Img\*.png" Code:
[Setup] // Encryption Encryption=True Password=inno_key_here // Code:
function InitializeSetup(): Boolean;
begin
Result := FXUnpackInit(ExpandConstant('{src}\Setup.dat'), 'Secret123');
if not Result then
ShowErr('Failed to initialize the setup. Error: ' + FXGetLastError());
end;
function CheckPassword(Password: String): Boolean;
begin
Result := (Password = FXUnpackRefineStr(FXUnpackGetStoredInnoEncryptionKey));
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpPassword then
WizardForm.PasswordEdit.Text := FXUnpackRefineStr(FXUnpackGetStoredInnoEncryptionKey)
else
WizardForm.PasswordEdit.Text := '';
end;
procedure InitializeWizard();
var
Res: Boolean;
begin
Res := FXUnpackExtractFile('button.png', ExpandConstant('{src}\_OutImg'));
end;
procedure DeinitializeSetup();
begin
FXUnpackReleaseResources;
end;
This mode allows the data file to be embedded directly into the installer (Single-EXE) via Inno Setup compilation. Step-by-Step Workflow # Pass 1: The Initial Template Code:
1. Create Initial Archive: Open `FXPacker.exe`. Add your files and set a password. 2. Enable 'Unsafe Mode': This allows the initial archive to be created without an EXE target. 3. Generate Data: Click 'Create Archive'. This creates your initial `Setup.dat`. 4. Compile Setup: Open `Example.iss` and compile it. > Result: You now have a "Template EXE" (`MySetup.exe`). code: FXPackerCLI.exe ^ --unsafe ^ -p="@#123_Test" ^ -i="Jrsoftware" ^ ".\Files\Img\*" Code:
5. Configure Packer: - In `FXPacker.exe`, select the `MySetup.exe` you just created as the Target EXE. - Set the `Setup.dat` from Pass 1 as the Parent File. 6. Disable 'Unsafe Mode': Security must be active for this step. 7. Enable 'Partial Secure': This triggers the internal identity-binding logic. 8. Select 'Partial Step 1': Required for the first binding pass. 9. Update Data: Click 'Create Archive' to overwrite `Setup.dat`. 10. Compile Setup: Go back to Inno Setup and compile the script again. code: FXPackerCLI.exe ^ --psafe ^ -s=1 ^ -e="MySetup.exe" ^ -o="Setup.dat" ^ -p="@#123_Test" ^ -i="Jrsoftware" ^ ".\Files\Img\*" Code:
11. Configure Packer:
- Keep `MySetup.exe` as the Target EXE.
- Use the updated `Setup.dat` from Pass 2 as the Parent File.
12. Select 'Partial Step 2': This performs the final verification wrap.
13. Finalize Data: Click 'Create Archive' to overwrite `Setup.dat` one last time.
14. Re-Compile: Go back to Inno Setup and compile the script for the final build.
code:
FXPackerCLI.exe ^
--psafe ^
-s=2 ^
-e="MySetup.exe" ^
-o="Setup.dat" ^
-p="@#123_Test" ^
-i="Jrsoftware" ^
".\Files\Img\*"
Code:
- Same as the 'Basic DataFile Creation'. Code:
* Result: You can now distribute just `MySetup.exe`. It contains the finalized, calibrated `Setup.dat` embedded internally. No external data file is needed! * Security Note: If you change your installer script (code, icons, or version), you must repeat the binding steps to ensure the security handshake remains valid. . |
| The Following 5 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
ADMIRAL (11-04-2026), Cesar82 (08-04-2026), Ele (14-04-2026), Razor12911 (09-04-2026), ScOOt3r (09-04-2026) | ||
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| SuperREP (SREP) Full Info! | yasitha | Conversion Tutorials | 26 | 08-01-2019 18:49 |
| PSX Modchip FAQ | Ne0 | PSX Games | 1 | 07-08-2009 08:18 |
| QUERY: editing CloneCD images & best for game data & music CDs | andwan0 | CD/DVD Software & Utilities | 2 | 18-05-2009 18:13 |
| CD/DVD Data Recovery | 123walter | CD/DVD Software & Utilities | 1 | 05-08-2005 21:53 |
| 99min CD-R's, my great experience w/Audio & Data | abbadon | CD/DVD Recordable Media | 10 | 15-05-2002 23:16 |