You don't need to know anything complex to get started. Just edit this one function in main.cpp:
// Payload function - your custom code goes here
DWORD WINAPI Payload(LPVOID lpParam) {
MessageBoxA(NULL, "DLL Proxy Loaded!", "dll-proxy", MB_OK);
return 0;
}That's it! Build, drop the DLL next to your target application, and your code runs instantly.
99% of DLL proxy projects use complex .def files, assembly stubs, or manual function reimplementation. This project uses pure MSVC pragma forwarding for the cleanest possible implementation.
mkdir build && cd build
cmake -DDLL_TYPE=version .. # or winmm
cmake --build . --config ReleaseOutput: build/Release/version.dll (or winmm.dll)
- Push to GitHub
- Go to Actions → "Build DLL"
- Select DLL type and run
- Download artifact
- Build proxy DLL (e.g.,
version.dll) - Place in target application directory
- Run application - payload executes on DLL load
- Build proxy DLL via GitHub Actions
- Place DLL in the game/application directory
- Set DLL override environment variable:
# For Wine applications
WINEDLLOVERRIDES="winmm=n,b" wine your_application.exe
# For Steam games (add to launch options)
WINEDLLOVERRIDES="winmm=n,b" %command%
# Multiple DLLs
WINEDLLOVERRIDES="winmm=n,b;version=n,b" %command%Override flags:
n= native (load Windows DLL first)b= builtin (fallback to Wine's builtin implementation)
- Compiler: MSVC (Visual Studio 2019+)
- Build: CMake 3.15+
- Target: Windows x64 only (no 32-bit support)
| DLL Name | Exports | Common Usage |
|---|---|---|
version.dll |
17 | File version info API |
winmm.dll |
181 | Multimedia/audio functions - used by media players, games, audio apps |
Want to know which DLLs your target application uses? Run this PowerShell command:
Get-Process -Name keepassxc | Select-Object -ExpandProperty Modules | Select-Object FileNameUses MSVC-specific pragma directives to forward exports:
#pragma comment(linker, "/EXPORT:FuncName=C:\\Windows\\System32\\original.dll.FuncName,@1")No intermediate files. No assembly. Just clean forwarding.
Many of the applications, tools, or whatever I used generally utilized something called winmm.dll, and after approximately 2-3 days of research, I decided to undertake this project.
This implementation is heavily inspired by Perfect DLL Proxy by mrexodia, which demonstrated the elegant pragma forwarding technique using GLOBALROOT paths.
This software is provided "as is" under the MIT License. As stated in the MIT License, we accept no responsibility or liability for any use or misuse of this tool.
MIT - See LICENSE file

