battleye
Kernel driver plus service and game module coordination. Emphasizes handle protection, process monitoring, memory scanning, and visibility into injected code / runtime tampering. Used by PUBG, Rainbow
SKILL.mdskills/battleye/SKILL.md
GitHubBattlEye
Kernel driver plus service and game module coordination. Emphasizes handle protection, process monitoring, memory scanning, and visibility into injected code / runtime tampering. Used by PUBG, Rainbow Six Siege, DayZ, and others.
Research angles
Object callbacks and handle stripping, injected-module detection, pool/driver forensics, and comparison with boot-start models like [[vanguard]].
[[blindeye]] shows an offensive research angle: hook BE’s imported pool allocators and drop allocations for the kernel “report” path.
Thread-start heuristics (system threads whose start address is outside any loaded driver image) are reconstructed in tools such as [[system-thread-finder]], derived from BE’s thread-detection logic.
[[stealth-sytem-thread-finder-be]] (gmh5225) enumerates stealth system threads BE misses via PspCidTable walks, scheduler queue scans, and thread-list cross-reference—beyond standard API calls—for manually mapped driver threads.
User-mode prologue hooks (JMP / INT3 on WinAPI and game functions) are a common BE-style control surface; [[skiphook]] studies trampolines that skip the first instruction so those hooks are never hit while return-address checks still look legitimate.
Graphics Present integrity is another BE-linked lane: [[present-hook-detection]] recreates dummy-D3D11 swap-chain Present pointer + dxgi.dll prologue comparison against inline/vtable hooks used by overlay ESP.
User-mode shellcode injected into game processes is studied via [[be-shellcode]]: dump/disasm of BE detection modules covering system-thread scan, VEH enumeration, module walking, and signature-based integrity checks.
Runtime shellcode streamed from the BE server and executed in-process is intercepted pre-execution by [[battleye-shellcode-dumper]]: saves scanning-module payloads plus decryption keys for offline RE of BE’s dynamic module architecture.
[[be-shellcode-dump]] (gmh5225) dumps BE runtime shellcode scanning modules from protected game processes—intercepts streamed payloads before offline RE of detection signatures and scanning logic.
[[be-battleye-shellcode]] (gmh5225) reimplements recent BE user-mode shellcode as a DLL study scaffold: worker-thread scan stages (hidden system threads, KiUserExceptionDispatcher hook detection, module/function integrity, signature scan, thread scan) plus VEH-guarded Win32/CRT targets for shellcode-style control-flow recovery.
[[be-shellcode-tester]] (es3n1n) is a C++ sandbox that loads dumped BE scanning modules, emulates their expected runtime, and logs memory scans, hash checks, and detection routines—useful for measuring BE shellcode detection coverage without a live protected game.
VAS region enumeration for injected/shellcode and manual-mapped modules is reconstructed in [[battleye-region-walking]]: VirtualQuery walk plus BE-style filters on protection, size, MEM_PRIVATE/MEM_MAPPED, and address heuristics.
Title-specific client tooling such as [[arma3beclient]] (C# / PowerShell; Arma 3 / game:arma3) sits in the BattlEye Tool lane for modding and BE-protected client debugging.
Server-side RCON is covered by [[battleye-rust]]: Rust packet encode/checksum + UDP socket I/O for BattlEye remote-console listen/read/write (admin / protocol research).
Title-specific R6 external samples such as [[r6-external]] (C/C++; driver development; External tag) illustrate out-of-process / driver-backed research against BattlEye-protected Siege clients. [[r6s-external-v2]] (gmh5225; C++; kernel driver or handle elevation; ESP + aimbot without in-process injection; BattlEye UE4 external pattern study) adds a v2 external sample in the same Siege lane. Leaked R6 external ESP/aimbot source such as [[rainbow-six-siege-rs6-external-esp-aimbot-hack-cheat]] (gmh5225; WndProc-only input hooking to limit detectable hook surfaces) complements that lane with minimal user-mode input-path evasion study. R6 cheat source such as [[rainbow-6-siege-cheat]] (gmh5225; C/C++; rendering + hooking; cheat / game:r6) adds another user-mode hook/overlay sample in the BattlEye-protected Siege lane. R6 internal cheat source such as [[r6s-internal-cheat]] (gmh5225; C++; modding + overlays + memory analysis; cheat / game:r6) adds an in-process mod/overlay sample in the same lane. R6 external cheat dumper tooling such as [[r6-cheat-dumper]] (gmh5225; C/C++; driver development + rendering + animation; out-of-process cheat-structure extraction; cheat / game:r6 [External]) adds dump-focused external research beside runnable Siege externals. [[external-r6s-cheat]] (gmh5225; kernel driver + shared mapped memory section for external entity/position/render reads; ESP + aimbot without in-process injection) adds a shared-memory external communication pattern study in the Siege lane.
Service/install/launch emulation is studied via [[fakeeye]] (Hypercall): lightweight C++ BattlEye-style launcher emulator that reproduces launcher-side behavior for isolated lab anti-cheat research and compatibility testing; earlier mexploitui fork documents SCM-managed BEService, external config, and BE-style game process creation without the real AC stack.
Launch-path regression evidence such as [[r6-siege-battleye-launch-bug]] (brandenbailey23; Markdown issue report) documents a Rainbow Six Siege Y11S3 client exit during the BattlEye + Ubisoft Sentinel handshake on standard Ubisoft Connect/Steam paths while RainbowSixHelper.exe succeeds—Windows System events, launcher logs, BEService/BEDaisy telemetry, and byte-identical checksums rule out corrupt binaries; hypothesis centers on launch-path bootstrapping or server-side version negotiation rather than driver blocklists.
Historical service-layer bypass tradecraft is preserved in [[noeye]] (Schnocker): C++ runtime modules plus a dedicated Windows service and C# setup app for service installation, process interaction, and runtime control against older BE protection behavior.
Client-side protocol emulation is studied via [[be-emulator]] (gmh5225): simulates BE communication protocol, heartbeat responses, and module-loading interface so games run without active BE protection—useful for analyzing game↔BE integration and protocol RE.
Minimal in-process client-interface scaffolding is provided by [[beclient]] (LilPidgey; C++ Visual Studio PoC): initializes the BattlEye client DLL, defines game/AC data structures, registers callbacks, and calls exported run/command/exit handlers—useful for RE of how titles wire the BEClient DLL contract without a full emulator stack.
Handle-stripping bypass via periodic handle re-creation is implemented in [[battleye-handler-bypass]]: a KMDF driver that re-opens process handles before BE’s ~5-second cleanup cycle strips them, with IOCTL paths for usermode control.
[[badeye]] (gmh5225) studies a complementary handle lane: BE assumes surviving handles already grant needed access and uses them only to resolve EPROCESS before MmCopyVirtualMemory cross-process reads—C++ memory-analysis research on that trust gap.
BEDaisy APC instrumentation is studied via [[goodeye]]: a kernel callback runs in each thread where the BE driver registers an APC, exposing BE’s kernel APC inspection surface for RE.
[[bedaisy]] (Aki2k) is a C++ kernel interception PoC against BEDaisy.sys: image-load callbacks plus IAT hooking around MmGetSystemRoutineAddress to steer subsequent anti-cheat execution paths, with APC-related experimentation for bypass-surface and hardening research.
[[bedaisy-bypass]] targets BEDaisy.sys report delivery: suppress outbound detection reports to the BE service while preserving inbound response traffic—useful for studying the kernel-to-service report channel without server-side ban telemetry.
[[battleye-re]] (experienceds) is a defensive RE reference for BEDaisy.sys: PE layout, dynamic kernel API resolution, BattlEye device IOCTL dispatch, HAL table verification, anti-DMA behavior, custom VM obfuscation, and security-cookie derivation—JSON findings, address lists, disassembly, and section hex dumps for titles such as Enlisted.
[[bedaisy-reversal]] (dllcrt0) documents the full scope of BEDaisy kernel checks and reporting: integrity validation, callback enumeration, HAL table verification, manual-mapped driver detection, object handle protection, filesystem minifilter checks, physical memory scanning, CSRSS integrity validation, graphics component verification, and thread/image notification callbacks.
[[battleye-shellcode]] (dllcrt0) publishes decompiled BE user-mode shellcode modules for runtime integrity checks: AutoHotKey detection, swap-chain [[present-hook]] scanning, and stack-walking return-address validation—complementing dump/reimplement samples such as [[be-battleye-shellcode]] with readable scan-stage source.
[[battleye-decryption]] (dllcrt0) decrypts BattlEye's multi-layered encrypted communication packets between BEService and BEDaisy over named pipes—XOR-based generic packet decryption, hardware-information crypto, and second-stage key-derived routines for client↔driver protocol RE.
[[be-forcer-fortnite]] (gmh5225) targets Fortnite's BattlEye integration: forces or manipulates BE initialization to disable title-specific detection checks, enabling cheat injection or memory access normally blocked—offensive research on Fortnite-specific BE protection and bypass techniques.
User-mode-only injection against BE-protected processes is demonstrated by [[splendid-implanter]] (secret.club): a Ring-3 injector that abuses a flaw in BattlEye's user-mode component to achieve BE-compatible DLL injection without a kernel driver.
[[battleye-user-mode-bypass]] (HadockKali) is a C++ Visual Studio PoC for a historical user-mode BE bypass: an implanter plus sample DLL hooks CreateFileW and manipulates file checks so a payload masquerades as a trusted module, with example injection and exported hook callbacks—useful for studying previously vulnerable UM loading-path trust validation.
Instrumentation Callback–based BattlEye bypass research such as [[beservice-intcallbacks]] (R4YVEN; C++/assembly Visual Studio PoC; callback and symbol-handling techniques; exploratory BE service bypass experiment—not a polished end-user tool; anti-cheat bypass + Windows internals study) extends the user-mode BE evasion lane beside Ring3 hook samples such as [[hooking-via-instrumentation-callback]].
PUBG commercial P2C loader RE such as [[pubg-p2c-re]] (experienceds) documents injecting ESP into dwm.exe instead of TslGame.exe to avoid BattlEye process-targeted scans, and how Krafton's Zakynthos anti-cheat detects DWM vtable and code hooks—architecture diagrams, detection templates, and an anti-cheat comparison matrix for BE/kernel AC evasion study.
Server-side executable patching against BE-integrated titles is studied via [[dayz-server-battleye-remover]] (JonathanEke): C++ utility that pattern-scans and patches the DayZ server binary to disable specific BE checks, automating re-patch after executable updates for controlled anti-cheat bypass experimentation.
GTA V Enhanced BattlEye integration research such as [[akheartbeat-be]] (AkitaYui; external C++ tool; RPM/WPM + AOB resolution of world/script/session/BE flags; runtime patches neutralizing BE detection routines; documents user-mode BE client and BEDaisy kernel driver architecture) complements emulator and shellcode RE samples for Rockstar-title heartbeat/bypass study.
Related
[[easy-anti-cheat]] · [[vanguard]] · [[pubg-p2c-re]] · [[dayz-server-battleye-remover]] · [[akheartbeat-be]] · [[battleye-re]] · [[bedaisy-reversal]] · [[battleye-decryption]] · [[battleye-shellcode]] · [[blindeye]] · [[be-shellcode]] · [[be-battleye-shellcode]] · [[be-shellcode-dump]] · [[be-shellcode-tester]] · [[battleye-shellcode-dumper]] · [[battleye-region-walking]] · [[battleye-rust]] · [[battleye-handler-bypass]] · [[badeye]] · [[bedaisy]] · [[bedaisy-bypass]] · [[be-forcer-fortnite]] · [[be-emulator]] · [[beclient]] · [[beservice-intcallbacks]] · [[arma3beclient]] · [[r6-external]] · [[r6s-external-v2]] · [[external-r6s-cheat]] · [[r6-cheat-dumper]] · [[rainbow-6-siege-cheat]] · [[rainbow-six-siege-rs6-external-esp-aimbot-hack-cheat]] · [[r6s-internal-cheat]] · [[r6-internal-v3]] · [[r6-siege-battleye-launch-bug]] · [[fakeeye]] · [[noeye]] · [[goodeye]] · [[splendid-implanter]] · [[battleye-user-mode-bypass]] · [[system-thread-finder]] · [[stealth-sytem-thread-finder-be]] · [[skiphook]] · [[present-hook-detection]] · [[present-hook]] · [[libelevate]] · [[overviews/anti-cheat]] · [[kernel-callbacks]]