Post

A summative of EAC EOS cheat detection

A synthesis of public EAC reverse-engineering notes covering kernel monitoring, injection detection, memory integrity, driver validation, and platform inspection.

A summative of EAC EOS cheat detection

I’ve been collecting notes from several Easy Anti-Cheat (EAC) reverse-engineering repositories, along with additional research notes covering kernel callbacks, memory scanning, driver validation, and hardware-level inspection. I wanted to bring the findings together into one reference rather than leave them scattered across different write-ups.

The main takeaway is that EAC detection isn’t limited to identifying a cheat executable or checking whether a driver is signed. The research describes several layers of inspection, ranging from process handles and memory regions to kernel integrity, loaded modules, debugging state, and platform configuration. Some of the implementation details below come from community notes and have not been independently verified against a current EAC EOS build.

1. Overview of detection surfaces

The following table summarizes the main areas covered by the research.

Detection surfaceAreas of interestGeneral purpose
Process inspectionProcesses, threads, handles, access rightsIdentify suspicious interactions with protected processes
Injection detectionModule loading, executable memory, thread activityInvestigate unexpected code execution
Kernel integrityLoaded drivers, executable mappings, hooksIdentify unexpected kernel code or modifications
Driver validationSignatures, certificate chains, known vulnerable driversAssess driver trust and integrity
Memory scanningPage contents, PE structures, signaturesDetect known patterns or unexpected modifications
Hypervisor inspectionCPU features, timing, virtualization stateInvestigate inconsistencies in the execution environment
DMA and firmwarePCI devices, ACPI, SMBIOS, boot measurementsExamine platform-level integrity
Anti-debuggingDebugger state, exception behavior, timingIdentify debugging or instrumentation environments
Communication interfacesDevice objects, handles, shared resourcesUnderstand how components communicate across privilege boundaries

These categories overlap. An unusual memory region, for example, may be relevant to both injection analysis and memory integrity, while a driver can be examined through module enumeration and signature validation.

2. Injection and process manipulation

The supplied notes describe several common injection techniques and the kinds of evidence that may be associated with them.

TechniqueRelevant detection surfaceNotes
LoadLibrary injectionImage-load notifications and module inspectionConventionally loaded images provide module information that can be inspected
Manual mappingMemory mappings and execution provenanceMay not have the same module bookkeeping as a conventional image
Reflective DLL loadingMemory contents and PE structure analysisImage-like content can exist without ordinary module registration
APC injectionThread activity and execution contextRelevant behavior may occur during asynchronous procedure call delivery
Thread hijackingThread context and control flowUnexpected changes to thread execution can be investigated
Process hollowingProcess creation and image integrityDifferences between expected and observed process images are relevant
Module stompingImage contents and section integrityIn-memory modifications may differ from the original image
DLL sideloadingImage loading and module provenanceA legitimate loading mechanism can still introduce an unexpected dependency
Shellcode executionExecutable memory and stack inspectionCode execution may not correspond to a conventional loaded module
Section-based injectionSection mappings and process memoryShared or mapped sections can introduce executable content
Threadless injection techniquesMemory and execution behaviorDetection depends on the implementation and the evidence available to the monitor

The detection labels in the original notes should not be interpreted as guarantees. Whether a technique is detected can depend on the implementation, the game, the EAC version, and the surrounding behavior.

The important distinction is between identifying a technique by name and identifying the artifacts it produces.

3. Kernel drivers and integrity checks

Kernel-level components introduce additional concerns because they operate with privileges unavailable to ordinary user-mode applications.

The supplied notes discuss unsigned and test-signed drivers, known vulnerable drivers, manually mapped code, revoked certificates, and build artifacts that may reveal development environments.

Driver characteristicRelevant inspection
Signature statusCode Integrity and certificate validation
Test-signing configurationBoot configuration and system integrity state
Known vulnerable driversDriver identity and known-driver reputation data
Revoked certificatesCertificate-chain and revocation checks
Manual mappingModule registration and executable memory characteristics
Unexpected kernel modificationsCode integrity and hook inspection
Development artifactsModule metadata and other identifying information

