PDA

View Full Version : Smac



ZERO
07-13-2012, 02:36 PM
The time has come to gear up for SMAC on our servers below is a more detailed description of what parts I plan to install and what settings. This thread is to discuss these changes before they go into effect:

SourceMod Anti-Cheat Modules and settings:

Client Protection

This module will protect your server from general client exploits that exist such as connection spam, name change spam, and invalid name/text characters.

smac_antispam_connect 0


AutoTrigger Detector

Detects cheats that automatically press buttons for players.

We are referring to these types of cheats:

BunnyHop - Player holds down +jump and continues to jump repeatedly.
Auto-Fire - Player holds down +attack and fires semi-auto weapons as if they were full-auto.

Many cheats come with these features enabled by default which could make them quite common to catch. The detections should be immune to natural human behaviour, but may be triggered by players using advanced scripts and aliases. A player binding their mousewheel to buttons should not trigger a detection.

Command Monitor

This module manages, monitors, and/or checks for Commands being used by players on the server. It manages commands that can be used to lag, crash, or freeze the server and manages them accordingly by either blocking them, kicking the player, banning the player, etc.

ConVar Checker

This module allows you to check if clients are trying to force there own cvars. This module will check if any client has a predefined cvar that differs from the server. Server admins can add there own cvars they would like to enforce or use the ones SMAC has predefined.
THIS DOES WHAT KAC already does on our server KAC will be removed when this is in place.

Each cvar wil be in this format - Cvarname "value it must be" (If not what will happen.)
These are commands clients should have at all.
0penscript (Ban)
bat_version (Kick)
beetlesmod_version (Kick)
est_version (Kick)
eventscripts_ver (Kick)
fm_attackmode (Ban)
lua_open (Ban)
Lua-Engine (Ban)
mani_admin_plugin_version (Kick)
ManiAdminHacker (Ban)
ManiAdminTakeOver (Ban)
metamod_version (Kick)
openscript (Ban)
openscript_version
(Ban) runnscript (Ban)
SmAdminTakeover (Ban)
sourcemod_version (Kick)
tb_enabled (Ban)
zb_version (Kick)
These are the rest of the cvars that SMAC looks for
sv_cheats "0" (Ban)
sv_consistency "1" (Ban)
r_drawothermodels "1" (Ban)
cl_clock_correction "1" (Ban)
cl_leveloverview "0" (Ban)
cl_overdraw_test "0" (Ban)
cl_particles_show_bbox "0" (Ban)
cl_phys_timescale "1" (Ban)
cl_showevents "0" (Ban)
fog_enable "1" (Ban)
host_timescale "1" (Ban)
mat_dxlevel "80.0 or Higher" (Kick)
mat_fillrate "0" (Ban)
mat_measurefillrate "0" (Ban)
mat_proxy "0" (Ban)
mat_showlowresimage "0" (Ban)
mat_wireframe "0" (Ban)
mem_force_flush "0" (Ban)
snd_show "0" (Ban)
snd_visualize "0" (Ban)
r_aspectratio "0" (Ban)
r_colorstaticprops "0" (Ban)
r_DispWalkable "0" (Ban)
r_DrawBeams "1" (Ban)
r_drawbrushmodels "1" (Ban)
r_drawclipbrushes "0" (Ban)
r_drawdecals "1" (Ban)
r_drawentities "1" (Ban)
r_drawmodelstatsoverlay "0" (Ban)
r_drawopaqueworld "1" (Ban)
r_drawparticles "1" (Ban)
r_drawrenderboxes "0" (Ban)
r_drawskybox "1" (Ban)
r_drawtranslucentworld "1" (Ban)
r_shadowwireframe "0" (Ban)
r_skybox "1" (Ban)
r_visocclusion "0" (Ban)
vcollide_wireframe "0" (Ban)


Rcon Locker

This module will protect your server from general rcon exploits and crashes. It will lock your rcon password after your server has started to prevent it from being changed unintentionally.

Will replace existing Rcon Locker plugin


Anti-Speedhack

