Event Pipeline
Sources
Kernel-originated records:
- target registration changes;
- target and direct-child process lifecycle;
- image loads for the active target;
- queue drop and callback health counters.
User-mode records:
- process identity;
- module inventory;
- executable regions outside loader-visible module ranges;
- module path and hash classification;
- scan budgets and completion cadence;
- driver connection and protocol failures.
Serialization
The collector writes UTF-8 JSON Lines. Every record contains a collector sequence, UTC timestamp, severity, stable event identifier, target PID, event-specific details, and a SHA-256 chain value.
chain[i] = SHA256(chain[i-1] || exact_record_body[i])
Forward complete lines without parsing and regenerating the JSON. Verify segments from oldest to newest:
python tools\verify_log.py `
anticheat-events.jsonl.2 `
anticheat-events.jsonl.1 `
anticheat-events.jsonl
Server processing
The receiver should:
- assign a server-side session identifier;
- reject incompatible schema versions;
- index by session and collector sequence;
- retain kernel sequence independently;
- detect missing or reordered records;
- anchor chain heads in append-only remote storage;
- alert on queue drops and missing scan cadence;
- keep client signals separate from enforcement decisions.
See the canonical event schema.