Skip to content

Jakiboy/DeepResolver

Repository files navigation

DeepResolver

DeepResolver

DeepResolver is a powerful C++ GUI application that automatically extracts Inno Setup installers, analyzes their dependencies, and creates portable applications with automatic dependency registration.

Features

  • Automatic Extraction: Uses innounp.exe to extract Inno Setup installers silently
  • ISS Parsing: Intelligently parses .iss script files to detect dependencies (OCX, DLL, TLB files)
  • Dynamic Script Generation: Creates registration batch scripts tailored to each application
  • Portable Structure: Organizes extracted files in a clean portable structure
  • Registry Tracking: Uses registry flags to avoid re-registering dependencies
  • Silent Registration: Background dependency registration without user interaction
  • Modern GUI: Clean wxWidgets-based interface with progress tracking

System Requirements

Runtime Requirements

  • Windows 7 or later (32-bit or 64-bit)
  • Administrator privileges (for dependency registration)
  • innounp.exe (Inno Setup Unpacker)

Build Requirements

  • Visual Studio 2019 or later / MinGW-w64
  • CMake 3.15 or later
  • wxWidgets 3.0 or later
  • C++17 compatible compiler

Installation

Pre-built Binary

  1. Download the latest release from the releases page
  2. Extract to a folder of your choice
  3. Place innounp.exe in the same directory as DeepResolver.exe
  4. Run DeepResolver.exe

Building from Source

1. Install Dependencies

wxWidgets:

# Download wxWidgets from https://www.wxwidgets.org/downloads/
# Extract and build:
cd wxWidgets-3.x.x
mkdir build-release
cd build-release
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
cmake --install .

2. Clone Repository

git clone https://github.com/yourusername/deep-resolver.git
cd deep-resolver

3. Build with CMake

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release

4. Output

The compiled executables will be in build/bin/:

  • DeepResolver.exe - Main GUI application
  • DeepResolverRegister.exe - Silent registration helper

Usage

Basic Workflow

  1. Launch DeepResolver

    DeepResolver.exe
    
  2. Select Inno Setup Installer

    • Click "Browse..." button
    • Select an .exe file created with Inno Setup
  3. Process Setup

    • Click "Process Setup" button
    • Wait for extraction and processing to complete
  4. Result

    • Portable application created in [AppName - Portable]/
    • Dependencies stored in DeepResolver/ subdirectory
    • Registration scripts automatically generated

Running the Portable Application

Navigate to the output folder:

cd "bin/[AppName - Portable]"

First Run (Register Dependencies):

Right-click register.bat → Run as administrator

Launch Application:

[AppName].exe

Unregister Dependencies (Optional):

Right-click unregister.bat → Run as administrator

Configuration

CMake Options

-DBUILD_GUI=ON              # Build GUI application (default: ON)
-DBUILD_REGISTER_EXE=ON     # Build silent registration helper (default: ON)
-DwxWidgets_ROOT_DIR=...    # wxWidgets installation path

Registry Keys

DeepResolver uses registry to track resolved applications:

HKEY_CURRENT_USER\SOFTWARE\DeepResolver\ResolvedApps\[AppName]
  - Resolved (DWORD): 1 if dependencies registered
  - Version (String): Application version

Troubleshooting

"innounp.exe not found"

Solution: Download innounp.exe from here and place it in the same directory as DeepResolver.exe.

"Extraction failed"

Possible causes:

  • File is not an Inno Setup installer
  • Corrupted installer file
  • Insufficient disk space

Solution: Verify the setup file is valid and try again.

"ISS script file not found"

Cause: The installer doesn't include the script file, or it's embedded differently.

Solution: Some installers don't include ISS files. DeepResolver requires the ISS file for dependency detection.

"Registration failed"

Possible causes:

  • Not running as administrator
  • Dependencies are missing or corrupted
  • System already has conflicting versions

Solution:

  1. Right-click register.bat and select "Run as administrator"
  2. Check if files exist in DeepResolver/ folder
  3. Check Event Viewer for detailed error messages

GUI doesn't start

Possible causes:

  • Missing wxWidgets DLLs
  • Incompatible Windows version

Solution:

  • Ensure wxWidgets DLLs are in PATH or same directory
  • Use Windows 7 or later

Known Limitations

  1. Inno Setup Only: Only works with Inno Setup installers
  2. ISS File Required: Needs embedded ISS script for dependency detection
  3. COM Registration: Only handles COM/ActiveX registration (regsvr32, regtlib)
  4. No Driver Support: Cannot handle driver installations
  5. Limited PE Injection: PE modification is simplified to launcher creation for safety

Roadmap

  • Support for other installer formats (NSIS, WiX)
  • Automatic innounp.exe download
  • Batch processing of multiple installers
  • Portable launcher executable (batch to EXE conversion)
  • Advanced PE injection for seamless integration
  • Dependency conflict detection
  • Custom dependency rules

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

This project is provided as-is for educational and personal use.

Credits

  • innounp.exe: Inno Setup Unpacker by Jordan Russell
  • wxWidgets: Cross-platform GUI library
  • Inno Setup: Installer system by Jordan Russell

Contact

For issues, questions, or suggestions, please open an issue on GitHub.

About

Setup Dependency Resolver and Portable Application Creator

Resources

License

Stars

Watchers

Forks

Contributors