This module checks for abnormal speeds on clients and attempts to block them. It runs passively in the background to prevent speedhacks from working.

This will not prevent players with extra speed in custom servers from going the same speed. It actually prevents them from going faster than the server is currently allowing that player to go.


[PUB ONLY] Anti-Wallhack

This module prevents most wallhacks from functioning correctly. The plugin manages and renders out entities so they appear when they should and not render out unless needed. This module checks certain Cvars from the clients and servers to make sure predictions are correct for players. If this module is installed on a L4D(2) server then it will only work with the survivors.

[NOT WCS] CS:S Anti-Flash

This module manages and takes care of players using anti-flash cheats on the server it's installed on. It will manually blind/flash players when they are blinded in a way clients cannot prevent.

CS:S Anti-Smoke

This module handles and manages smoke in-game for players. It will render out and set the players camera if he/she stands inside the smoke and blinds them accordingly.

Global Banlists

EasyAntiCheat

EasyAntiCheat is a server-client anti-cheat solution designed for closer knit communities such as gaming leagues. Bans are either made automatically based on client detection, or manually via client data sent to their admin team, which is then reviewed by a higher ranking admin. All ban reasons and expiration dates will be listed in the log file as banned players enter your server.

E-Sports Entertainment

ESEA is a semi-private gaming community that maintains their own internal list of cheaters. Bans are either made using their anti-cheat client, or manually on a case-by-case basis. While their website states that bans for cheating last 180 days, many bans are made permanent.

Kigen's Anti-Cheat

This list contains bans made by the old version of SMAC called "Kigens Anti-Cheat" or KAC for short. All bans on this list are permanent. It is unknown at this time if new bans are still being added to this list.

This is what we currently use and will replace this program with SMAC




Only the ConVar Checker will actually issue bans to players. All other parts either kick players or report detections to any admins that are in game. Remember that detections alone are not proof of hacking but they do suggest that a player should be evaluated and examined closly.

Please place comments below: the plan is to load this up on the vip server and verify everything works there and roll out to the other servers.

acolyte_to_jippity
07-13-2012, 03:06 PM
sweet. how will notifications be given to admins in-game?

and are we removing kigen's, or will that remain as a secondary to SMAC?

Steamer
07-13-2012, 03:35 PM
Is the Anti-Speedhack going to cause any problems with WCS? Or do you have the max speed convar ramped up enough to compensate for sometimes unusual speed differences. Maybe I'm just failing to realize how the plugin actually handles the situation.

ZERO
07-13-2012, 04:03 PM
Is the Anti-Speedhack going to cause any problems with WCS? Or do you have the max speed convar ramped up enough to compensate for sometimes unusual speed differences. Maybe I'm just failing to realize how the plugin actually handles the situation.

Like this:

#pragma semicolon 1

/* SM Includes */
#include <sourcemod>
#include <sdktools>
#include <smac>
#undef REQUIRE_PLUGIN
#include <updater>

/* Plugin Info */
public Plugin:myinfo =
{
name = "SMAC Anti-Speedhack",
author = "GoD-Tony",
description = "Prevents speedhack cheats from working",
version = SMAC_VERSION,
url = SMAC_URL
};

/* Globals */
#define UPDATE_URL "http://godtony.mooo.com/smac/smac_speedhack.txt"

new g_iTickCount[MAXPLAYERS+1];
new g_iTickRate;

/* Plugin Functions */
public OnPluginStart()
{
// The server's tickrate * 1.5 as a buffer zone.
g_iTickRate = RoundToCeil(1.0 / GetTickInterval() * 1.5);
CreateTimer(1.0, Timer_ResetTicks, _, TIMER_REPEAT);

// Updater.
if (LibraryExists("updater"))
{
Updater_AddPlugin(UPDATE_URL);
}
}

public OnLibraryAdded(const String:name[])
{
if (StrEqual(name, "updater"))
{
Updater_AddPlugin(UPDATE_URL);
}
}

