devirt.re
Create account
Menu

Anti-cheat driver auditing.

Document what an anti-cheat kernel driver monitors, collects and exposes, with evidence you can check, for software you are authorized to audit. Start with a free assessment.

Protected programSHA-256 recordedRecoverH_04H_12H_21H_33Readable outputvalidate_header()Differential checkOriginalRecoveredCoverage ledgerProvenRuntimeBoundedIllustrative example · no customer dataProtected program → readable logicAuthorized filevalidate_record()Original / recoveredCoverage ledgerProvenRuntimeBounded
Unknown does not have to mean protected. Start with the file and the question you need answered.

What is anti-cheat driver auditing?

Anti-cheat driver auditing is an authorized review of what an anti-cheat kernel driver does on a Windows machine: which system events it watches, which identifiers and data it reads, what other software can ask it to do and where it conflicts with other drivers. Devirt documents each behavior with the evidence behind it, for studios, anti-cheat developers, security researchers and privacy or compliance reviewers who own the driver or are authorized to analyze it.

The protection is the obstacle.
Understanding is the outcome.

What we support

  • Kernel-mode anti-cheat drivers and their user-mode services
  • Monitoring, identity surfaces and exposed interfaces
  • Security, privacy and compliance reporting

Family recognition is an intake decision, not a guarantee for every build. Custom behavior and multiple protection layers can require a separate assessment.

What changes in your workflow

A binary does not need virtualization to be in scope. Devirt can reverse ordinary compiled programs, map their behavior and interfaces, and surface risk indicators for your authorized review.

The delivery pairs readable output with a full ledger for the agreed scope. Proven, runtime-dependent, unresolved, and permanently bounded units remain distinguishable, including units that were never virtualized.

See how the checks work

What can a kernel-level anti-cheat driver access?

A kernel-level anti-cheat driver runs in kernel mode, the processor privilege level Windows itself uses, often called Ring 0, while games and ordinary programs run in user mode, Ring 3. Microsoft documents the difference: each user-mode application runs in isolation, but all kernel-mode code shares a single address space, so a kernel-mode driver is not isolated from other drivers or from the operating system.

From kernel mode, an anti-cheat driver can ask Windows to notify it when processes and threads start, when executable images load and when one program opens a handle to another, and it can inspect the memory and code of the game it protects. Which of these a particular driver uses, and when, depends on its code, not on the category it belongs to.

That position is why an anti-cheat driver matters beyond the game. Microsoft notes that a kernel-mode driver crash takes down the entire operating system, and in August 2022 Trend Micro documented a ransomware actor abusing a code-signed anti-cheat driver to stop endpoint protection processes. An audit records what one driver does, whatever your view of kernel-level anti-cheat.

Diagram: in user mode (Ring 3) a game, an anti-cheat service and other programs each run in their own address space; in kernel mode (Ring 0) the Windows kernel, the anti-cheat driver and other drivers share one address space, and the driver can register for notifications about process and thread starts, executable image loads and handles opened to other processes.
Illustration: where an anti-cheat driver runs and what Windows can notify it about. The components are generic, not a specific product.

Who commissions an anti-cheat driver audit

Devirt audits anti-cheat drivers for teams that own the driver or hold its owner's authorization to analyze it:

  • Game studios checking the anti-cheat they ship, whether built in-house or licensed from a vendor, before a launch, before an update or after a security report.
  • Anti-cheat developers reviewing the security and privacy behavior of their own driver before a release.
  • Security researchers working within a scope that the driver's owner has authorized.
  • Privacy and compliance teams that need a documented account of what the driver reads and keeps, for example as input to a data protection assessment.

What an anti-cheat driver audit documents

An anti-cheat driver audit turns the driver into a written account of its behavior. If the driver's code is obfuscated or virtualized to resist analysis, the free assessment first checks whether Devirt's deobfuscation and devirtualization paths cover that protection, so the audit reads the logic the driver runs rather than the protection around it.

Devirt documents six areas:

  • Architecture: the kernel-mode driver, its user-mode service and the module inside the game, and how the three communicate.
  • Monitoring: which system events the driver registers for and what it inspects when they occur.
  • Identity and data surfaces: which hardware identifiers and system details the driver reads, and where that data goes.
  • Exposed interfaces: what other programs on the machine can ask the driver to do, and whether it checks who is asking.
  • Load behavior: when the driver starts and stops, and whether it keeps running after the game closes.
  • Compatibility boundaries: which drivers, tools or system settings it blocks or conflicts with.
The six areas an anti-cheat driver audit documents (architecture, monitoring, identity and data, exposed interfaces, load behavior and compatibility) feeding an audit report with architecture, behavior, identity surfaces and an executive summary, plus a coverage ledger with four states.
Illustration: the six areas an anti-cheat driver audit documents and where they land in the report.

What you receive

An anti-cheat driver audit is delivered in Devirt's full reverse engineering report format: architecture, behavior, identity surfaces and an executive summary. The written offer can add the recovered code as an IDA database, annotated pseudocode, LLVM IR or API JSON, the other four of Devirt's five output formats.

Every delivery carries its coverage ledger, a proof summary and the remaining limits, so a studio, a researcher or a compliance reviewer can check each conclusion against its evidence.

How the evidence is reported

