Technical

How Do Anti-Cheats Detect Virtual Machines?

Anti-cheats detect virtual machines through CPUID hypervisor bits, timing attacks against rdtsc/rdtscp instructions, MSR (Model Specific Register) inconsistencies, device enumeration (VirtIO/VMware/Hyper-V device IDs), SMBIOS strings revealing virtualization (VMware Inc, QEMU, innotek GmbH, Microsoft Corporation), and behavioral patterns (typing timing, mouse-event distributions inconsistent with native input). Most AAA anti-cheats block VM-based play entirely — Vanguard, EAC (in heavy-protection mode), and Ricochet all reject VM environments.

RawCheats Anti-Cheat Research Team — Anti-Cheat Research TeamUpdated May 12, 2026

VM detection is one of the older and most stable AC techniques. Cheaters historically wanted to run cheats inside a VM (sandboxed environment, easy snapshot/restore, cleaner HWID) but consumer ACs have invested in VM detection for over a decade, and the detection signal is strong.

CPUID hypervisor bits

The most direct check: CPUID leaf 1 has a "hypervisor present" bit that virtualization platforms set when running. Reading CPUID with EAX=1 and checking bit 31 of ECX reveals whether a hypervisor is intercepting CPU instructions. Hyper-V, VMware, VirtualBox, KVM, and most production hypervisors set this bit honestly. A modified hypervisor can hide it, but most consumer VM solutions don''t bother — and ACs trivially see the bit set.

CPUID leaf 0x40000000-0x40000005 returns vendor strings identifying the specific hypervisor: "Microsoft Hv" (Hyper-V), "VMwareVMware" (VMware), "VBoxVBoxVBox" (VirtualBox), "KVMKVMKVM" (KVM), etc. AC reads these strings; positive hit means VM environment.

Timing attacks

rdtsc (Read Time-Stamp Counter) reads the CPU''s cycle counter. Inside a VM with no hypervisor intervention, rdtsc behaves the same as on bare metal. Many hypervisors intercept rdtsc to virtualize time or hide VM exit overhead — this intervention is detectable by timing rdtsc loops and looking for cycle-count anomalies. A "real" CPU produces predictable cycle counts for known instruction sequences; a VM-intercepted CPU produces statistically different distributions.

rdtscp (Read Time-Stamp Counter Plus serializing) is the related instruction with an implicit CPU ID. Inconsistency between rdtsc and rdtscp behavior, or between either and CPU model expectations, is a VM signal.

MSR (Model Specific Register) reads

MSRs are CPU-specific registers exposing internal state. Bare-metal Intel and AMD CPUs return specific values for canonical MSRs. Hypervisors either intercept MSR reads (slow, detectable via timing) or pass them through (in which case the hypervisor''s own MSR state can leak). Reading MSRs like IA32_FEATURE_CONTROL, IA32_VMX_BASIC, and various hypervisor-specific MSRs reveals VM presence with high reliability.

Device enumeration

Virtual machines expose virtualized devices: VirtIO disk controllers, VMware paravirtualized network adapters, Hyper-V synthetic devices, virtual GPU implementations. Each has identifying PCI vendor:device IDs that ACs trivially enumerate. Seeing a "Red Hat VirtIO SCSI" or "VMware VMXNET3" adapter is a 100% VM signal.

SMBIOS strings

SMBIOS tables in firmware identify the manufacturer, product, and BIOS. VMs typically write identifying strings: "VMware, Inc." / "innotek GmbH" (VirtualBox) / "QEMU" / "Microsoft Corporation" (Hyper-V) / "Xen" / etc. Reading SMBIOS via GetSystemFirmwareTable and finding these strings is a free VM detect.

Behavioral patterns

A subtler check: human input has characteristic timing patterns (keyboard scancode arrival, mouse-event jitter, application focus events). VMs route inputs through the hypervisor, which adds latency and changes the timing fingerprint. A skilled AC can correlate input-timing distributions with "running in a VM" — though this is more of a confirmation signal than a primary detector.

What VM detection blocks

Vanguard, EAC in heavy-protection mode (Fortnite from Feb 2026), Ricochet, BattlEye on certain titles, and NeacSafe all reject sessions where they detect a VM. The implementation varies: some block at game launch (won''t start in VM), some block at matchmaking (won''t connect), some allow play but flag for review.

