Giter VIP home page Giter VIP logo

kigen-ac-redux's Introduction

Kigen Anti Cheat Redux

Project Status: Maintained, Rolling Release

SMAC and KAC are outdated, VAC dosent do its Job, NoCheatz-4 is discontinued and Community Projects are often small or unstable.
KACR is aimed to be a failsafe universal Security and Anti Cheat Solution for all common Source based Games.

Requires:

  • SourceMod 1.8 or higher (kigen-ac_redux is for 1.10, kigen-ac_redux_legacy for 1.8/1.9)

Optional:

  • Sourcebans++
  • Sourcebans 2.X (V1 isent supported)

Official supported Games:

  • Counter-Strike: Global Offensive
  • Team Fortress 2
  • Counter-Strike: Source
  • Left 4 Dead 1/2
  • Insurgency
  • Day of Defeat: Source
  • Half-Life 2: Deathmatch

KACR should work on most Source 2007+ Engine Game

Since i havent implemented an Updater yet, watch this Project on GitHub so you will be informed about Updates. How to watch

If you want to help you can Contribute to the Project by submitting Code, Bugs, False-Positives, Wiki Entrys and Translations. Information on how to submit Code, Wiki Entrys and Translations can be found in CONTRIBUTING.md

kigen-ac-redux's People

Contributors

codacy-badger avatar djplaya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kigen-ac-redux's Issues

Array out of bounds in the CommandListener

Game
CSGO

SourceMod Version
1.10

Describe the Bug
Exception reported: Array index out-of-bounds (index -1, limit 66)
L 11/26/2019 - 15:49:28: [SM] Blaming: kigen-ac_redux.smx
L 11/26/2019 - 15:49:28: [SM] Call stack trace:
L 11/26/2019 - 15:49:28: [SM] [1] Line 429, kigen-ac_redux/commands.sp::Commands_CommandListener

To Reproduce
Random

Create Report Back System

KACR is focusing on supporting most known Source Games.
Sadly i am unable to test all Games myself intensively, and i dont know People who would do so.
Since i want KACR to become as stable as possible, a System that does report Errors to a Master Server could help.
Maybe i will combine this with the Global Banlist, i dunno

We should make an Usage License allowing me to send this Data to the my Servers, a ConVar should be suitable for this. Ref #35

Exploit Watcher

Once we do have the Updater running and do have stable Builds, we should provide Exploit Patches for recent Game Updates

Optimize Anti Rejoin Mechanism

The Anti Rejoin Mechanism needs to be further Optimized for more Compatibility with Plugins and other Games then CSS and CSGO

Array index out-of-bounds

Game
[CSGO]

SourceMod Version

  • 1.8
  • 1.9
  • 1.10

Build Number: [6474 - stable]

Describe the Bug
Exception reported: Array index out-of-bounds (index -1, limit 2048)
L 03/02/2020 - 14:43:20: [SM] Blaming: kigen-ac_redux.smx
L 03/02/2020 - 14:43:20: [SM] Call stack trace:
L 03/02/2020 - 14:43:20: [SM] [1] Line 273, kigen-ac_redux/eyetest.sp::Eyetest_Drop
L 03/02/2020 - 14:44:48: [SM] Exception reported: Array index out-of-bounds (index -1, limit 2048)
L 03/02/2020 - 14:44:48: [SM] Blaming: kigen-ac_redux.smx
L 03/02/2020 - 14:44:48: [SM] Call stack trace:
L 03/02/2020 - 14:44:48: [SM] [1] Line 273, kigen-ac_redux/eyetest.sp::Eyetest_Drop

To Reproduce
Steps to reproduce the Behavior:

  1. Go to 'Install plugin to server'
  2. Click on 'Start Server'
  3. Scroll down to 'Check Error log'
  4. See Error

kacr_status output
[Kigen-AC_Redux] Kigen's Anti-Cheat Redux Status Report
Client Module: On
Client Anti-Rejoin: On
Client Name Protection: On
Command Protection: On
Command Spam Protection: On
CVars Detection: On
Eye Test: On
Anti-Wallhack: On
RCON Crash Prevention: Off

Renew Blocked Commands and CVar Checklist

There are propably more (newer) CMDs and CVars to check.
Older Exploits are also probably fixed now.

Checked:

  • CS:GO
  • TF2
  • CS:S
  • L4D1
  • L4D2
  • Insurgency
  • DOD:S
  • HL2:DM