Eligible operations receive formal checks. Counterexamples and timeouts stay visible and are not counted as proof, so the report never presents unproven behavior as proven.

Devirt's coverage ledger records every unit of the audited driver in one of four states, so a reviewer can tell proven behavior from behavior that still depends on the machine it runs on:

  • Proven: verified within the declared model.
  • Runtime-dependent: a real input or environment still matters, for example behavior that appears only during a live game session.
  • Unresolved: the available evidence did not settle an in-scope unit.
  • Permanently bounded: an explicit analysis limit remains.
Four steps from authorization to delivery (authorization, free assessment, analysis, and checks and delivery) above a coverage ledger with four states: proven, runtime-dependent, unresolved and permanently bounded.
Illustration: from authorization to a report you can check. Segment sizes are not a result.

Authorized auditing only

Devirt audits anti-cheat drivers only for their owners and for reviewers the owner has authorized. You must own the driver or be authorized to analyze it, and if a vendor licenses the driver to you, the authorization has to cover it. Devirt can decline a job, or ask for the scope or the authorization to be clarified, before any analysis starts.

Devirt never helps build cheats, bypass or disable anti-cheat, evade bans or hide software from detection. It declines any request with that aim, including requests described as research.

See what lands on your desk.

One recovered program. Different ways to work with it. Inspect a teaching example, switch formats, and follow the link back to its evidence.

Example deliverableSynthetic data · not a customer file
Same logic. A different view.
VirtualizedInstructions through a VM
Protected logicTeaching VM / instruction listing
; Authored teaching VM, not vendor bytecode
00  LOAD32  r0, input.size
01  PUSH    r0
02  PUSH    0x10
03  UGE
04  STORE   p0
05  LOAD32  r1, input.magic
06  PUSH    r1
07  PUSH    0x44565254
08  EQ
09  LOAD    p0
10  AND
11  RET
DevirtualizedThe deliverable you can inspect
validate_recordC / sample function
#include <stdbool.h>
#include <stdint.h>
 
bool validate_record(uint32_t size, uint32_t magic) {
  const uint32_t header_size = 16u;
  const uint32_t expected_magic = 0x44565254u;
 
  if (size < header_size) {
    return false;
  }
 
  return magic == expected_magic;
}

Drag the divider to reveal the difference. Or choose a view above. Keyboard: arrow keys, Home and End.

In ordinary language

Check the declared size. Check the type marker. Accept only when both checks pass.

The evidence travels with the file.

Readable code explains the behavior. The ledger explains how far you can rely on it.

Download teaching source

Original teaching material, not customer output. The IDA view illustrates a database's contents; it is not a downloadable .i64. No measured proof or service benchmark is claimed by these examples.

Your build determines
the final scope.

Every anti-cheat driver audit starts with the free assessment: Devirt reviews the driver and the scope you are authorized for, then sends a written offer, and nothing is charged unless you accept it.

Start a free assessment

Anti-cheat driver auditing: questions and answers

Is kernel-level anti-cheat bad?

Kernel-level anti-cheat is a trade-off: its driver runs with the highest privilege on the machine, so a flaw or an overreach affects the whole system. A peer-reviewed study at the ARES 2024 conference examined four widespread kernel-level anti-cheat systems and found rootkit-like behavior in two of them. Whether a particular anti-cheat is acceptable depends on what its driver does, and an audit answers that with evidence.

Can Devirt help me get around an anti-cheat system?

No. Devirt does not build cheats or help anyone bypass or disable anti-cheat, evade bans or hide software from detection, and it turns those requests down. Its anti-cheat work is authorized auditing of what a driver does, and nothing else.

Can a studio audit an anti-cheat driver it licenses from a vendor?

Yes, when the authorization covers the driver. A studio that licenses anti-cheat from a vendor should confirm that its agreement, or the vendor's written permission, allows the analysis, and Devirt may ask to see the scope and the authorization before it starts.

What if part of the driver cannot be analyzed?

Devirt reports it. Units that cannot be proven stay in the ledger as runtime-dependent, unresolved or permanently bounded; they are not hidden. The free assessment estimates coverage before any paid work, and any revised scope and price need your approval.

Is the driver we send kept confidential?

Yes. Analysis runs in isolation, files are not shared between customers, uploads are not used for training, and your file is used only for the work you requested. Confidentiality, EU requirements and exclusivity can be agreed before transfer, and released output is retained for 72 hours by default or 30 days on Team.

Your binary stays your business.

Isolated analysis. No sharing between customers. No training on your upload. Your file is used only for the work you requested.

Read the data-handling policy
Input

Your uploaded file

Isolated processing

In scope
Output

Your result files

Not yet released

In scope
Audit

Processing record

Recording the work

In scope
Different data. Different clocks.

Input deletion follows delivery. This timeline shows the default 72-hour output window. Team outputs are kept for 30 days. Audit records have a separate 90-day window.

Policy illustration, not a live deletion certificate. Deletion is confirmed from provider receipts. Assessment inputs, unpaid jobs, and account/billing records have their own rules in the policy.

What do you need to understand?

Start in your account. If your upload needs manual work, we review it and email you a written scope and quote before paid work begins.

Create your workspace

Create an account, verify your email and upload your file. We review custom work and email your scope and quote.

Start a free assessment

Find the right plan