Cerberus SDK Documentation
Integrate Cerberus anti-cheat into your game in under 2 hours.
Quick Start
Cerberus ships as a single static library (cerberus_sdk.lib) and a header file. The SDK handles all communication with the Cerberus kernel driver — your game code only needs to initialize, start a session, and listen for callbacks.
System Requirements
Developer / Studio Requirements
- Visual Studio 2019+ or compatible C++ compiler (MSVC v142+)
- .NET 6.0+ for C# bindings (Unity integration)
- Unreal Engine 5.1+ for UE plugin
- Partner dashboard account + API key
Player / End-User Requirements
Players running games protected by Cerberus need:
- OS: Windows 10 21H2+ or Windows 11 (x64 only). The v0.6 driver requires 21H2; titles on the 0.5.x beta channel still support 20H2 until 2026-12-01
- BIOS — Secure Boot: Must be enabled. Required for hardware verification (Layer 3). Check:
msinfo32→ "Secure Boot State" should show "On" - BIOS — TPM 2.0: Recommended — enables boot-chain attestation (Secure Boot state, ELAM measurements, PCR 7/11 quotes) on the v0.6 driver; sessions without it fall back to driver-only attestation. Most modern systems have this enabled by default
- Windows Update: System must be on a supported Windows build. Outdated builds may fail driver signature verification
- GPU Drivers: Up to date. Outdated GPU drivers can trigger false positives on overlay detection
- No unsigned drivers: Systems with test-signing mode enabled (
bcdedit /set testsigning on) will be flagged - Virtualization: Running inside a VM (VirtualBox, VMware, Hyper-V) is not supported for competitive multiplayer. Cerberus will detect and flag virtualized environments
Not sure whether a player's PC qualifies? Point them at the free Readiness Check — no account, no network access.
Platform Coverage
Cerberus is Windows PC only today (Windows 10 21H2+ / Windows 11, x64). We don't have a console (PlayStation, Xbox, Switch) or mobile SDK yet — if your title ships cross-platform, Cerberus currently only covers the PC player base, not console/mobile lobbies. Console support is on our long-term roadmap but has no committed timeline in closed beta; if that's a blocker for your integration, reach out and we'll talk through options.
Installation
There are two packages. The evaluation package is a public download — no account, no key, no driver — and is enough to write and compile a complete integration. The partner runtime adds the signed driver and the production libraries and is delivered through the partner portal once your API key is issued. The header and the API are identical in both, so nothing in your integration changes when the runtime is swapped in.
Evaluation package (public, no account)
Partner runtime (partner portal)
Migrating to v0.6
v0.6.0.0a ships the second-generation kernel driver on a new alpha channel. Nothing changes for your title until you switch its driver channel in the partner dashboard (Settings → Driver Channel). The 0.5.x beta driver keeps receiving signature updates, and rollback is one click. When you do move, these are the changes that will break a 0.5.x integration:
1. Asynchronous initialization
cerberus_init() used to block for up to 400 ms while the driver loaded. The gen-2 driver loads in ~140 ms but attestation now completes asynchronously, so initialization returns immediately and you wait for CERBERUS_EVT_READY before starting a session.
2. Ban callback signature
OnBan now receives a CerberusBanInfo struct instead of a bare ban ID. The struct carries the 20-character appeal reference that you should surface on your ban screen so players can self-serve at cerberusac.dev/appeal.
3. Callback ABI v3
All callbacks are registered through cerberus_set_callbacks(&CerberusCallbacksV3). The v2 table still works for this release and logs a deprecation warning; it is removed in v0.7. C# and Rust bindings ship with the v3 table only.
4. New optional policies
config.requireIommu = true— flag sessions where DMA remapping is disabled instead of trusting them. Off by default in the alpha.config.zeroFootprint = true— opt into the Zero-Footprint Mode preview. See KI-2026-018 before enabling on latency-critical titles.config.attestationReport = true— attach the signed per-session attestation report to session.end webhooks.
5. Webhooks
Two new events, appeal.received and appeal.decided, fire for the appeal pipeline. The v1 payload format has been removed; every payload is signed and carries a replay nonce. If you verify signatures manually, read the nonce from X-Cerberus-Nonce and reject repeats.
6. Removed
- Usermode-only scan mode. Every session requires the kernel driver.
- 32-bit process scanning. 64-bit game binaries only.
- Windows 10 20H2 / 21H1 on the 0.6 channel.
Initialization
CerberusConfig
| Parameter | Type | Description |
|---|---|---|
| apiKey | const char* | Your API key from the partner dashboard. Required. |
| gameId | const char* | Unique game identifier. Required. |
| enableAI | bool | Enable Layer 2 (behavioral AI). Default: true. Aegis+ tier required. |
| enableHW | bool | Enable Layer 3 (hardware fingerprinting). Default: true. Cerberus+ tier required. |
| scanInterval | uint32_t | Kernel scan interval in ms. Default: 2000. Min: 500. |
| aiSampleRate | uint32_t | Input sampling rate in Hz. Default: 1000. Range: 250-2000. |
| banCallback | CerberusBanFn | Called when a player is banned mid-session. |
| flagCallback | CerberusFlagFn | Called when a player is flagged for review (optional). |
| logLevel | CerberusLogLevel | LOG_NONE, LOG_ERROR, LOG_WARN, LOG_INFO, LOG_DEBUG. |
Configuration
Cerberus can be configured at runtime. Common patterns:
Callbacks
Session Lifecycle
Cerberus_EndSession() when a match ends. Orphaned sessions consume monitoring resources and may trigger false stale-session alerts.Typical flow:
Ban API
Query and manage bans via the REST API. All endpoints require your API key in the Authorization header.
List recent bans for your game.
Submit a ban appeal for manual review. Returns the review ticket ID.
Webhooks
Cerberus sends real-time webhook events to your configured endpoint. Configure webhooks in your partner dashboard.
Detection Evidence
When Cerberus detects a cheat, it captures a structured evidence package for review. This data is stored on the Cerberus backend and accessible through your partner dashboard.
What is collected on detection
| Data | Scope | Description |
|---|---|---|
| Detection type | Always | Which detection layer triggered (KERNEL, AI, HW, NET) and the specific detection category (e.g., AIMBOT, INJECTION, DMA_READ) |
| Confidence score | Always | 0.0-1.0 float representing detection certainty. Auto-ban threshold: 0.95+ |
| Session snapshot | Always | Anonymized session metadata: game ID, session duration, region, SDK version |
| Hardware fingerprint | Layer 3 | Hashed device identifiers for ban evasion tracking. No PII — hardware IDs are one-way hashed |
| Memory region info | Kernel | Address range, permissions (RWX), and module association of suspicious memory regions. Game memory content is NOT captured |
| Behavioral profile | AI | Statistical summary: aim correction speed, reaction time distribution, shot-placement distribution against the player baseline |
| Device audit log | Layer 3 | List of enumerated PCIe devices and firmware verification results. Used to identify DMA boards |
| Network anomaly report | Layer 4 (NET) | Server-side traffic analysis summary: packet timing anomalies, impossible state transitions, and position desync indicators |
Where evidence is stored
Detection evidence is processed locally on the player's machine and only the structured metadata is sent to the Cerberus API over TLS 1.3. Raw memory dumps or input recordings are never transmitted. Partners can access evidence through:
- Partner Dashboard — visual timeline of detection events with evidence viewer
- Ban API —
GET /api/v2/bans/{id}/evidencereturns the full evidence package as JSON - Webhooks —
ban.createdevents include a summary; full evidence available via API
Event Types
| Event | Trigger | Description |
|---|---|---|
| ban.created | Auto-ban | Player banned with >95% confidence |
| ban.appealed | Player action | Ban appeal submitted |
| flag.created | Threshold | Player flagged (30-95% confidence), under enhanced monitoring |
| flag.escalated | Auto | Flag escalated to manual review after re-analysis |
| flag.cleared | Auto/Manual | Flag cleared — player confirmed clean |
| session.start | SDK call | Cerberus session started for a player |
| session.end | SDK call | Session ended cleanly |
| hw.anomaly | Layer 3 | Unrecognized or suspicious hardware detected |
Unreal Engine Integration
For Unreal Engine projects, use the Cerberus plugin instead of the raw SDK:
Unity Integration
FAQ
Does Cerberus run at boot?
No. The kernel driver loads only when your game launches and unloads when it exits. Cerberus has zero presence on the system outside of active game sessions.
What happens if a player is falsely banned?
Detections below the 95% confidence threshold are never auto-banned — they go to manual review. If a ban is appealed, our threat analyst team reviews the full session replay within 4 hours (Cerberus tier SLA). False positive rate in our current beta cohort is 0.14%.
Does Cerberus collect player data?
No PII is ever collected. Cerberus processes hardware IDs, input patterns, and memory state locally. Only detection events (ban/flag) with anonymized session metadata are sent to the API. Zero telemetry — we don't know what games your players play, how long they play, or anything else.
What kernel access does Cerberus need?
The driver requires kernel-mode access (ring-0) to monitor memory permissions, detect mapped drivers, and enumerate PCIe devices. The driver is EV code-signed and submitted for WHQL certification (pending). We plan to complete third-party security audits before public release.
Can I use Cerberus for singleplayer games?
Yes, but it's designed for competitive multiplayer. For singleplayer, you can use Layer 1 only (kernel integrity) at the free Argus tier to prevent save file tampering or achievement exploits.
What engines are supported?
Cerberus works with any Windows game that can link a C++ or C# library. We have first-class plugins for Unreal Engine 5.x and Unity 2022+. Custom engine integration takes 1-2 hours with the raw SDK.