Skip to content

v1.0.0

Choose a tag to compare

@EXLOUD EXLOUD released this 19 Oct 16:24
· 98 commits to main since this release
eb24752

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 configuration
  • Shortcut creation
  • Uninstall support

Check back for the automated installer release if manual installation feels tedious.