Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/danielkrupinski/Osiris/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Osiris supports Windows 10 and later (x64 only). The Windows build outputs Osiris.dll which must be injected into the CS2 game process using a manual mapping injector.

Prerequisites

  • Microsoft Visual Studio 2022 with Desktop development with C++ workload
  • Windows 10 or later (64-bit)
  • Visual Studio platform toolset v143 or later

Building from Source

  1. Open Osiris.sln in Visual Studio 2022
  2. Set build configuration to Release | x64
  3. Press Build Solution (Ctrl+Shift+B)
  4. The compiled Osiris.dll will be in the output directory

Output File

The Windows build produces Osiris.dll, a dynamically linked library (DLL) that must be injected into the CS2 process. File location:
  • Visual Studio: x64/Release/Osiris.dll
  • CMake: build/Source/Release/Osiris.dll

Injection Methods

Manual Mapping (Required)

Counter-Strike 2 blocks standard LoadLibrary injection, so you must use a manual mapping (reflective DLL injection) injector.
Known Detected InjectorsThe following injectors are known to be detected by VAC:
  • Xenos
  • Extreme Injector
Using these injectors will result in a VAC ban.

Entry Point

On Windows, Osiris initializes through the standard DLL entry point:
extern "C" std::size_t DllMain(HMODULE, DWORD reason, LPVOID) noexcept
{
    if (reason == DLL_PROCESS_ATTACH)
        GlobalContext::initializeInstance();
    return TRUE;
}
See dllmain.cpp:23-28

Platform-Specific Implementation

Windows Platform API

Osiris uses custom Windows API wrappers located in Source/Platform/Windows/:
  • WindowsPlatformApiImpl.h - Core platform API implementation
  • WindowsDynamicLibrary.h - Dynamic library loading
  • UserDocumentsFolderPath.h - Configuration file path resolution
  • Syscalls/ - Direct syscall implementation to avoid API hooks

Configuration Storage

Configuration files are stored in:
%APPDATA%\OsirisCS2\configs\default.cfg
The path is determined using SHGetKnownFolderPath(FOLDERID_Documents, ...) from Shell32.dll.

Technical Features

  • No C++ Runtime Library (CRT) in release builds
  • No static imports (dynamic API resolution via PEB)
  • Direct syscalls to avoid usermode hooks
  • RTTI parsing for virtual method table location
  • Portable Executable (PE) parsing

Build Configurations

Optimized build with:
  • No CRT dependencies
  • Dynamic API resolution
  • Size optimization
  • No debugging symbols

Common Issues

Injection Failed

If injection fails:
  • Ensure you’re using a manual mapping injector
  • Verify CS2 is running and not in secure mode
  • Check that Osiris.dll is the correct 64-bit build
  • Try running the injector as administrator

VAC Detection

VAC RiskUsing any game modification carries the risk of VAC detection and permanent ban. Always:
  • Use a manual mapping injector
  • Avoid known-detected injectors (Xenos, Extreme Injector)
  • Keep your injector and Osiris up to date

Build Errors

If you encounter build errors:
  • Ensure Visual Studio 2022 is fully updated
  • Verify the “Desktop development with C++” workload is installed
  • Check that you’re targeting x64 platform
  • Clean the solution and rebuild

See Also

Build docs developers (and LLMs) love