Sair — CS2 External
Several weeks of work, one binary. A full-featured external for Counter-Strike 2 — read-only memory, hardware-input automation, custom ImGui overlay, and a four-tier anti-analysis layer keeping the internals quiet.
Pure external, by design.
No injection. No hooks. The cheat lives in its own process and reads CS2's memory at a steady 128 Hz tick — the same cadence the server runs at, so per-frame state never goes stale. Inputs go out through a hardware-style driver path so the OS sees a real mouse rather than a process posting messages.
That constraint shapes everything downstream. Targeting, ESP, chams — every feature ends up being a question of "how do you get the right bytes, and how do you act on them without touching the game?"
A full feature surface, organised.
The menu is split into Combat, Visuals, Utility, Config and Settings. Each tab is its own page in the overlay with its own preview widgets — toggling chams shows you the chams material on a small mannequin, the ESP page draws a live preview of every box, dot and flag you've enabled. The point was that no setting should require a restart to verify.
- Aimbot — FOV, smoothing, multi-bone (head / neck / chest / pelvis), visible-only, predictive, RCS, first-bullet delay, no-shoot-smoke
- Triggerbot — randomised press / release windows, hit-chance gate
- Flickbot — angle-snap with optional restore back to the pre-flick aim
- Silent Aim — click-window targeting, configurable max FOV
- NoSpread — hit-chance gate against the live spread cone, never blocks valid shots
- ESP — boxes, skeleton, healthbar, head dots, snaplines, off-screen indicators, info flags (armor, scoped, flashed, defusing, C4, ping)
- Chams — five materials: Flat, Ghost, Wireframe, Glow, Galaxy
- Radar — draggable, zoomable circular minimap
- Spectator List — named list with first-person / third-person / freecam tags
- Items & Projectiles ESP — dropped weapons, grenades in flight, C4
- Grenade Predictor — full bounce trajectory with optional gradient path
- Watermark — draggable, branded
- Anti-Flash — kill the white-out cleanly
- Media Overlay — in-game music widget, draggable, persists with the rest of the config
- Per-weapon profiles — every combat setting can fork by weapon
- Config Manager — multi-config save / load to
%APPDATA%\SAIR, hot-swap at runtime
- Four-tier anti-analysis — timing, syscall queries, integrity verification, hypervisor checks
- String obfuscation — every meaningful string compiled into noise, deciphered on use
- Randomised check order — Fisher-Yates shuffle each tick so no static breakpoint catches the same call twice
- Hidden threads — workers don't show up to a debugger walking the thread list
- Self-integrity — the checks check themselves; patching one trips the next
- Silent exit — detection poisons internal state and the main loop drops cleanly. No popup, no log.
Three things that took the longest, and were worth it.
The anti-analysis stack. Anyone can call IsDebuggerPresent. Stacking four independent classes of check, randomising their order, and wiring them so a tampered result re-fires on the next tick — that took weeks of reading, breaking my own builds with debuggers, and patching the gaps. I won't go into method specifics; the short version is: timing, syscalls, integrity, and VM identity, all on a 15-second cadence with a near-zero overhead budget.
The NoSpread gate. The aimbot doesn't just track — it asks the spread model whether the shot would land before letting the trigger through. Knives, grenades and C4 fall through unconditionally so you never get blocked on a weapon the table doesn't cover. It's a small feature; the predicate behind it took me longer than half the rest of the build.
The overlay. Custom ImGui theme, sidebar nav, per-feature pages with live previews, draggable widgets, smooth animations on every transition. It feels like a desktop app, not a hot-glued cheat menu — which was the whole goal.
The interface — built like a product.
Five top-level tabs, each with its own subpages. Quick toggles up top so you can flip the four combat features on without clicking through. Per-feature live previews so you can dial in chams or ESP without ever leaving the menu. Configs save in milliseconds; hot-swap during a match works.
"The hardest line to walk was 'powerful, but not obviously powerful'. The interesting work isn't building the feature — it's deciding where to stop."
From here.
Sair is shipped. The next step is the universal color-aimbot engine I've been chipping at on the side, sharing the input layer and the overlay shell with this project. After that: HWID work — properly, at the driver level.
Want the build, or just want to talk about how the parts fit? Grab the .rar on MediaFire, or reach me on Discord.