Skip to content

Releases: EXLOUD/PE-API-REPLACER

v1.0.10

29 Oct 00:58
4c1f98f

Choose a tag to compare

Update main.py to v1.0.10

v1.0.9

27 Oct 23:55
2de37cf

Choose a tag to compare

Changelog v1.0.9
New Features

Cancel Button Improvements: Added early cancellation detection with multiple checkpoints during file processing
Smart File Removal: Processed files are now automatically removed from the list when cancellation is triggered
Enhanced Logging: Improved cancellation logs now show total files processed, original file count, and remaining files for better clarity
Language Files Validation: Added error message when language files are missing from the languages folder

Fixes

Fixed file counter synchronization when cancelling batch operations
Corrected remaining file count calculation after cancellation
Resolved issue where file list wouldn't update properly after processing multiple batches
Fixed UI file removal to prevent duplicate entries
Fixed language selection dialog to show proper error message when language files are not found

Improvements

Faster cancellation response time - now stops at the earliest possible point in processing
Better user feedback with detailed cancellation statistics in logs
Cleaner UI state management after batch operations
Added 500ms delay before showing cancellation dialog to allow UI animations to complete
Improved error handling for missing application resources

Technical

Refactored PatcherWorker to track total file count and remaining files accurately
Optimized file removal logic in patching_done method to prevent duplicate removals
Improved permission restoration handling during cancellation
Enhanced LanguageDialog with resource validation and user-friendly error messages

v1.0.8

21 Oct 16:28
d6ee62c

Choose a tag to compare

Version 1.0.8 - UI/UX, Localization, and Deployment Overhaul
This version focuses on significant improvements to the user interface, user experience, and the introduction of a flexible localization system. The application is now more polished, robust, and easier to use, deploy, and maintain.

Key Changes:
Simplified Setup with Emulator Installer:

The project now includes a convenient installer for the required emulators, created with Inno Setup. This installer, located in the API folder, simplifies the setup process for users, handling both installation and uninstallation cleanly.
Dynamic Language Support:

The application now automatically detects and loads language files (lang_*.xml) from a dedicated languages folder.
Adding a new language is as simple as creating a new XML file – no code changes required.
A language selection dialog is shown on the first launch, featuring a vertical, scrollable list of all available languages.
The user's language preference is now correctly saved in settings.ini next to the executable, even after being compiled with PyInstaller.
UI and Style Polish:

Refined Styling: Restored the polished and consistent "Refined Dark Theme" across the entire application, including dialogs and all button types.
Proper Button Styles: Buttons in the "About" and "Language Selection" dialogs now correctly use the standard, solid gray style, matching the main application buttons like "Add Files."
Enhanced Scrollbars: Re-implemented the custom-styled, elegant scrollbars for all scrollable areas, improving visual consistency.
. Sticky Headers: The "Settings" and "Logs" panels now feature "sticky" headers that remain in place while the content scrolls. The "Donation" title in the "About" window is also now a sticky header.
Improved User Experience (UX) & Responsiveness:

Cancellable Patching Process: The "Start Patching" button now dynamically changes to a "Cancel" button during operation. This allows the user to safely interrupt a long patching process.
Robust Thread Management: Implemented a ThreadManager to handle all background tasks (file analysis, patching, folder scanning) cleanly. This prevents the UI from freezing and ensures operations can be started and stopped reliably.
File List Interaction: Reinstated the original, enhanced file item cards, including the hover effect (border highlight) and full swipe-to-delete functionality.
Build & Path Handling: The build script (build.bat) and application code now correctly handle all data files (languages, config.py), ensuring they are properly bundled and accessed, whether running from source or as a compiled .exe.

v1.0.0

19 Oct 16:24
eb24752

Choose a tag to compare

PE API Replacer - Release Installation Guide

📦 What's Included

This release contains a fully packaged, portable application with pre-built native libraries for multiple architectures and runtimes. No additional installation or compilation required.

Package Contents

