- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 381
- Reaction score
- 7
Anyone currently digging into DX12 internals for a clean overlay?
I'm trying to move away from lazy wrappers and noisy system-wide detours. The goal is to hook the game's actual Present function — specifically the one used internally by the game’s own swapchain instance, rather than just relying on a global hook from
If you've worked on internal DX12 projects, you know that identifying the specific IDXGISwapChain instance in a running process is usually the biggest hurdle. Most public sources just detour the entire DXGI module, which is a great way to get flagged by more aggressive anti-cheats or just deal with unnecessary overhead.
The Technical Goal
I'm looking for a solid way to:
Does anyone have a reliable signature or a logic-based method to grab the instance pointer directly from the game's render thread or command queue? I'm trying to keep this as light as possible for a private build.
has anyone run this type of manual hunt before?
I'm trying to move away from lazy wrappers and noisy system-wide detours. The goal is to hook the game's actual Present function — specifically the one used internally by the game’s own swapchain instance, rather than just relying on a global hook from
Code:
D3D12CreateDevice
If you've worked on internal DX12 projects, you know that identifying the specific IDXGISwapChain instance in a running process is usually the biggest hurdle. Most public sources just detour the entire DXGI module, which is a great way to get flagged by more aggressive anti-cheats or just deal with unnecessary overhead.
The Technical Goal
I'm looking for a solid way to:
- Identify the game’s active swapchain instance in memory without creating a dummy device.
- Find the vtable (specifically the Present index, usually 140 for DXGI) to swap it out.
- Avoid using Kiero or other middleware that adds bloat to the project.
I've been looking at scanning for the vtable signature of the IDXGISwapChain interface, but signatures vary between Windows versions and DXGI updates. Another method is tracing back from the HWND, but finding the link to the internal descriptor heaps and the swapchain pointer is proving to be a pain in the ass.
Does anyone have a reliable signature or a logic-based method to grab the instance pointer directly from the game's render thread or command queue? I'm trying to keep this as light as possible for a private build.
has anyone run this type of manual hunt before?