Product/Anti tamper
Anti tamper for Quest games
Catch modded and cracked copies of your Quest game and tell your staff, with buttons to kick or ban. Comes with paid plans.
Unity
Catches mod menus, injected code, memory editors and rooted headsets, and tells real copies of your game from cracked ones.
Your own checks
If your game spots something impossible, like a crazy score, it can report it through EzAdmin too.
What it checks for
Plus Labs
Add EzAdminAntiCheat to your EzAdmin object (the setup wizard does this) and turn it on in Labs.
| Check | What it catches |
|---|---|
| Mod loaders | MelonLoader, BepInEx, UnityExplorer and similar, found by their code inside the game |
| Injected libraries | Any library loaded from outside the game or straight from memory |
| Patched game code | The game's own compiled code changed in memory, checked against the file on disk at start and every minute after, which is how hooks and mod menus change what the game does |
| Anti tamper switched off | Every heartbeat the game has to answer a new challenge from EzAdmin that only a running anti tamper can answer. A copy where it was removed, disabled or frozen mid game is reported, and kicked if Anti tamper required is on |
| Debuggers | A debugger attached to a release build, and on Android anything attached with ptrace, which memory editors like GameGuardian use |
| Memory editing | A value you keep in an EzSecureInt, EzSecureFloat or EzSecureLong changed in memory, by Cheat Engine or GameGuardian |
| Rooted devices | su, Magisk, KernelSU, APatch and test key builds |
| Hooking tools | Frida (its server and ports, an injected agent, and Frida Gadget baked into a repacked APK, found by its libraries, thread names and pipes), Xposed, LSPosed, EdXposed, Riru, Zygisk modules and Substrate |
| Modified copies | A copy of your game that is not one you built, checked against your signing certificate, and an APK repacked as debuggable |
| App cloners | The game running inside a "dual app" or virtual space app |
| Sideloaded copies Optional | A copy not installed by a store you list |
On consoles the platform itself signs and locks the game, so the memory checks are the ones that matter there. One glitch never accuses anyone: each check needs a sustained signal before it reports. By default an injection tool (a mod loader, injected code, a hooking tool, a debugger or a modified copy) also closes the game once the report is sent; rooted devices are only reported. With ban waves on, the game stays open instead, so the cheater learns nothing. Android checks repeat every 30 seconds, off the main thread, so a tool attached later is still found without costing a frame.
Anti tamper for standalone VR
Studio For Quest games. Meta checks every player's headset and copy of the game before they can join.
- Meta hardware checks. Meta confirms the copy is the unmodified one from the Meta Store and that the headset is locked and untouched. A cracked APK or an unlocked headset cannot answer for itself.
- Blocked on launch. Rooted, unlocked, cracked and banned headsets can't get past the start screen.
- Headset bans. A ban can stick to the headset itself through Meta, so a new account on the same headset does not get back in.
- New accounts on a banned headset. Even without a headset ban, a new account on a headset Meta has seen a banned player use is reported as ban evasion.
- Four checks every session. The player, the headset, the copy and what happened while it ran. Anything off waits in a review queue, riskiest first, with Kick, Timeout 24h, Ban and Device ban.
- Code compared across players. Every copy reports a fingerprint of its own code. A player whose code differs from everyone else on the same build stands out.
- Cannot be switched off. The game answers a new challenge from EzAdmin every heartbeat. Removing or freezing the anti tamper is caught within about 90 seconds.
Meta checks need the Meta Platform SDK in your game (EzAdmin turns them on by itself when it is there) and your Meta app access token on the dashboard. Headset bans also need Device Ban approved in Meta's Data Use Checkup.
Build fingerprints
Every copy of your game has a fingerprint. Mark your real ones as official, and spot cracked copies.
- Seeing every copy, and marking them, is on every paid plan
- Studio Blocked copies are closed as soon as they open, the same as a kick
- Studio Only official copies, when you turn it on, keeps out everything you have not marked yet
Manual or automatic actions
Every report goes to your staff with Kick, Ban and Ignore buttons.
Studio Or let EzAdmin kick or ban by itself after a number of reports you choose.
- Studio Ban waves. Hold each automatic ban for a random time, up to 6 hours, a day or 3 days. The game stays open after a detection, so a cheater cannot tell which hack got caught or test a new one against it. The dashboard lists everyone waiting, and you can take someone out or ban them all now.
- Plus Ban evasion. A banned player who links a new game account to the same Discord account is reported, with who they were and why they were banned. On Studio, EzAdmin can kick or ban them by itself.
Protected values (EzSecureInt and friends)
Store health, ammo or scores in EzSecureInt, EzSecureFloat or EzSecureLong so cheat tools can't find and change them.
using EzAdmin.Client;
public class Player : MonoBehaviour
{
EzSecureInt health = 100;
EzSecureFloat speed = 4.5f;
void TakeDamage(int amount)
{
health -= amount;
if (health <= 0) Die();
}
}
What it doesn't do
No anticheat catches everything. Here's what to expect.
It's not a kernel driver
It runs inside your game. A determined cheater can still get around it, but it stops most of them.
Your server still matters
Important things like money and damage should be checked on your server. Anti tamper tells you who's trying to cheat.
It doesn't snoop
It only looks at your game. Never at players' files, and no screenshots.
What a report contains, and how long it is kept, is in the Privacy Policy. Tell your players you use anti tamper in your own privacy notice.
Anti tamper questions
Will it ban innocent players?
Not by itself unless you ask it to. Every check needs a sustained signal before it reports, and a report goes to your staff with Kick, Ban and Ignore. Automatic kicks and bans are a Studio setting you switch on, with the number of reports it takes.
Does it slow the game down?
No noticeable amount. Scans run on a background thread every few seconds, never on the frame, and the check of the game's own code reads it about once a minute in small pieces. The clock check is a small sum once a second.
Can a cheater remove it?
Anything on a player's device can be patched by someone determined. That is why the important parts live elsewhere: the game has to answer a new challenge from EzAdmin every heartbeat, so removing the anti tamper is caught; on Quest, Meta's servers vouch for the copy and headset; automatic actions are set on the dashboard; and currency and purchases should be decided on a server or in CloudScript.
What does a report send to EzAdmin?
The player's game id and name, which check fired, a short detail such as the name of the tool found, the platform and version, and the fingerprint of that copy. Never files, screenshots or a list of other apps.
Does it stop Frida and other APK injectors?
It looks for them several ways: Frida's server and ports, its injected agent and Frida Gadget baked into a repacked APK, its thread names and pipes, Xposed and LSPosed, anything attached with ptrace, a signed again or debuggable APK, and app cloners. By default the game closes after it reports one. A determined attacker can still hide from any check that runs on their own device, so keep anything that matters on your server.
Try it on your server
It's free to start. No card needed, and you can remove it any time.