README.md

June 23, 2026 ยท View on GitHub

Intro

Since there is no good source to hook BitBlt from gdi32.dll, I decided to release this simple project that will help you understand how to hook BitBlt and enable it to take a clean screenshot of the game window.

Why BitBlt?

BitBlt is a function from the Windows API that is commonly used to capture screenshots of a game's screen to detect ESP overlays, visual modifications, or other forms of cheating. It is widely used as part of anti-cheat systems, including those found in games such as Valorant, as well as anti-cheat solutions like FairFight, PunkBuster, and Ricochet for Call of Duty.

About project

This project provides two examples:

  1. internal_hook that's hooks the BitBlt function.
  2. Dummy which is just a target application used to test the hook.

The hook includes its own overlay, allowing us to verify whether screenshots remain clean. As shown below, the captured screenshot appears clean: here

However, an overlay is actually being rendered and is not detected in the screenshot: here

Overlay with the function call visible: here

This should work with most anti-cheats. However, depending on the game, additional screenshot related functions may also need to be hooked. If the game relies on BitBlt for screenshot capture, this hook should work perfectly.

Credits