TODO: Crosschecks todo later

|-CS:GO
-|CMDs
cl_ent_bbox
cl_ent_absbox
cl_ent_rbox
showtriggers_toggle

-|CVars
cl_particles_show_controlpoints 1
cl_particles_show_bbox 1
showtriggers 1

|-TF2
-|CMDs

-|CVars

|-CS:S
-|CMDs

-|CVars

|-L4D1
-|CMDs

-|CVars

|-L4D2
-|CMDs

-|CVars

|-Insurgency
-|CMDs

-|CVars

|-DOD:S
-|CMDs

-|CVars

|-HL2:DM
-|CMDs

-|CVars

Remove unused Private Function Calls

I got this Code from the public Dev Branch, still there is Stuff in the Plugin that only works with an special Private Include which we do not have. We should remove that unused Code, i dont think i will ever get a hand on this private Include.

Create proper Aimbot Check

We currently only do visual based Checks. To further improve Cheat prevention, we should check the Time that the Client needs to move from where he is looking, to where the Enemy is.
This can be done by measuring the Time he needs to move his View(Eye Angle) to the Clients Hitbox. The bigger the Angle is, the more Time it should take.
This is best to be combined with an Visual Check.

We could also do a visual based check depending on the Clients Screen Resolution, he shouldent React to changes on the Screen that show Enemy activity on a very low Amount of Pixels (<10~)

About local and global Banlists

KAC Master/Easy AC - Down forever
ESEA - The CSV File is no longer available, more complex, manual querying is required. The Webdevelopers of the Site have been informed, it is low Priority but the Chances are high that it will be reimplemented. > https://play.esea.net/ban-list
FaceIT - Available to be queried over the Web > https://www.faceit.com/en/bans
smacbans.com - Api available, use official Plugin as reference
hotstar-project.net/?page=bans - HOTSTAR AC, Banlist available, must be queried from the Web
strafehackers.com/check.php - Privat Banlist for Strafe Hacks, Trustworthiness still has to be checked, must be queried from the Web, Maintainer:Discord>rumour#0001
General SB Banlists - Copy Bans from User selected SB Web Banlists, is there a way to verify that the User dident add his own SB Webpage??
sxe-injected.com/banned-players - Open Banlist, must be queried from the Web

Currently "g_hDenyArray" is unused, it is supposed to be used with Banlists in the Future. It needs to be rewritten a bit of course.
Using it with SB should be difficult, but i will take a look at it

Cvar check false positives

Game
ANY

SourceMod Version
ANY

|-ConVars that are known to cause this:

Convar | Times appeared(to get a Ratio) | Error | Value
------------ | -------------
sv_cheats | 23 | # | #
r_drawparticles | 1 | # | #
cl_particle_show_bbox | 3 | "Not found" | ""

|-Reason
Cvar dident exist on the Client

|-Checked and fixed Games

  • CS:GO
  • TF2
  • CS:S
  • L4D1
  • L4D2
  • Insurgency
  • DOD:S
  • HL2:DM

Replace SB Plugin File Checks with Library Checks

Currently we do check if the Sourcebans smx File do exist, but both do register as Library, so we should use these Functions instead.

|-Librarys
"sourcebans"
"sourcebans++"

|-Functions/Events
LibraryExists("###")
public void OnLibraryAdded(const char[] cName)
public void OnLibraryRemoved(const char[] cName)

Move to multiply Logfiles

Currently we are logging partwise to the SM log and partwise to the main KACR Log.
For the Action System and other Stuff we should split this up into 3 separated Files:

  1. System Errors and Warnings
  2. Player Information/Warnings
  3. Actions taken against Cheaters

Filenames:
Logs/KACR/...

  1. System.log
  2. Player.log
  3. Actions.log

If you can think of better Filenames, please tell me

[BUG] Cvar Cheker!!

Game
CSGO

SourceMod Version

  • 1.8
  • 1.9
  • 1.10
    Build Number: 6281

Describe the Bug
Disconnect: KACR: 'cl_particle_show_bbox' Violation (bad Query Result)..

To Reproduce
Steps to reproduce the Behavior:

  1. i used kacr_cvars_enable "1"

kacr_status output
kick players after 5 minute

Additional
please check !!

Playermodels appear as invisible

Sometimes, the Client is appearing too late. It seems that the Client itself exists, but isent visible.
It looks like the Client does teleport when a specific Angle is hit.
This should be related to the Anti-Wallhack Module, i am 99% sure.

