TL;DR
Bốn anti-cheat lớn nhất hiện nay — EasyAntiCheat (Fortnite, Apex), BattlEye (PUBG, Tarkov), Vanguard (Valorant, LoL), RICOCHET (Call of Duty) — đều cài driver chạy ở Ring 0, mức đặc quyền cao nhất của Windows, ngang với code Microsoft. Cài Vanguard nghĩa là Riot có cùng cấp độ trust với chính kernel của bạn. Lý do: cheat hiện đại cũng chạy Ring 0 (custom driver, hypervisor, DMA hardware) — anti-cheat ở user mode không thấy được. Bài này mổ xẻ kiến trúc 3 lớp, các kernel callback bị tận dụng, kỹ thuật scan memory, và tại sao đây vừa là vũ khí tốt nhất vừa là rủi ro bảo mật lớn nhất.
3 lớp kiến trúc của một kernel anti-cheat
Mọi kernel anti-cheat hiện đại đều dùng cùng một mô hình:
- Kernel driver (Ring 0) — đăng ký callback, intercept syscall, scan memory. Lớp duy nhất có thực quyền.
- Usermode service (SYSTEM) — cầu IOCTL nối với driver, lo network/telemetry và enforce ban.
- DLL inject vào game (Ring 3) — check trong process, là endpoint cho protection riêng của game.
Cheat ngày nay không còn là DLL inject vớ vẩn. Chúng dùng PCIe DMA đọc thẳng physical memory mà CPU không biết. Chúng dùng hypervisor chạy bên dưới OS. Chúng manipulate page table để code biến mất. Anti-cheat ở Ring 3 "giống bảo vệ giữ tòa nhà trong khi kẻ trộm đào hầm bên dưới".
Vũ khí kỹ thuật trong tay anti-cheat
Kernel callbacks — API Windows tạo ra cho security product, AC dùng tất:
ObRegisterCallbacks— stripPROCESS_VM_READ/WRITEkhỏi handle khi process ngoài gọiOpenProcessvào game.ReadProcessMemorytrả vềACCESS_DENIED.PsSetCreateProcessNotifyRoutineEx— fire khi mọi process được tạo. AC có thể setCreateInfo->CreationStatus= fail để chặn launcher cheat ngay từ trong trứng.PsSetCreateThreadNotifyRoutine— flag thread có start address nằm ngoài mọi loaded module (= shellcode hoặc manually-mapped PE).PsSetLoadImageNotifyRoutine— scan mọi DLL/EXE map vào process trước khi entry point chạy.CmRegisterCallbackEx+ minifilter driver — monitor registry và file system.
Memory scanning — đào sâu hơn cả Task Manager:
- VAD tree walk — đọc thẳng MMVAD trong kernel. Khác với module list trong PEB (cheat sửa được), VAD là kernel struct usermode không tay vào nổi. Tìm vùng
EXECUTE_READWRITEprivate không có file backing → injected code. - Hash định kỳ
.textsection — dùngKeStackAttachProcessđể đọc memory game, so hash với baseline khi khởi động. - Manually-mapped detection — tìm magic
MZ/PE\0\0ở vùng memory không có entry trongInLoadOrderModuleList. - Big Pool table (
PoolBigPageTable) — kernel allocation > ~4KB không thuộc driver nào đã load = manually-mapped cheat driver.
Hook detection — quét 16-32 byte đầu mỗi function: 0xE9 (JMP rel32), 0xFF 0x25 (JMP qua memory), 0x48 0xB8 ... 0xFF 0xE0 (mov rax,imm64; jmp rax), 0xCC (INT3). IAT thì so address resolve với on-disk export. SSDT về cơ bản đã chết từ khi PatchGuard ra (sửa SSDT trên Windows 64-bit gây bug check 0x109 CRITICAL_STRUCTURE_CORRUPTION).
Anti-debug — RDTSC timing (single-stepping debugger thêm hàng nghìn cycle/instruction), đọc DR0-DR7 tìm hardware breakpoint, CPUID leaf 0x40000000 tìm hypervisor vendor (VMwareVMware, VBoxVBoxVBox), check KdDebuggerEnabled trong kernel, và phát hiện thread cheat dùng ThreadHideFromDebugger để giấu mình.
So sánh Big 4: EAC vs BattlEye vs Vanguard vs RICOCHET
| System | Driver | Loading | Bans | Bypass |
|---|---|---|---|---|
| EAC (Epic) | EasyAntiCheat.sys | demand-start (game launch) | chia sẻ toàn bộ EAC titles | Moderate |
| BattlEye | BEDaisy.sys | demand-start | per-publisher | Moderate-Hard |
| RICOCHET (Activision) | kernel driver | chỉ on khi CoD/Warzone chạy | shadow ban 7-14 ngày, nerf damage | Hard |
| Vanguard (Riot) | vgk.sys | boot-start — load trước cả OS init | HWID 12+ vector (TPM, Secure Boot, UEFI) | Very Hard |
Vanguard khác biệt vì chain-of-trust. Paul Chamberlain — kỹ sư trưởng Vanguard — giải thích: nếu cheat driver load trước anti-cheat, cheat có thể giấu mình hoàn toàn. Boot-start tạo "known-good baseline" trước khi bất kỳ cheat nào kịp load. Cùng nguyên lý với Secure Boot và TPM attestation.
Anti-cheat bắt được gì, không bắt được gì
Bắt được: reflective DLL injection, manual mapping, BYOVD (Bring Your Own Vulnerable Driver — driver MSI/Gigabyte/ASUS có IOCTL handler dangerous bị abuse), aimbot (vi phạm Fitts' Law, snap thẳng tuyến tính thay vì S-curve có overshoot và micro-correction), triggerbot (reaction time < 150ms, dưới sàn sinh lý của con người), hypervisor cheat.
Không bắt được:
- DMA cheats — FPGA Xilinx cắm vào PCIe đọc physical memory qua TLP, không dính dáng CPU. Máy game hoàn toàn sạch về phần mềm. Cheat logic chạy trên máy thứ hai.
- AI aimbot HID — máy thứ hai capture màn hình, model computer vision tìm target, gửi mouse movement qua USB HID. Kernel game thấy y hệt người thật cầm chuột.
- Firmware cheat — code nhúng trong firmware SSD/GPU/NIC. Sống sót qua reinstall OS. Hiện không có defense rộng rãi.
Cái giá của Ring 0: rootkit, BSOD và Tencent
Một paper ACM 2024 (If It Looks Like a Rootkit and Deceives Like a Rootkit) chính thức xếp Vanguard và FACEIT AC vào nhóm "rootkit-like" — boot-time exec, custom memory management giấu process/thread, anti-VM mạnh đến mức bắt user tắt Hyper-V (vô hiệu hoá WSL-2).
Tiền lệ thật: vụ mhyprot2.sys 2022. Trend Micro phát hiện ransomware crew load driver anti-cheat của Genshin Impact lên các máy chưa từng cài Genshin. Driver được miHoYo ký hợp lệ → Windows tin tuyệt đối. Attacker dùng quyền kernel để kill EDR rồi deploy ransomware. Kernel-level cheating defense hôm nay = malware capability ngày mai nếu vendor có lỗ hổng.
Bất ổn hệ thống: Khi Vanguard ra mắt, BSOD lan khắp Reddit, conflict với phần mềm ảo hoá, broke accessibility tool, tụt FPS. Driver Ring 0 lỗi không chỉ crash app — nó lôi cả OS đi theo, có thể corrupt trước khi reboot.
Capability privacy là thật: Ring 0 driver có khả năng enumerate mọi process, đọc mọi file, intercept network traffic, log keystroke. Vendor có làm hay không là chuyện EULA và "corporate goodwill". Đáng chú ý: Riot Games thuộc 100% sở hữu Tencent. Epic Games (EAC) có Tencent là cổ đông thiểu số lớn nhất.
IOMMU gap: IOMMU (Intel VT-d, AMD-Vi) về lý thuyết chặn DMA trái phép. Nhưng nhiều mobo gaming xuất xưởng với IOMMU tắt mặc định, và firmware FPGA tinh vi có thể mimic device ID của USB controller hợp lệ để "thừa kế" IOMMU mapping của driver thật.
Hướng đi tiếp theo: attestation, ML và cloud gaming
Cuộc đua tiến hoá theo trình tự: usermode cheat → kernel AC → BYOVD → driver blocklist → hypervisor detect → DMA/IOMMU → firmware. Firmware cheat là frontier hiện tại — không có defense kernel nào nhìn vào được.
Hardware attestation là hướng có triển vọng nhất về mặt kỹ thuật. Fortnite của Epic đã yêu cầu Secure Boot + TPM 2.0. TPM PCR-based measured boot cho phép server xác minh bằng chữ ký mật mã rằng client đã boot trong trạng thái known-good. Vanguard đã check 12+ hardware vector bao gồm TPM data và UEFI firmware info.
Server-side ML không còn là tuỳ chọn. Paper Collins et al. (CheckMATE 2024) đạt 99.2% accuracy phát hiện triggerbot bằng CNN. AntiCheatPT (2025) dùng transformer với cửa sổ 256-tick × 44 feature đạt 89.17% phân biệt aimbot vs người chơi thật. Graph neural network bắt collusion (wallhack qua voice chat) bằng cách model graph tương tác player.
Cloud gaming = anti-cheat tối thượng cho một số thể loại: game chạy trong data center, client chỉ stream video, không có code/memory để hack. Surface attack co lại còn input và phân tích video.
Trends 2026-2027 từ phân tích industry: EAC/BattlEye nhiều khả năng theo Vanguard chuyển sang boot-start; HW fingerprint mở rộng (TPM, Secure Boot, UEFI); và đang có thảo luận ngầm về cross-publisher ban sharing — một ban có thể chặn bạn khỏi mọi game lớn.
Câu hỏi cuối: bạn đang chạy bao nhiêu kernel driver Ring 0 từ các công ty game ngay lúc này? Và bạn có biết driver nào trong số đó được audit độc lập?
Nguồn: Adrian's Security Research, ACM 2024 paper, TATEWARE 2026 comparison, secret.club.