public Action:Timer_ResetTicks(Handle:timer)
{
for (new i = 1; i <= MaxClients; i++)
{
g_iTickCount[i] = 0;
}

return Plugin_Continue;
}

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
if (++g_iTickCount[client] > g_iTickRate)
{
return Plugin_Handled;
}

return Plugin_Continue;
}



---------- Post added at 05:03 PM ---------- Previous post was at 04:58 PM ----------

As you can see it is comparing actual calculation ticks not any actual speeds. This is becuase speed hacks work by modifying client tick data to manipulate the prediction to cause the player to move faster. This is somewhat similar to how a very laggy player can skip around on a map a speedhacker takes advantage of this to exploit a way in the game engine to actually change their location at a fast rate without lagging.

Steamer
07-13-2012, 04:09 PM
Completely understand now.

Looks like a very nice addition so far.

StarsMine
07-13-2012, 04:33 PM
sv_cheats 0 equals ban?

ZERO
07-13-2012, 08:33 PM
This is the current KAC list: (i think)

//- Blocked Commands -// Note: True sets them to ban, false does not.
SetTrieValue(g_hBlockedCmds, "ai_test_los", false);
SetTrieValue(g_hBlockedCmds, "changelevel", true);
SetTrieValue(g_hBlockedCmds, "cl_fullupdate", false);
SetTrieValue(g_hBlockedCmds, "dbghist_addline", false);
SetTrieValue(g_hBlockedCmds, "dbghist_dump", false);
SetTrieValue(g_hBlockedCmds, "drawcross", false);
SetTrieValue(g_hBlockedCmds, "drawline", false);
SetTrieValue(g_hBlockedCmds, "dump_entity_sizes", false);
SetTrieValue(g_hBlockedCmds, "dump_globals", false);
SetTrieValue(g_hBlockedCmds, "dump_panels", false);
SetTrieValue(g_hBlockedCmds, "dump_terrain", false);
SetTrieValue(g_hBlockedCmds, "dumpcountedstrings", false);
SetTrieValue(g_hBlockedCmds, "dumpentityfactories", false);
SetTrieValue(g_hBlockedCmds, "dumpeventqueue", false);
SetTrieValue(g_hBlockedCmds, "dumpgamestringtable", false);
SetTrieValue(g_hBlockedCmds, "editdemo", false);
SetTrieValue(g_hBlockedCmds, "endround", false);
SetTrieValue(g_hBlockedCmds, "groundlist", false);
SetTrieValue(g_hBlockedCmds, "listmodels", false);
SetTrieValue(g_hBlockedCmds, "map_showspawnpoints", false);
SetTrieValue(g_hBlockedCmds, "mem_dump", false);
SetTrieValue(g_hBlockedCmds, "mp_dump_timers", false);
SetTrieValue(g_hBlockedCmds, "npc_ammo_deplete", false);
SetTrieValue(g_hBlockedCmds, "npc_heal", false);
SetTrieValue(g_hBlockedCmds, "npc_speakall", false);
SetTrieValue(g_hBlockedCmds, "npc_thinknow", false);
SetTrieValue(g_hBlockedCmds, "physics_budget", false);
SetTrieValue(g_hBlockedCmds, "physics_debug_entity", false);
SetTrieValue(g_hBlockedCmds, "physics_highlight_active", false);
SetTrieValue(g_hBlockedCmds, "physics_report_active", false);
SetTrieValue(g_hBlockedCmds, "physics_select", false);
SetTrieValue(g_hBlockedCmds, "q_sndrcn", true);
SetTrieValue(g_hBlockedCmds, "report_entities", false);
SetTrieValue(g_hBlockedCmds, "report_touchlinks", false);
SetTrieValue(g_hBlockedCmds, "report_simthinklist", false);
SetTrieValue(g_hBlockedCmds, "respawn_entities", false);
SetTrieValue(g_hBlockedCmds, "rr_reloadresponsesystems", false);
SetTrieValue(g_hBlockedCmds, "scene_flush", false);
SetTrieValue(g_hBlockedCmds, "send_me_rcon", true);
SetTrieValue(g_hBlockedCmds, "snd_digital_surround", false);
SetTrieValue(g_hBlockedCmds, "snd_restart", false);
SetTrieValue(g_hBlockedCmds, "soundlist", false);
SetTrieValue(g_hBlockedCmds, "soundscape_flush", false);
SetTrieValue(g_hBlockedCmds, "sv_benchmark_force_start", false);
SetTrieValue(g_hBlockedCmds, "sv_findsoundname", false);
SetTrieValue(g_hBlockedCmds, "sv_soundemitter_filecheck", false);
SetTrieValue(g_hBlockedCmds, "sv_soundemitter_flush", false);
SetTrieValue(g_hBlockedCmds, "sv_soundscape_printdebuginfo", false);
SetTrieValue(g_hBlockedCmds, "wc_update_entity", false);