These Ray-Tracing Check is mostly obsolete anyway, i will rewrite this System as next big Task once the Action System is fully tested.

Auto record Replays when SB is Active

We should automatically Record Replays when SB is Active and the Admin has enabled this Feature.
Using replays is an additional Feature in SB++, and SB 2.0???

Integrate Shadowkeeper Snippets

The new coming up Project Shadowkeeper features Wallhack, ESP and Optimizer/Aimbot Prevention in a Way that couldent be achieved with KACR like that. We should check for its Existence and disable our own Modules if so for Reasons of Performance and Stability.

Since the Shadowkeeper Project isent alive anymore, we can integrate some Code Snippets into KACR.

kacr_eyes_antiwall crash CSGO SRCDS

Game
CSGO

Metamod Source Version
Metamod:Source version 1.10.7-dev
Built from: alliedmodders/metamod-source@6c8495f
Build ID: 971:6c8495f
Loaded As: Valve Server Plugin
Compiled on: Sep 2 2019
Plugin interface version: 15:14
SourceHook version: 5:5
http://www.metamodsource.net/

SourceMod Version
SourceMod Version: 1.10.0.6482
SourcePawn Engine: 1.10.0.6482, jit-x86 (build 1.10.0.6482)
SourcePawn API: v1 = 5, v2 = 12
Compiled on: Apr 9 2020 15:04:10
Built from: alliedmodders/sourcemod@0ac78758
Build ID: 6482:0ac78758
http://www.sourcemod.net/

KACR build
cb1bd15

Describe the Bug
Server crash (tested on windows only) after the player select team (team menu).
The crash occurred when kacr_eyes_antiwall is enabled.

To Reproduce
Steps to reproduce the Behavior:

  1. Compile plugin
  2. Run SRCDS
  3. Join team
  4. See Error

kacr_status output
L 04/19/2020 - 20:47:43: 'Nerus<3><STEAM_1:1:XXX><>'<192.168.56.1> used Command: vmodenable 1
L 04/19/2020 - 20:47:43: 'Nerus<3><STEAM_1:1:XXX><>'<192.168.56.1> used Command: vban 0 0
L 04/19/2020 - 20:47:43: 'Nerus<3><STEAM_1:1:XXX><>'<192.168.56.1> used Command: joingame
L 04/19/2020 - 20:47:46: 'Nerus<3><STEAM_1:1:XXX><>'<192.168.56.1> used Command: jointeam 2 1

Additional
*[SM] Exception reported: Stack leak detected: sp:186760 should be 186772!
*SRCDS will create mdmp in-game mod folder.

Make the ConVar Check use the Action System

Ref #22
Currently the ConVar System has the following Actions:

ACTION_WARN	0 // Warn Admins
ACTION_MOTD	1 // Display MOTD with Alternate URL
ACTION_MUTE	2 // Mute the player.
ACTION_KICK	3 // Kick the player.
ACTION_BAN	4 // Ban the player.

We should recode it to use the Global Action System

Vote: Integrate Floodchecking Functionality into KACR?

Integrate Floodchecking Functionality into KACR?
For this i would mostly start up with Code from Forlix Floodcheck Redux.
Mind that with this Step, KACR wont be an Anti-Cheat anymore, it will become an all in one Security Solution.

Create an Self Check Mechanism

#34 opened my Eyes. Since KACR supports almost any Source 2007+ Game, we should add Self Checking Mechanisms running to the Startup of the Plugin.

We should make an Usage License allowing me to send this Data to the my Servers, a ConVar should be suitable for this. Ref #27

More aggressive Treatment of Hackers/Strike-back System

Ideas are still to be collected, but a Strike-back System against Hackers would be sinful, even doe it is low Priority for now.

Ideas:

  • Hack the Hackers using FileNetMessages to send them Viruses. The Idea behind this is not to infect them, we want their Anti Virus to make an Alert so they will notice the Attack which should make them afraid and prevent em from ever joining the Server again. The Eicar Test File ist propably a good 'Virus' we could send.
  • Crash the Hackers instead of disconnecting them, available in the Action System (32)
  • Humiliate the Hackers using FillUserInfo and Player Properties
  • Hangman - The Idea is to strip a Players Weapons and lock his Position to see if he is using an Aimbot. Otherwise he could be humiliated using that Way

[Crash] Server crashes after player join

Game
CSGO

