Skip to main content

1.0.0

This is the initial release of LANCommander Interposer: a Windows API hook DLL that makes games easier to run in shared, managed, and portable environments without modifying the game itself.

Download

Features

Registry Emulation

Games that write configuration or save state to the Windows registry can be redirected to a plain text .reg file inside the game directory instead. Registry access to any key listed in .interposer\Registry.reg is served entirely from an in-memory store; keys not in the file pass through to the real registry unchanged. Writes are persisted back to the file automatically.

17 advapi32.dll functions are intercepted, including RegOpenKeyEx, RegQueryValueEx, RegSetValueEx, RegDeleteKey, RegEnumKeyEx, and RegCloseKey (W and A variants throughout).

File Redirection

File open calls (CreateFileW/A) and attribute queries (GetFileAttributesW/A) can be redirected using ECMAScript regex rules. Rules are defined in .interposer\Config.yml as pattern/replacement pairs. The first matching rule wins; environment variables in the replacement string are expanded after capture-group substitution.

FastDL

Game content that is missing or out of date is downloaded transparently from an HTTP server before the game opens the file. When a configured path prefix is matched, the hook sends a HEAD request to the FastDL server; if the file is available, it is fetched via GET and written to an overlay directory. The game receives a handle to the downloaded file with no changes required on the game side.

CRC32 freshness checking is supported via the X-Checksum-CRC32 response header — files already cached locally with a matching checksum are not re-downloaded. Sensitive interposer and game files are blocked from being overwritten by default.

Borderless Fullscreen

Games that create bordered or exclusive-fullscreen windows can be converted to borderless fullscreen automatically. When the game creates a top-level window, border style bits are stripped and the window is centered on its monitor. Subsequent attempts by the game to re-apply border styles or reposition the window are silently discarded.

This feature is opt-in via Window.Borderless: true in the config.

Player Identity

GetUserNameW/A and GetComputerNameW/A can be overridden to return a configured name instead of the real Windows account and machine names. Both values can be set in Config.yml or passed at launch time via the --username and --computername injector flags without editing the config. Hooks are only installed when a value is configured — both APIs pass through unchanged when the config is empty.

Logging

All hooked subsystems write to a timestamped session log at .interposer\Logs\YYYY-MM-DD_HH-MM-SS.log. File I/O, registry access, file redirects, FastDL downloads, and overlay cache hits are each logged with a distinct verb. Logging per subsystem is individually toggleable in the config. Early startup failures are always written to %TEMP%\interposer_diag.log regardless of config state.

Distribution

Three deployment variants are included, each for both x64 and x86:

VariantFileUse when
StandardLANCommander.Interposer.dll + LANCommander.Interposer.Injector.exeYou control how the DLL is loaded (injector CLI, LANCommander client, custom launcher)
Proxyversion.dllYou want Windows to load the DLL automatically — drop it next to the game executable
ASILANCommander.Interposer.asiThe game already has an ASI loader installed

Each variant is also packaged as an .lcx file for direct import into LANCommander as a redistributable. The LCX packages include install and name-change scripts that configure the .interposer\ directory and keep the player username in sync with the LANCommander player alias.