What VM detection misses or struggles with

  • Hypervisor-based cheats running underneath the VM AC — see What is hypervisor-based cheating. This is the inverse problem: the AC runs inside the VM, the cheat runs outside the VM.
  • Type-1 hypervisors with extensive concealment (a determined adversary modifying KVM or building a custom hypervisor to hide all VM signals)
  • Hyper-V with VBS / HVCI enabled on a Windows host — Microsoft''s own virtualization is part of Windows, technically present even without "running in a VM" in the consumer sense. ACs handle this by checking for Hyper-V features enabled rather than "running inside Hyper-V guest"

Why cheaters tried VMs

The original VM-cheating motivation: snapshot/restore for safe testing, isolated HWID environment for spoofing (the VM''s SMBIOS could be controlled), sandboxed cheat development. As consumer ACs got aggressive on VM detection, the practical value dropped — you can''t play a major AAA title in a VM in 2026 without manual hypervisor work most users won''t do.

Practical impact for RawCheats users

Don''t run RawCheats in a VM for AAA shooter play. The AC will reject the session, and the VM gains you nothing for cheating purposes — the cheat needs to interact with the game running on real hardware. VM use for cheat development is fine (sandboxing the dev environment), but the actual cheating session needs to be on bare metal. For HWID isolation, use Raw Spoofer which operates at the kernel-driver layer on real hardware.

Forward look

VM detection will keep improving (more rigorous CPUID/MSR validation, tighter timing analysis, deeper device-enumeration checks). The cheat-industry response of hypervisor-based cheating (running the AC inside a guest VM and the cheat in the host hypervisor) is technically achievable but expensive and brittle — see the hypervisor-cheating answer. For most cheaters, VMs are a closed door.

Sources

  1. Intel CPUID ReferenceIntel
  2. Hyper-V on WindowsMicrosoft Learn
  3. VMware WorkstationVMware

Related Questions

Can Anti-Cheats See What Is Running on My PC?

Yes — kernel-mode anti-cheats (EAC, BattlEye, Vanguard, NeacSafe, Ricochet) can see essentially every running process, every loaded driver, every kernel callback, and the SMBIOS/firmware-level identifiers of your hardware. They have full system visibility while loaded. User-mode anti-cheats (VAC, Warden, Defense Matrix) see less — only what user-mode APIs return — but still enumerate running processes, hash loaded modules, and report findings to servers. Yes, the AC can see your screenshot tool, your Discord, and your unrelated apps.

How Do Anti-Cheats Fingerprint Hardware?

Anti-cheats fingerprint hardware by collecting and hashing identifiers across multiple sources: SMBIOS (motherboard, BIOS, system UUID), NIC MAC addresses, disk serial numbers, GPU device IDs, CPU identifiers (CPUID brand string, microcode revision), TPM 2.0 endorsement key certificate, USB peripheral descriptors, and monitor EDID data. The combined fingerprint becomes the HWID — and the EK certificate plus motherboard SMBIOS are the most durable elements. Riot logged 2.3M+ HWID bans in 2025 alone.

What Is Hypervisor-Based Cheating?

Hypervisor-based cheating uses a thin Type-1 hypervisor (like a customized minimal version of KVM or a hand-rolled VT-x/AMD-V implementation) that loads before Windows, paravirtualizes the host OS, and operates at a higher privilege level than ring 0. The anti-cheat runs as a guest in the hypervisor's controlled environment, while the cheat operates from the hypervisor itself — invisible to ring-0 AC drivers. It is expensive, technically demanding, and structurally outside the consumer cheat market.

Why Do Anti-Cheats Need Kernel Access?

Anti-cheats need kernel access because cheat developers use kernel drivers. A user-mode anti-cheat cannot reliably detect a kernel-mode cheat — the kernel cheat operates at higher privilege than the user-mode AC and can hide from it. To level the playing field, modern AAA anti-cheats (EAC, BattlEye, Vanguard, NeacSafe, Ricochet) ship signed kernel drivers that run in ring 0 alongside Windows itself. This is the structural reason kernel anti-cheat became standard 2020-2026.

Raw Fortnite
Live purchase·5m ago
dezz from US bought Raw Fortnite