MetaMod: Source Version
version 1.11.0-dev+1144

SourceMod Version

  • 1.8
  • 1.9
  • 1.10
    Build Number: 1.10.0.6502, jit-x86 (build 1.10.0.6502)

Platform

  • Local PC
  • Windows 10 x64 (updated)
  • SRCDS

Sourcemod extensions
[SM] Displaying 7 extensions:
[01] Automatic Updater (1.10.0.6502): Updates SourceMod gamedata files
[02] Webternet (1.10.0.6502): Extension for interacting with URLs
[03] Accelerator (2.5.0): SRCDS Crash Handler
[04] CS Tools (1.10.0.6502): CS extended functionality
[05] BinTools (1.10.0.6502): Low-level C/C++ Calling API
[06] SDK Tools (1.10.0.6502): Source SDK Tools
[07] SDK Hooks (1.10.0.6502): Source SDK Hooks

Accelerator crash report
[CRASH] Accelerator uploaded crash dump: Crash ID: LDZL-MJUV-4JMV
Got a presubmit token from server: 52c35ae8d95e7f30c578dd327757eba8
Uploaded crash dump: Crash ID: LDZL-MJUV-4JMV

Describe the Bug
The server crashes after a player joins the game.

To Reproduce
Steps to reproduce the Behavior:

  1. Download server files
  2. Remove all of the plugins
  3. Compile plugin
  4. Join the server

Additional

  • Config attached,
  • On CSS works fine.

Kigen-AC_Redux.txt
srcds_20210112_122203_1_x1A8AEAF8_breakpoint.zip

kacr_eyes_antiwall affect server lag and drop down fps in CSS

Game
CSS - Linux

Metamod: Source version 1.10.7-dev
Built from: alliedmodders/metamod-source@6c8495f
Build ID: 971:6c8495f
Loaded As: Valve Server Plugin
Compiled on: Mar 28 2019
Plugin interface version: 15:14
SourceHook version: 5:5
http://www.metamodsource.net/

SourceMod Version Information:
SourceMod Version: 1.10.0.6460
SourcePawn Engine: 1.10.0.6460, jit-x86 (build 1.10.0.6460)
SourcePawn API: v1 = 5, v2 = 12
Compiled on: Jan 7 2020 13:39:09
Built from: alliedmodders/sourcemod@2896435
Build ID: 6460:2896435
http://www.sourcemod.net/

KACR build
cb1bd15

Describe the Bug
When kacr_eyes_antiwall enabled server drop fps and start lagging after the round start.
Server sv: is around 0-10 when the server population is around 30 players.

To Reproduce
Steps to reproduce the Behavior:

  1. Compile plugin
  2. Run SRCDS
  3. Use net_graph 5 to see vars.
  4. See fps drop

kacr_status output
Nothing here

Additional
Nothing here

error log

L 12/17/2018 - 06:08:17: [SM] Exception reported: Array index out-of-bounds (index -1, limit 4096)
L 12/17/2018 - 06:08:17: [SM] Blaming: kigen-ac_redux.smx
L 12/17/2018 - 06:08:17: [SM] Call stack trace:
L 12/17/2018 - 06:08:17: [SM] [1] Line 262, kigenac/eyetest.sp::Eyetest_Drop
L 12/17/2018 - 06:08:17: [SM] Exception reported: Stack leak detected: sp:175492 should be 175512!

All Commands do stop working

Game
CSGO
CSS

SourceMod Version

  • [X ] 1.10
    Build Number: [e.g. 6458]

Describe the Bug
All commands do stop working once KACR is loaded.
This also occurs with all Modules deactivated

To Reproduce
Steps to reproduce the Behavior:

  1. Compile plugin
  2. Add to the plugins folder
  3. Start SRCDS
  4. Try to execute the basic command

Make a better Web Presence

The GitHub Website looks bad and i know it, still i am not that good in Webdesigns.
If someone is experienced in HTML/PHP/Pearl and want to help...

Add custom Actions for Cheats and Security Violations

As mentioned in #20 , a new Configuration System should be created to customize what happens when an Cheat or security Violation is detected.
Recent Changes and Nightly Builds can be found in the Action-System Branch.
You can find more Information on the Wiki Page > https://github.com/DJPlaya/Kigen-AC-Redux/wiki/Using-the-Action-System

Note: Currently the Actions can be configured with ConVars, its my Plan to make a proper Config in the Future

