Eugecus anti cheat leakedddd
Code:
local CSLS = CSLS or {} --To protect the script from nulling on client, everything must be local
if ( CLIENT ) then
--Saving functions that could be nulled or modified
CSLS.next = _G.next
CSLS.GetConVarNumber = _G.GetConVarNumber
CSLS.net = {}
CSLS.net.Start = _G.net.Start
CSLS.net.SendToServer = _G.net.SendToServer
CSLS.net.Receive = _G.net.Receive
CSLS.CVars = { "host_timescale", "sv_cheats", "sv_allowcslua" }
function CSLS.CheckCVarSync( len )
for k, v in CSLS.next, CSLS.CVars do
if ( v ~= "host_timescale" ) and ( CSLS.GetConVarNumber( v ) ~= 0 ) then
CSLS.net.Start( "CSLS_DesyncDetected" ) CSLS.net.SendToServer()
break
elseif ( v == "host_timescale" ) and ( CSLS.GetConVarNumber( v ) ~= 1.0 ) then
CSLS.net.Start( "CSLS_DesyncDetected" ) CSLS.net.SendToServer()
break
end
end
end
CSLS.net.Receive( "CSLS_RequestSyncCheck", CSLS.CheckCVarSync )
elseif ( SERVER ) then
util.AddNetworkString( "CSLS_RequestSyncCheck" )
util.AddNetworkString( "CSLS_DesyncDetected" )
function CSLS.CheckCVarStatus() --Dont ban the players if for some reason the cvar is changed serverside
if ( GetConVarNumber( "host_timescale" ) ~= 1.0 ) then return true
elseif ( GetConVarNumber( "sv_allowcslua" ) ~= 0 ) then return true
elseif ( GetConVarNumber( "sv_cheats" ) ~= 0 ) then return true
else return false end
end
function CSLS.WriteLog( log )
if not file.IsDir( "CSLS", "DATA" ) then file.CreateDir( "CSLS" ) end
if not file.Exists( "CSLS/detection_log.txt", "DATA" ) then
file.Write( "CSLS/detection_log.txt", "[CSLS] Log file generated - " .. os.date() .. "\r\n" )
end
file.Append( "CSLS/detection_log.txt", "[CSLS] " .. tostring( log ) .. " - " .. os.date() .. "\r\n" )
ServerLog( "[CSLS] " .. tostring( log ) )
for k, v in pairs( player.GetAll() ) do
if v:IsAdmin() and not v.Detected then v:ChatPrint( "[CSLS] " .. tostring( log ) ) end
end
end
function CSLS.HandleDetection( len, ply )
if ply.Detected then return end
ply.Detected = true
CSLS.WriteLog( "Blocked Player " .. ply:Nick() .. "(" .. ply:SteamID() .. "/" .. ply:IPAddress() .. ")" )
ply:Ban( 0 )
ply:Kick( "CSLS AUTOBAN-> Client CVar bypass detected" )
end
function CSLS.TimedCheck()
if CSLS.CheckCVarStatus() then return end
net.Start( "CSLS_RequestSyncCheck" ) net.Send( player.GetAll() )
end
function CSLS.HookCheck( ply )
if CSLS.CheckCVarStatus() then return end
net.Start( "CSLS_RequestSyncCheck" ) net.Send( ply )
end
hook.Add( "PlayerInitialSpawn", "CSLS_CheckSyncHook", CSLS.HookCheck )
net.Receive( "CSLS_DesyncDetected", CSLS.HandleDetection )
timer.Create( "CSLS_CheckSyncTimer", 100, 0, CSLS.TimedCheck )
else return end
