Skip to content

Repository files navigation

A ProxyDLL Template for version.dll

This project provides a simple template for creating a ProxyDLL for version.dll. It is designed to patch opcodes in a target executable at runtime.

What is a ProxyDLL?

A Proxy DLL (Dynamic Link Library) intercepts and replaces an original system DLL to provide powerful runtime control:

  • API Hooking: Captures and modifies specific function calls from the target application
  • Runtime Patching: Dynamically edits memory/opcodes of running processes (without modifying the physical executable file)
  • Compatibility Layer: Enables API redirection for legacy software support

This template is specifically designed for version.dll and enables runtime opcode patching of executables loaded in memory.

How to Use

Follow these steps to use the template for your own projects:

  1. Open the dllmain.cpp file.

  2. Locate the section dedicated to opcode patching. It looks like this:

//-------------------------------------------------------------------------------
// Patch Opcodes (Change assembly code at runtime)
// Only "targetOffset" and "patchBytes" variables should be modified.

// Example: version_proxy_test.exe
DWORD targetOffset = 0xBA7; // FileOffset in the target executable
BYTE patchBytes[] = { 0xE9, 0xD6, 0xFE, 0xFF, 0xFF }; // The bytes to write

WriteOpCodesToExe(targetOffset, patchBytes, sizeof(patchBytes));
//-------------------------------------------------------------------------------
  1. Modify the targetOffset variable with the file offset of the instruction you want to patch in your target executable.

  2. Modify the patchBytes array with the new opcode bytes you wish to write.

  3. Compile the project to generate the version.dll file.

  4. Place the resulting version.dll in the same directory as your target executable.

  5. When the executable starts, the DLL will be loaded and the WriteOpCodesToExe function will automatically apply your patch.

Example Use Case

// Bypass license check (NOP the verification call)
DWORD targetOffset = 0x4012A3;
BYTE patchBytes[] = { 0x90, 0x90, 0x90, 0x90, 0x90 }; // 5-byte NOP
// Game speed hack (patch 30FPS → 60FPS)
DWORD targetOffset = 0x45C28A;
BYTE patchBytes[] = { 0xB8, 0x3C, 0x00, 0x00, 0x00 }; // mov eax,60

About

ProxyDLL Template for Version.dll

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages