- Android Anti-Cheat
- iOS Anti-Cheat
- PC Anti-Cheat
- Android Hardening
- iOS Hardening
- PC Hardening
- Cheat Tool Analysis
- Game Vulnerability Discovery
- Economy Risk Management
- Content Moderation
After ACE SDK is integrated into the game, the following 2 requirements must be fulfill to enable the game to have actual anti-cheat ability:
Before hardening, please make sure that the target EXE (i.e. the EXE that integrates ACE SDK) has enabled the administrator privilege requiring, which can be enabled by adding manifest configuration or setting linker parameters (only C++) when generating EXE.
Upon the official release of the client, utilize the shelling tool to obtain the release package. This package will include the AntiCheatExpert directory for release, which should be distributed alongside the exe and dll files generated after shelling.
Note: Do not distribute the AntiCheatExpert directory found in the SDK package, nor the ACEChecker directory which is intended for testing.
Upon the first launch of the client with the integrated ACE SDK, the ACE components will be automatically installed onto the system partition, alongside the Windows services and drivers. (A client without hardening does not install ACE components)
The following descriptions detail the files and directories that ACE installs onto the system partition (assuming the C drive is the system partition):
| Directory/Files | Function |
|---|---|
| C:\Program Files\AntiCheatExpert | ACE primary installation path |
| C:\Windows\System32\drivers\ACE-*.sys | ACE driver files |
| C:\ProgramData\AntiCheatExpert | ACE configuration path |
The service name for the ACE installed into the operating system is: AntiCheatExpert Protection , with the corresponding service program file as: C:\Program Files\AntiCheatExpert\ACE-Service64.exe.
The service name for the driver installed by ACE is: ACE-Base , and the relative driver file is C:\Windows\System32\drivers\ACE-Base.sys.
ACE will store some configuration information in the system registry.
Additionally, ACE also contains a solution named ACE-Boot, which allows ACE's kernel module to be automatically loaded when the operating system starts to monitor cheating software that may be launched before the game starts. This solution is disabled by default. If you need to enable it, please contact the ACE team.
During runtime, ACE relies on DLL components ( ACE-Base64.dll , etc.), service processes ( ACE-Service64.exe ) installed in the system, and driver components ( ACE-Base.sys , etc.) to collectively ensure the game's security.
Due to the uniqueness of the service and driver, only one instance of the game with ACE integrated is allowed to run at the same time.
Within 10 seconds after the protected game process has exited, ACE's service processes and driver components will also terminate. ACE's in-game components exit simultaneously with the process exit.
ACE provides an automated procedure for uninstalling ACE components from the system partition.
Upon uninstalling the game, call ACE-Setup64.exe in AntiCheatExpert of the game directory with administrator privileges to execute the ACE component removal. Utilize the following command line for uninstallation:
ACE-Setup64.exe -q
This command will silently remove ACE-related files from the system partition, delete system services, uninstall drivers, and clean the related registry entries. A successful uninstallation will result in an exit code of 0.
Users may also double-click the Uninstaller.exe in the ACE installation directory of the system partition or the ACE-Setup64.exe in the game directory in Explorer to perform the uninstallation. An interactive dialog box will appear, prompting users to confirm the uninstallation operation.*
Note: If the game decides to end the integration of ACE, it needs to actively call the uninstaller to uninstall ACE from the user's system, or guide the user to uninstall it.
Q1: What happens if the hardened EXE is not run with administrator privileges?
When the game is started, ACE-Setup64.exe will pop up a UAC box and ask the user to click. If the user clicks "No", ACE will pop up a box to prompt the user and exit the game; even if the user clicks "Yes", ACE can only run in a restricted state. Therefore, please make sure to add the configuration for requesting administrator privileges when generating the EXE.
Q2: What if multiple games using ACE run simultaneously?
Since only one instance of ACE driver components can run at a time, the latter launched game will examine the ACE component version used by the currently running game and compare it to its own ACE component version. If the version difference is significant, a pop-up box will prompt the user to close the other game before running the new game.
Q3: With multiple games sharing the same service and driver components, is there a risk of sensitive data leakage?
No, each game's data is reported independently.
Q4: Can the uninstallation process fail?
Yes, uninstallation failure usually occurs when an ACE-integrated game is currently running. If the uninstallation continually fails, advise the user to reboot the system and try again.
Q5: What happens during the uninstallation of a game using ACE if multiple games are installed on the user's computer?
If more than one game integrating ACE is installed on the computer and no game is currently running, the uninstaller will still carry out a full uninstallation. However, other games won't be affected, as any game with ACE integration will assess if ACE is already installed in the current environment at startup and attempt to reinstall it if it's not.
Q6: If users uninstall ACE by running ACE-Setup64.exe themselves, will the game still run normally?
Yes, please refer to the answer for Q5.