Steamer
07-13-2012, 11:13 PM
sv_cheats 0 equals ban?

Ban them all! Lol

Should be sv_cheats 1 correct?

Also, r_drawothermodels 1 is normal, 2 is wireframe.

ZERO
07-14-2012, 09:03 AM
I will try to find out more about that list. See now why I made this thread before turning the shit on lol. :wtg:

Steamer
07-14-2012, 12:57 PM
sv_consistency 1 will allow all custom models unless the files are huge, 2 will drop them off server, of course 0 disables check.

Lots of people use custom models here, I like to roll default =P

Some of these SMAC auto bans are default level, like r_drawdecals 1 (bushes, posters on walls, ect). I would hope SMAC would be forcing the option to 1 and not banning because of it, this removes lots of hiding spots if disabled. Would be nice to take the time and test on the server on a per convar basis when people have the time.

DJ_MikeyRevile
07-14-2012, 04:36 PM
so in other words, if players dont catch wind of this change, alot of them will be banned if there using any of the above commands to enhance there game play?

Steamer
07-14-2012, 06:04 PM
Yea ^

DJ_MikeyRevile
07-14-2012, 06:27 PM
Yea ^

so in other other words, since this is public info, we will start seeing some of those "iffy players" do bad?

boy i cant wait to see this hilarious shit.

XX0wnsXY
07-15-2012, 07:20 AM
I dont care about anything but the fact that it makes our job a litttttttle bit more easy! Woooooo wooooooo

CYBER
07-15-2012, 02:54 PM
Ban them all! Lol

Should be sv_cheats 1 correct?

Also, r_drawothermodels 1 is normal, 2 is wireframe.

read what zero wrote BEFORE that list in his post
he said that the format of the following is:
<command> "value it SHOULD BE" (what happens if the value is NOT what it should be)....
so in oither words, sv_cheats should be 0 , if its NOT zero, it bans, same for r_drawothermodels, it should be 1, if not it bans...


now, zero, question bcos i have no fucking idea how this system works. I have a cfg file that made (thanks to steamr and spasm) that has predefined
sv_cheats 1,
voice_enable 0,
r_Drawothermodels 2,
sv_showimpact 2, (etc...)

i load this script every time i watch a wallhacker demo. problem is that , when i go back in the real server, my voice_enable is STILL 0.
so does that mean that if i join a server, my sv_cheats is gonna be 1, r_drawothermodels 2? and i might get banned for joining the server like that? does that constitute as "forcing a value from client side"? or is it smthn else? just wondering...

ZERO
07-15-2012, 05:13 PM
That is what I am not sure of

StarsMine
07-15-2012, 05:47 PM
yea I have a habit of doing what cyber does, lets see if I get banned or not.

Sin
07-16-2012, 03:49 PM
Voice_enable will only reset when you close/reopen the game and load your autoexec.cfg.

r_showdecals 0 does not get rid of bushes LOL. It's what I use so I don't have to see retarded sprays of E-SLUTS and Faggots spraying pictures of themselves everywhere, as well as the shock sprays.

DJ_MikeyRevile
08-05-2012, 07:53 PM
what is the ETA on the SMAC release?

CYBER
08-05-2012, 11:49 PM
what is the ETA on the SMAC release?no clue. but im going to laugh my ass off when half our regs get banned:P