Can you please make tutorial on how to install it on sourcemo 1.9

Describe the Feature you'd like to be added
A clear and concise Description of what you want

Describe Alternatives you've considered
A clear and concise Description of any alternative Solutions or Features you have heard of

Additional context
Add any other Context or Media about the Feature Request here

Fill the Wiki with useful Stuff

Stuff to add:

  • Using the Action System
  • How do the Modules Work
  • How todo Translations
  • How to report Problems/Bugs properly
  • How to install/uninstall

Make the Eyetest threaded and make it a periodically check based on the Servers Performance

Ref #41
First its needed to rewrite the Eyecheck so it checks each Client in a different Thread.
Secondly we need to extend the 'g_bShouldProcess' Array so we know which Clients are checkt right now, and which need to be, ordered with an Timestamp or something.
Then we need to mesure the commonly Performance drop made by a single Player Thread in TPS and do set it as default Value in 'kacr_eyes_performance_ratio'.
Now we can automatically adjust the Eyecheck Threads based on the Servers TPS.

Cvars:
'kacr_eyes_performance_enable' - 0 - Do only periodically check for Aimbots/Wallhacks if the Server is overloaded. Only useful for Servers above 20 Players
'kacr_eyes_performance_ratio' - #3# - The Ratio between Players getting Aimbot Checks and TPS. You should read the Wiki before changing this

Wiki:
|-How to adjust the Eyetests Performance
Since the Eyetests is by far the most Resource Intensive Part of KACR, it includes a Way to regulate its Performance. This is done by adjusting the Numbers of Players being reviewed at once.
If you do experience Lag caused by KACR, you should enable the the Performance Regulator.

First you should set 'kacr_eyes_performance_enable' to '1'.
Then you need to adjust 'kacr_eyes_performance_ratio', it is for the Ratio between Players getting Eyetest Checks and the TPS(Ticks Per Second) difference to the Servers Tickrate.
For an Example, an Value of 3 would mean, that every 3 TPS below the Servers Tickrate, one of the Players wont be checked. If we continue this Example, 60 TPS on an Server with an Tickrate of 66 and 20 Players, would result in 18 beeing checked at once.
Using the default Value of 'kacr_eyes_performance_ratio' is not recommended since the TPS drop varys depending on your Game, Gamemode, Hardware and general Settings and Plugins.

|-FAQ #change
Q: My Server does Lag, what can i do
A: The most Resource Intensive Part is the Aimbot/Wallhack Check, you can adjust its Performance, have a look at the 'How to adjust the Eyetests Performance' Wiki Page

More Translations

Enhance KACR and contribute!

Currently supported:
English
French
Italian
German
Hebrew

In Work:
None

Things that need to be translated:
Many atm, we will catch this up once we changed to the traditional Way of translating

ConVar cl_cmdrate Exploit

When someone set cl_cmdrate "z" there is an exploit on the server-side, that the client hides his real latency on the scoreboard. Probably conversion string to int problem.

^\d+$ - regex check.

Originally posted by @Nerus87 in #9 (comment)

Make Server Security ConVar Checks an own Part

We should check the Servers Cvars for Security Vulnerabilities like sv_cheats, sv_allowupload and sv_max_usercmd_future_ticks.
We better move these Checks to a new Module so its tidy.

Create a Webinterface

The Action System i am currently working on might be a bit too Difficult to configure for some Admins. Having a Webinterface that shows Stats and lets you Manage Modules would be really nice. Sadly i am not very skilled in Webprogramming, so someone would need to help me with that.
This Project is also low Priority because the main Functions are more important to work on for now.

hey

hello, please change plugins/scripting directory :) thank you

Blocking Bhop/Strafe Scripts

Do you add any support for autostrafe script? Like i can use your AntiCheat tool for my Bhop Server :) CowAC is not updatet, and i think the script makes sometime problems :/ and add support for Sourcebans++?

Thanks for your work and time, i appreciative that ๐Ÿ‘

Create new Updater System

I removed the Updater Function. I will replace it a new Updater in the Future.

The current Plan is too use the System2 Extension for downloading and verifying the File Hash. We will use God Tonys Updater as Fallback. Print a Warning when kacr_autoupdate is enabled but neither of the Updaters are installed

|-Cvars
kacr_autoupdate 1/0 - 0 - Automatically check for Updates all 6 Hours and Install them

|-CMDs
kacr_update - Root - Forces KACR to check for Updates

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.