klob / Indicium-Supra

DirectX API-hooking framework

Home Page:https://vigem.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Indicium-Supra

API-Hooking and rendering framework for DirectX-based games.

Build status Discord Twitter Follow Website

About

Indicium-Supra consists of a self-contained library (DLL) which exposes a minimalistic API for rendering custom content in foreign processes eliminating the need for in-depth knowledge about Direct3D and API-hooking. The most common use-case might be drawing custom overlays on top of your games. The framework takes care about pesky tasks like detecting the DirectX version the game was built for and supports runtime-hooking (no special launcher application required).

Supported DirectX versions

  • DirectX 9.0
  • DirectX 9.0 Extended (Vista+)
  • DirectX 10
  • DirectX 11
  • DirectX 12 (implemented but untested)

How to build

Prerequisites

Building should be pretty straight-forward since the POCO libraries get fetched pre-compiled via NuGet on first build automatically. You have multiple choices for getting things done.

Visual Studio

Just open the solution file Indicium-Supra.sln and start the build from there.

If Visual Studio can't load one or more projects the first time you launch it, you might need to restore the NuGet packages. Open the Package Manager Console and hit Restore:

Command Line

Navigate to the solution directory on the command line and invoke:

powershell .\build.ps1 -configuration release

The lazy way

Now if you're really in a hurry you can grab pre-built binaries from the buildbot. Boom, done.

How to use

Inject the resulting Indicium-Supra.dll into the target process first using a DLL injection utility of your choice (you can ofc. use mine as well). To do anything useful you also need one or more host libraries injected as well. The following example loads the imgui sample:

Injector --inject --module-name Indicium-Supra.dll --process-name hl2.exe
Injector --inject --module-name Indicium-ImGui.dll --process-name hl2.exe

Diagnostics

The core library logs its progress and potential errors to the file %TEMP%\Indicium-Supra.log.

Demos

The following screenshots show imgui getting rendered in foreign processes using different versions of DirectX.

DirectX 9

Half-Life 2, 32-Bit

Half-Life 2

DirectX 9 Ex

Castlevania: Lords of Shadow, 32-Bit

Castlevania: Lords of Shadow

DirectX 10

Bioshock 2, 32-Bit

DirectX 11

Ryse: Son of Rome, 64-Bit

Road Redemption, 64-Bit

Sources

About

DirectX API-hooking framework

https://vigem.org/

License:MIT License


Languages

Language:C++ 81.9%Language:C 13.1%Language:PowerShell 1.8%Language:C# 1.7%Language:Shell 1.4%Language:Batchfile 0.0%