kernel mode anti cheat
open source anti cheat (lol) which I made for fun.
Theres a long list of features I still want to implement, the question is whether I can be bothored implementing them. I would say I'd accept pull requests for new features but I would expect high quality code and thorough testing with verifier (both inside a vm and bare metal).
VERBOSE level logs in DebugView along with the usermode application console and some additional performance benchmarking things.Requires Visual Studio and the WDK for compilation.
Before we continue, ensure you enable test signing mode as this driver is not signed.
bcdedit -set TESTSIGNING on
bcdedit /debug ongit clone [email protected]:donnaskiez/ac.gitRelease - No Server - Win10 or Release - No Server - Win11 depending on the version of Windows you will be running the driver on.Inf2Cat -> General -> Use Local Time to YesC/C++ -> Treat Warnings As Errors to NoC/C++ -> Spectre Mitigation to Disableddriver.sys file located in ac\x64\Release - No Server\ into the Windows\System32\Drivers directorydriver.sys (or whatever you named it) that you moved to the Windows drivers folder. DO NOT REGISTER THE SERVICE YET.Service Start select System. This is VERY important!Register Service. Do NOT click Start Service!ac\x64\Release - No Server\ named user.dll into the target programLogs will be printed to both the terminal output and the kernel debugger. See below for configuring kernel debugger output.
Note: The server is not needed for the program to function properly.
The kernel driver is setup to log at 4 distinct levels:
#define LOG_ERROR_LEVEL
#define LOG_WARNING_LEVEL
#define LOG_INFO_LEVEL
#define LOG_VERBOSE_LEVELAs the names suggest, ERROR_LEVEL is for errors, WARNING_LEVEL is for warnings. INFO_LEVEL is for general information regarding what requests the driver is processing and VERBOSE_LEVEL contains very detailed information for each request.
If you are unfamiliar with the kernel debugging mask, you probably need to set one up. If you already have a debugging mask setup, you can skip to setting the mask below.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager into the bar at the top and press enterSession Manager and select New -> KeyDebug Print FilterDebug Print Filter, right click and select New -> DWORD (32 bit) ValueDEFAULTDebug Print Filter registry, double click the key named DEFAULTINFO_LEVEL or VERBOSE_LEVEL. Remember that if you set INFO_LEVEL, you will see all INFO_LEVEL, WARNING_LEVEL and ERROR_LEVEL logs. Ie you see all logs above and including your set level.ERROR_LEVEL = 0x3
WARNING_LEVEL = 0x7
INFO_LEVEL = 0xf
VERBOSE_LEVEL = 0x1fOk and restart Windows.If you choose to use INFO_LEVEL or VERBOSE_LEVEL there may be many logs from the kernel so we want to filter them out.
With WinDbg connected to the target:
Break button.ofilter donna-ac*Edit -> Filter/HighlightInclude string to donna-ac*We have decided to put this Project under AGPL-3.0! https://choosealicense.com/licenses/agpl-3.0/
feel free to dm me on discord or uc @donnaskiez
No open issues yet, or sync has not completed.