pe-api-replacer-v1.0-release/
├── api_patcher.exe                 # Main application (PyInstaller compiled)
├── config.py                       # Configuration file (optional, for advanced users)
├── README.md                       # This file
│
├── 📂 API/                         # Pre-compiled replacement DLLs
│   ├── 📂 exinet/
│   │   ├── 📂 ucrt/                # Universal C Runtime version
│   │   │   ├── x32/
│   │   │   │   └── exinet.dll
│   │   │   ├── x64/
│   │   │   │   └── exinet.dll
│   │   │   └── arm64/
│   │   │       └── exinet.dll
│   │   │
│   │   └── 📂 msvcrt/              # MSVC Runtime version (legacy)
│   │       ├── x32/
│   │       │   └── exinet.dll
│   │       ├── x64/
│   │       │   └── exinet.dll
│   │       └── arm64/
│   │           └── exinet.dll
│   │
│   ├── 📂 exhttp/
│   │   ├── 📂 ucrt/
│   │   │   ├── x32/
│   │   │   ├── x64/
│   │   │   └── arm64/
│   │   └── 📂 msvcrt/
│   │       ├── x32/
│   │       ├── x64/
│   │       └── arm64/
│   │
│   ├── 📂 exws2/
│   │   ├── 📂 ucrt/
│   │   │   ├── x32/
│   │   │   ├── x64/
│   │   │   └── arm64/
│   │   └── 📂 msvcrt/
│   │       ├── x32/
│   │       ├── x64/
│   │       └── arm64/
│   │
│   └── 📂 [other_api_libs]/
│       ├── 📂 ucrt/
│       │   ├── x32/
│       │   ├── x64/
│       │   └── arm64/
│       └── 📂 msvcrt/
│           ├── x32/
│           ├── x64/
│           └── arm64/
│
└── 📄 CHANGELOG.md                 # Version history

🚀 Quick Start

Windows

  1. Extract the archive to your desired location

    C:\Program Files\PE-API-Replacer\
    
  2. Run the application

    • Double-click api_patcher.exe
    • Administrator privileges may be requested (required for file modifications)
  3. Select your files and configure options

    • Click "Add Files" or "Add Folder"
    • Choose APIs to replace
    • Configure backup/overwrite settings
    • Click "Start Patching"

macOS / Linux

While the core Python code is cross-platform, the pre-built executable is Windows-only. To run on macOS/Linux:

# Ensure Python 3.10+ is installed
python3 --version

# Install dependencies
pip3 install PyQt6 pefile

# Run from source
python3 api_patcher.py

📁 Installing Replacement Libraries (Optional)

The replacement DLL files are optional and only needed if you want custom API interception. Choose your runtime environment and architecture.

Selecting the Right Runtime

  • UCRT (Universal C Runtime) - Recommended for Windows 10/11 and modern systems
  • MSVCRT (Legacy) - For older Windows versions or systems without UCRT

Installation by Architecture

For 32-bit Applications (SysWOW64)

Choose your runtime, then copy x32 DLLs:

UCRT (Recommended):

Copy-Item -Path "API\exinet\ucrt\x32\*.dll" -Destination "C:\Windows\SysWOW64\" -Force
Copy-Item -Path "API\exhttp\ucrt\x32\*.dll" -Destination "C:\Windows\SysWOW64\" -Force
Copy-Item -Path "API\exws2\ucrt\x32\*.dll" -Destination "C:\Windows\SysWOW64\" -Force
# ... repeat for other API libraries

MSVCRT (Legacy):

Copy-Item -Path "API\exinet\msvcrt\x32\*.dll" -Destination "C:\Windows\SysWOW64\" -Force
Copy-Item -Path "API\exhttp\msvcrt\x32\*.dll" -Destination "C:\Windows\SysWOW64\" -Force
# ... repeat for other API libraries

For 64-bit Applications (System32)

Choose your runtime, then copy x64 DLLs:

UCRT (Recommended):

Copy-Item -Path "API\exinet\ucrt\x64\*.dll" -Destination "C:\Windows\System32\" -Force
Copy-Item -Path "API\exhttp\ucrt\x64\*.dll" -Destination "C:\Windows\System32\" -Force
Copy-Item -Path "API\exws2\ucrt\x64\*.dll" -Destination "C:\Windows\System32\" -Force
# ... repeat for other API libraries

MSVCRT (Legacy):

Copy-Item -Path "API\exinet\msvcrt\x64\*.dll" -Destination "C:\Windows\System32\" -Force
Copy-Item -Path "API\exhttp\msvcrt\x64\*.dll" -Destination "C:\Windows\System32\" -Force
# ... repeat for other API libraries

For ARM64 Windows Devices

Choose your runtime, then copy ARM64 DLLs to System32:

UCRT (Recommended):

Copy-Item -Path "API\exinet\ucrt\arm64\*.dll" -Destination "C:\Windows\System32\" -Force
Copy-Item -Path "API\exhttp\ucrt\arm64\*.dll" -Destination "C:\Windows\System32\" -Force
# ... repeat for other API libraries

MSVCRT (Legacy):

Copy-Item -Path "API\exinet\msvcrt\arm64\*.dll" -Destination "C:\Windows\System32\" -Force
Copy-Item -Path "API\exhttp\msvcrt\arm64\*.dll" -Destination "C:\Windows\System32\" -Force
# ... repeat for other API libraries