A valid signature does not establish that a driver is safe. Signed but vulnerable drivers can still provide dangerous capabilities, which is why vulnerable-driver blocklists and other integrity mechanisms matter.

Likewise, a missing module-list entry is not proof that kernel code is invisible. Module enumeration is only one source of information about executable memory.

The research also mentions image-verification callbacks and Code Integrity-related routines. Their exact behavior and relationship to EAC should be checked against the relevant Windows and EAC versions before drawing implementation-specific conclusions.

4. Kernel callbacks and monitored operations

One of the more useful parts of the supplied material is its inventory of Windows kernel interfaces relevant to anti-cheat monitoring.

These interfaces can provide visibility into process activity, thread creation, image loading, handle access, and filesystem operations.

Interface or mechanismGeneral purposeRelevance to integrity monitoring
ObRegisterCallbacksRegister object callbacks for supported process and thread operationsObserve or mediate certain handle operations
PsSetCreateProcessNotifyRoutineExRegister process creation and exit notificationsTrack process lifecycle events
PsSetCreateThreadNotifyRoutineRegister thread creation notificationsTrack thread lifecycle events
PsSetLoadImageNotifyRoutineRegister image-load notificationsObserve image mapping events
SeRegisterImageVerificationCallbackImage-verification-related functionalityRelevant to investigating driver verification behavior
FltRegisterFilterRegister a filesystem minifilterObserve filesystem activity within the filter’s scope
KeRegisterNmiCallbackRegister a non-maskable interrupt callbackRelevant to specialized low-level diagnostics and monitoring

These mechanisms have different scopes and contracts. They do not automatically provide unrestricted visibility into every operation, and registration alone does not establish what a particular EAC version records or how it uses the resulting information.

Kernel routines used during inspection

The supplied notes also identify several routines associated with process lookup, memory access, stack inspection, and system information queries.

Routine or familyGeneral purpose
PsLookupProcessByProcessIdResolve a process identifier to a process object
PsLookupThreadByThreadIdResolve a thread identifier to a thread object
MmCopyVirtualMemorySupport memory-copy operations involving process address spaces
MmCopyMemoryCopy data from supported virtual or physical memory sources
RtlWalkFrameChainCapture stack-frame information
RtlLookupFunctionEntryLocate function-table information used for unwinding
NtQuerySystemInformationRetrieve supported classes of system information
PsGetProcessImageFileNameRetrieve a process image name through a kernel routine

These are Windows interfaces and routines, not proof of EAC-specific usage by themselves. Establishing that EAC invokes a particular routine, uses a particular information class, or calls it at a specific frequency requires evidence from the analyzed build.

5. Memory scanning and image integrity

The research notes describe multiple approaches to examining memory. These methods answer different questions and should not be treated as interchangeable.

MethodWhat it examines
Page-content hashingWhether memory contents differ from expected data
Byte-pattern scanningWhether known signatures occur in a memory region
PE header comparisonWhether in-memory image metadata differs from an expected image
Section integrity checksWhether image sections contain unexpected modifications
Section-permission analysisWhether memory protections are consistent with the expected layout
Import and export validationWhether resolved addresses and image metadata are consistent
Marker-bounded integrity checksWhether a defined region matches an expected integrity value
Kernel code integrityWhether important executable regions have been modified

The notes also mention SIMD-based scanning and hardware-assisted integrity checks. These are implementation details whose exact use, scope, and performance characteristics need to be established from the relevant code or binary.

Memory scanning has inherent limitations. A hash mismatch can indicate a modification without explaining why it occurred. A signature match can identify a known pattern without establishing the intent of the program containing it. Legitimate updates, relocations, and runtime modifications also need to be accounted for.

6. Hypervisors, DMA, and firmware

Another notable aspect of the supplied research is its focus on the platform below and around Windows itself.

Hypervisor and virtualization inspection

The notes describe checks involving CPUID, model-specific registers (MSRs), timing measurements, and virtualization-related state.

