Production-oriented Anti-Cheat для Counter-Strike: Source
24 модуля • 93 настройки • SQLite/MySQL • ML-assisted detection
Build • Runtime • Reliability • Fail-safe • Performance
🛡️ Защита сервера • ⚡ Производительность • 👁️ Visibility / Trace Analysis • 🤖 ML • 🗄️ Database
⭐ Техническая оценка: 3.8 / 5 • 7.6 / 10
Оценка отражает текущее техническое состояние проекта и не является официальным рейтингом GitHub.
| ⬇️ Скачать v1.1.2 | Iron.Sentinel.Core.v1.1.2.zip |
| 🏷️ Все релизы | GitHub Releases |
| 💻 Исходный код | GitHub Repository |
| 📜 Лицензия | GPLv3 |
Iron Sentinel Core v1.1.2 — обновление Build, Runtime & Reliability с исправлениями компиляции, startup exceptions, cross-map timing, timer lifecycle, client-slot reuse, database recovery, ML model loading и производительности.
- ✅ Исправлены известные ошибки компиляции SourcePawn 1.12.
- ✅ Исправлены startup exceptions и проблемы с
client = 0. - ✅ Исправлены persistent timer lifecycle issues после
changelevel. ⚠️ Cross-map AntiSpam logic усилена; live-тест послеchangelevelвыявил дополнительный edge case, который ещё требует исправления.- ✅ Улучшен client-slot state reset.
- ✅ Улучшена Database reconnect/recovery architecture.
- ✅
is_aimbotиспользует оптимизированную angle-history ring buffer. - ✅
is_wallhackиспользует bounded trace budget и visibility metrics. - ✅
is_antismokeиспользует spatial grid. - ✅
is_speedhackиспользует кэширование speed thresholds. - ✅
is_banlistиспользует cache invalidation по времени изменения файлов. - ✅ Добавлен отдельный
is_mlmodule. - ✅ ML model validation и checksum verification.
- ✅ ML runtime loader исправлен и проверен на реальном CS:S сервере.
- ✅ Основные runtime paths используют fail-safe обработку; известный live cross-map edge case указан ниже.
- ✅ Regression/property tests расширены и проходят без ошибок в аудированном дереве.
Последняя проверка выполнена на реальном Counter-Strike: Source сервере с:
SourceMod: 1.12.0.7251
SourcePawn Engine: 1.12.0.7251
Подтверждено:
model_valid=1
model_version=1.0.0-synthetic
schema=1
features=7
checksum=1504619244
Модель успешно загружается и после включения:
is_ml_enabled 1
реально выполняет inference:
inferences=1
То есть ML-путь подтверждён не только статическим тестом, но и live runtime.
Во время последнего changelevel сервер снова воспроизвёл:
[AntiCheat] Please wait 7 seconds before reconnecting.
Это означает, что автоматические regression/property tests не покрывают весь реальный reconnect lifecycle CS:S.
Поэтому cross-map AntiSpam сейчас следует считать:
Static audit: ✅
Regression tests: ✅
Live map-change: ⚠️ additional edge case detected
Это не скрытая ошибка документации: факт подтверждён реальным серверным логом и требует отдельного runtime-патча перед тем, как называть cross-map reconnect полностью закрытым.
Iron Sentinel разрабатывался как более современная расширенная система поверх классического rule-based подхода.
Ниже — сравнение по архитектурным возможностям, а не заявление о том, что один античит обнаруживает абсолютно каждый чит лучше другого.
| Возможность | 🛡️ Iron Sentinel | 🔹 SMAC | 🔹 Lilac | 🔹 Kigen's AC |
|---|---|---|---|---|
| Модульная архитектура | ✅ | ✅ | ✅ | ✅ |
| Aimbot Detection | ✅ | ✅ | ✅ | |
| Aimlock Detection | ✅ | ✅ | ❌ | |
| Angle Detection | ✅ | ✅ | ✅ | ❌ |
| Wallhack / Visibility | ✅ | ❌ | ||
| Ray / Trace Analysis | ✅ | ❌ | ❌ | ❌ |
| Bounded Trace Budget | ✅ | ❌ | ❌ | ❌ |
| Anti-Smoke | ✅ | ❌ | ❌ | ❌ |
| Anti-Flash | ✅ | ❌ | ❌ | ❌ |
| Speedhack Detection | ✅ | ❌ | ||
| Macro Detection | ✅ | ✅ | ✅ | ❌ |
| NoLerp / Interpolation | ✅ | ✅ | ✅ | ❌ |
| Backtrack Detection / Telemetry | ✅ | ✅ | ❌ | |
| AntiSpam / Reconnect Protection | ✅ | ✅ | ||
| Client-slot state protection | ✅ | |||
| Cross-map timing protection | ✅ | |||
| Persistent timer lifecycle hardening | ✅ | |||
| SQLite | ✅ | ✅ | ❌ | |
| MySQL / MariaDB | ✅ | ✅ | ❌ | |
| Automatic DB reconnect | ✅ | ❌ | ||
| Fail-safe runtime handling | ✅ | |||
| Model integrity validation | ✅ | ❌ | ❌ | ❌ |
| Local ML-assisted signal | ✅ | ❌ | ❌ | ❌ |
| Regression / property testing | ✅ | ❌ | ||
| CI/CD | ✅ | ✅ | ❌ |
23 classical detection modules
+
runtime hardening
+
visibility / trace analysis
+
database infrastructure
+
optional ML signal
↓
Iron Sentinel Core
- ✅ 24 модуля, включая отдельный
is_ml. - ✅ 93 CVAR для детальной настройки.
- ✅ Visibility / trace analysis с ограниченным бюджетом.
- ✅ Fail-safe обработка runtime-ошибок.
- ✅ Cross-map / client-slot защита состояния.
- ✅ SQLite / MySQL / MariaDB.
- ✅ Automatic database reconnect.
- ✅ Локальный ML inference.
- ✅ Проверка checksum и целостности модели.
- ✅ Regression/property testing.
- ✅ GitHub Actions CI/CD.
⚠️ Это архитектурное сравнение. Оно не является независимым benchmark'ом detection accuracy, CPU usage или false-positive rate.
Iron Sentinel не рассматривает единичное событие как автоматическое доказательство чита.
наблюдение
↓
счётчик / evidence
↓
дополнительные признаки
↓
подтверждение
↓
действие
При ошибке runtime:
invalid state
↓
safe fallback
↓
проверка пропускается
Это позволяет снижать риск ложных срабатываний.
is_ml является дополнительным модулем.
23 classical modules
+
is_ml
=
24 modules
Текущая модель:
Model version: 1.0.0-synthetic
Schema version: 1
Feature count: 7
Checksum: 1504619244
На реальном CS:S сервере подтверждена загрузка:
[ML] Model loaded: version=1.0.0-synthetic schema=1 features=7 checksum=1504619244 (verified)
Также подтверждено:
model_valid=1
is_ml_status
is_ml_reload
is_ml_debug 1
После диагностики:
is_ml_debug 0
is_ml_enabled 1
is_ml_confidence 0.5
is_ml_threshold 0.75
is_ml_sample_interval 5.0
is_ml_log 1
is_ml_debug 0
ML является дополнительным сигналом. Один ML score не должен быть единственным основанием для автоматического наказания.
is_wallhack использует visibility analysis с bounded trace budget.
Статус:
is_wallhack_status
Отслеживаются:
trace budget
trace usage
visibility checks
trace drops
blocked events
window timing
trace utilization
Принцип:
cheap validation
↓
cache
↓
early exit
↓
trace
↓
visibility evidence
Это позволяет ограничивать дорогие trace-операции на серверах с большим количеством игроков.
Основные оптимизации:
Persistent ring buffer без создания временного массива истории в hot path.
Bounded trace budget, cache, early exits и trace metrics.
Spatial grid вместо полного перебора всех players × smokes.
Кэширование speed thresholds и сокращение повторных velocity calculations.
Повторный parse только при необходимости.
Снижение лишнего formatting/API work.
Iron Sentinel использует monotonic timing (GetTickedTime()) для persistent reconnect/cooldown state и отдельную обработку map-transition state.
Целевой сценарий:
Map A
↓
changelevel
↓
Map B
↓
legitimate reconnect
Должен отличаться от обычного быстрого reconnect внутри одной карты.
Monotonic reconnect clock ✅
Client-slot state reset ✅
Transition-state tracking ✅
Same-map reconnect protection ✅
Live changelevel regression ⚠️
На последнем live-тесте после changelevel всё ещё был воспроизведён AntiSpam kick с задержкой reconnect.
Поэтому данная подсистема не помечается как полностью закрытая до исправления и повторной проверки на живом сервере.
Остальные модули не следует отключать глобально ради обхода этого edge case.
Поддерживаются:
SQLite
MySQL
MariaDB
Automatic reconnect:
5 → 10 → 20 → 40 → 60 секунд
Проверка:
is_db_status
Reconnect:
is_db_reconnect
| № | Модуль | Назначение |
|---|---|---|
| 1 | is_core |
Core API, ban, logging, configuration |
| 2 | is_commands |
Command protection |
| 3 | is_cvars |
Client ConVar validation |
| 4 | is_antispam |
Connection/name/team spam |
| 5 | is_speedhack |
Speed anomaly detection |
| 6 | is_aimbot |
Aimbot detection |
| 7 | is_wallhack |
Visibility / trace analysis |
| 8 | is_eyetest |
Eye-angle validation |
| 9 | is_autotrigger |
Trigger behaviour |
| 10 | is_spinhack |
Spin detection |
| 11 | is_antiflash |
Flash protection |
| 12 | is_antismoke |
Smoke protection |
| 13 | is_rcon |
RCON protection |
| 14 | is_banlist |
Cached banlists |
| 15 | is_aimlock |
Aim-lock detection |
| 16 | is_macro |
Macro detection |
| 17 | is_nolerp |
Interpolation validation |
| 18 | is_backtrack |
Backtrack telemetry |
| 19 | is_ping |
Ping control |
| 20 | is_chatclear |
Chat-clear protection |
| 21 | is_anglepatch |
Angle anomaly protection |
| 22 | is_dll |
DLL detection |
| 23 | is_database |
SQLite/MySQL logging |
| 24 | is_ml |
Optional ML-assisted signal |
addons/sourcemod/configs/is_config.cfg
В проекте:
86 core CVAR
+
7 ML CVAR
=
93 CVAR
sm version
meta list
sm plugins list
Core:
is_status
Aimbot:
is_aimbot_status
Wallhack:
is_wallhack_status
AntiSmoke:
is_antismoke_status
Banlist:
is_banlist_status
Database:
is_db_status
ML:
is_ml_status
Команды модулей:
sm cmds is_core
sm cmds is_antismoke
sm cmds is_banlist
sm cmds is_database
sm cmds is_ml
is_ml_status
Включить:
is_ml_enabled 1
Debug:
is_ml_debug 1
Reload:
is_ml_reload
Проверить:
is_ml_status
После проверки:
is_ml_debug 0
Для рабочего inference значение:
inferences
должно увеличиваться во время работы сервера.
sm plugins list
is_status
is_wallhack_status
is_db_status
is_ml_status
tools/compile_all_windows.bat
tools/compile_runtime_fix_windows.bat
tools/compile_strict_windows.bat
tools/compile_ml_windows.bat
Строгая сборка должна завершаться при наличии warning.
Проверяются:
- ✅ Client validation.
- ✅ Entity validation.
- ✅
client = 0server context. - ✅ Client-slot reuse.
- ✅ Timer lifecycle.
- ✅ Database callback safety.
- ✅ RCON hook lifecycle.
- ✅ Model checksum.
- ✅ Model size.
- ✅ NaN/Inf model data.
- ✅ Path handling.
- ✅ Admin/immunity.
- ✅ Fail-open behaviour.
- ✅ Optional AntiDLL degradation.
Покрываются:
compile checks
regression tests
property tests
ML model validation
checksum validation
timer lifecycle
client-slot reuse
cross-map timing
database callbacks
model corruption
NaN / Inf handling
Последний зафиксированный regression result:
71 passed
0 failed
ML tests:
21 passed
0 failed
Проект использует UTF-8 для исходников, переводов и конфигураций.
Если Windows CMD отображает русский текст неправильно:
╨Я╨╛╨║╨░╨╖╨░╤В╤М ...
проверить code page:
chcp 65001Не переводите файлы проекта в ANSI только из-за проблемы отображения терминала.
При отсутствии внешнего расширения:
[IRON SENTINEL] AntiDLL extension not found. DLL detection in limited mode.
Это допустимый optional режим.
Остальные модули продолжают работать.
Version: 1.1.2
Author: Maxim Melnikov
Архитектура:
23 classical modules
+
1 optional ML module
=
24 modules
- ✅ Aimbot compile fixes.
- ✅ Wallhack compile fixes.
- ✅ Database compile fixes.
- ✅ SourcePawn 1.12 compatibility fixes.
- ✅ Wallhack
Max()compatibility fix.
- ✅ AntiSmoke invalid handle fix.
- ✅ Banlist
client = 0fix. - ✅ Core startup/ConVar protection.
- ✅ Client-slot state reset.
- ✅ Timer lifecycle fixes.
⚠️ Cross-map AntiSpam hardening; livechangeleveledge case remains under investigation.
- ✅ Aimbot ring buffer.
- ✅ Wallhack bounded trace budget.
- ✅ Trace cache / early exits.
- ✅ AntiSmoke spatial grid.
- ✅ Speedhack threshold caching.
- ✅ Banlist cache invalidation.
- ✅ Core logging optimization.
- ✅ SQLite.
- ✅ MySQL / MariaDB.
- ✅ Automatic reconnect.
- ✅ Retry backoff.
- ✅ Health checks.
- ✅ Stale callback protection.
- ✅ Optional
is_ml. - ✅ Local deterministic inference.
- ✅ Model schema validation.
- ✅ Fixed-point coefficient representation.
- ✅ Checksum validation.
- ✅ NaN/Inf protection.
- ✅ Model reload.
- ✅ Live model-load verification.
- ✅ Client validation.
- ✅ Slot isolation.
- ✅ Timer hardening.
- ✅ Database callback hardening.
- ✅ Model validation.
- ✅ Fail-safe runtime behaviour.
BUILD / SOURCE
✅ 24 SourcePawn modules
✅ SourcePawn 1.12 compatibility
✅ 93 CVAR (86 core + 7 ML)
ML
✅ Model loading
✅ model_valid=1
✅ Checksum validation
✅ Live inference observed
✅ is_ml_status
✅ is_ml_reload
SECURITY
✅ Client validation
✅ Client-slot isolation
✅ Model integrity checks
✅ Fail-safe runtime handling
✅ Database callback hardening
PERFORMANCE
✅ Aimbot ring buffer
✅ Wallhack bounded trace budget
✅ AntiSmoke spatial grid
✅ Speedhack threshold caching
✅ Banlist cache invalidation
QA
✅ Regression/property suite: 71/71
✅ ML tests: 21/21
⚠️ Live cross-map AntiSpam edge case remains
RUNTIME
✅ ML verified on live server
⚠️ Full cross-map/reconnect lifecycle requires one more live fix + retest
Важно:
✅означает подтверждённую возможность или проверку.⚠️означает конкретный известный live runtime edge case, который не скрывается документацией.
Author: Maxim Melnikov
GitHub:
https://github.com/Maximka1993271
Repository:
https://github.com/Maximka1993271/cs-source