Required: Run PowerShell as Administrator for System32/SysWOW64 operations.


🌍 Language Support

Current Release (v1.0)

  • Ukrainian (Українська) - Primary language

Multilingual Release (Coming Soon)

An updated version with multiple language support will be released shortly, including:

  • English
  • Ukrainian
  • Additional languages (TBD)

If the Ukrainian interface is not suitable for your needs, a full English translation will be available upon request without any difficulty.


⚙️ Configuration

The config.py file contains API replacement definitions. For most users, the default configuration is sufficient.

For Advanced Users

Edit config.py to add custom API replacements:

DLL_REPLACEMENTS = {
    1: {'name': 'CUSTOM_API', 'replacements': {
        b'ORIGINAL.DLL': b'REPLACE.DLL\x00',
        b'original.dll': b'replace.dll\x00',
    }},
}

Important: Replacement length must equal original length. Pad with \x00 if needed.

After editing, place config.py in the same directory as api_patcher.exe for changes to take effect.


🔧 System Requirements

  • OS: Windows 10/11 (x86-64, x86-32, or ARM64)
  • RAM: Minimum 512 MB (1 GB recommended for batch operations)
  • Disk Space: 50 MB for application + storage for backups
  • Permissions: Standard user account (admin elevation on demand)
  • Runtime: UCRT (recommended) or MSVCRT (legacy systems)

📋 Supported APIs (Default)

  • WINHTTP → EXHTTP
  • WININET → EXINET
  • WS2_32 → EXWS2
  • SENSAPI → EXSENS
  • IPHLPAPI → EXIPHL
  • URLMON → EXURLM
  • NETAPI32 → EXNETAPI
  • WSOCK32 → EXWS
  • WINTRUST → EXTRUST

🛡️ Safety Features

  • Automatic Backups: All originals saved to backup/ folder
  • Permission Management: Auto-handles Windows file permissions
  • Progress Tracking: Real-time logging of all operations
  • Batch Processing: Multi-threaded operations keep UI responsive
  • Checksum Recalculation: Valid PE files after patching

⚠️ Important Notes

  1. Administrator Rights: File modifications may require elevation
  2. Runtime Selection: Choose UCRT for modern systems, MSVCRT for legacy
  3. Architecture Matching: Use correct DLL version (x32/x64/arm64)
  4. Backup Your Files: Always test on copies first
  5. Virtual Machines: Use VMs for initial testing
  6. System Restore Points: Create restore points before patching
  7. Signature Validation: Patching may invalidate digital signatures

🐛 Troubleshooting

Problem Solution
"Permission Denied" Run PowerShell as Administrator; check UAC settings
Application won't start Ensure Windows 10+ or compatible runtime installed
DLL not found error Verify correct architecture and runtime in API/ folder
Files don't get patched Check if target DLLs are present in config.py
UI frozen Application is processing; wait for progress bar to complete
Runtime mismatch Use UCRT for Windows 10/11; MSVCRT for older systems

🔄 Restoring Original Files

If issues occur:

  1. From Backup: Restore from backup/ folder created during patching
  2. Manual Restore: Replace patched file with original
  3. System Restore: Use Windows System Restore to previous point
  4. Clean Installation: Reinstall affected application
  5. Remove DLLs: Delete installed DLLs from System32/SysWOW64 if needed

📞 Support

  • Issues: Report bugs on GitHub Issues
  • Feature Requests: Submit with [FEATURE] tag
  • Language Support: Available in upcoming release

📜 License

GNU General Public License v3.0 (GPL-3.0)

This software is free to use, modify, and distribute under GPL terms. See LICENSE file for details.


🔗 Additional Resources


📝 Version History

v1.0 (Current Release)

  • Initial release
  • IAT and Hex patching support
  • Batch file processing
  • Real-time logging
  • Ukrainian interface
  • Pre-compiled DLLs for x32, x64, ARM64
  • UCRT and MSVCRT runtime options

v1.1 (Coming Soon)

  • Multilingual support (English, Ukrainian, others)
  • Enhanced UI/UX improvements
  • Additional API definitions

Status: Stable Release | Updated: 2025 | Support: Active

For the latest version and updates, visit the GitHub repository.


🔧 Automated Installation (Coming Soon)

An INNO Setup installer for x86-64 systems is planned for users who prefer automated installation. This will handle:

  • Automatic file extraction to Program Files
  • One-click DLL installation (with runtime selection)
  • System PATH configurati...
Read more