AreaGeneral inspection goal
CPUID featuresExamine reported processor and virtualization capabilities
Hypervisor vendor informationInspect virtualization-related identification data
Feature consistencyCompare related processor feature reports
MSR stateInvestigate selected processor-control and system-call state
Timing measurementsLook for unexpected differences in execution timing
Hypervisor binariesCompare expected files with observed integrity information
VBS and HVCIExamine virtualization-based security configuration

Timing and feature checks are not definitive on their own. Hardware differences, firmware configuration, virtualization products, and system load can all affect observations. A particular CPUID value or timing result should not automatically be interpreted as proof of cheating.

DMA and firmware inspection

Direct Memory Access (DMA) devices and firmware provide another source of platform information.

AreaPotential integrity concern
PCI device enumerationUnexpected devices or device configurations
PCI configuration spaceDevice identity and configuration consistency
DMA protectionWhether platform protections are enabled and configured as expected
ACPI tablesFirmware-provided platform descriptions
SMBIOS dataFirmware-reported system information
Secure BootIntegrity of the boot chain
TPM measurementsRecorded measurements of relevant boot components
Kernel image integrityDifferences between expected and observed system-image contents

The original notes include specific claims about FPGA-based DMA hardware, firmware table checks, boot measurements, and hypervisor artifacts. Those details should be considered hypotheses until verified against a specific EAC build and platform.

7. Anti-debugging and tool detection

The supplied material also identifies debugger state, exception behavior, timing, process names, and build artifacts as possible inspection areas.

AreaGeneral approach
Debugger stateInspect operating-system debugging indicators
Exception behaviorExamine how execution responds to debugging-related exceptions
TimingCompare execution timing under controlled conditions
Process identificationIdentify known development or debugging tools
Module inspectionExamine loaded components and their provenance
Build artifactsLook for metadata associated with development environments

The original notes mention tools such as Cheat Engine, x64dbg, ReClass.NET, Process Hacker, System Informer, IDA Pro, and WinDbg.

The presence of a process name is not equivalent to proof of malicious activity. These tools have legitimate uses, and a robust interpretation must distinguish tool identification from evidence of unauthorized manipulation.

8. Communication and monitoring frequency

The notes describe several classes of communication objects, including device objects, named sections, pipes, and shared-memory arrangements. They also discuss recurring inspections and callback-driven monitoring.

Communication objects can expose useful information about how components interact, but the visibility of any particular object depends on its type, ownership, access rights, and the inspection mechanism involved.

The supplied notes also contain specific numerical claims about callback sampling, process and thread scan counts, module-list passes, and timing checks. I have not reproduced those figures as established facts because their validity depends on the underlying build and the methodology used to obtain them.

A more useful distinction is between event-driven and periodic inspection:

Inspection modelGeneral characteristic
Event-driven callbacksReact to supported events such as process creation, image loading, or handle operations
Periodic scanningRevisit selected system state at intervals
Integrity comparisonsCompare observed state with an expected representation
Platform queriesCollect information about devices, firmware, or system configuration
Behavioral analysisInterpret events and state changes in context

These models can complement one another. Event notifications provide information about specific transitions, while periodic inspection can reveal state that is not adequately explained by a single event.

9. Sources and limitations

This write-up consolidates the supplied notes with general Windows kernel concepts. The source repositories are useful starting points, but the detailed claims should not be assumed to describe every current EAC EOS release.

The specific detection labels, API inventories, scan frequencies, and implementation details in the collected notes have not all been independently confirmed. Public reverse engineering can reveal useful behavior, but a claim about a particular callback, hash, signature, or detection decision needs supporting evidence from the relevant version.

10. What remains to be verified

The main unanswered question is how these different sources of information are combined into an actual detection decision. Identifying a callback or a memory scanner does not establish its exact role, and observing a system query does not prove that it independently triggers a detection.

The next step is to compare the claims against the relevant binaries and documented Windows behavior, record which findings are reproducible, and keep version-specific observations separate from assumptions. That should make this a more useful reference for future EAC research without treating community notes as a definitive specification.

This post is licensed under CC BY 4.0 by the author.