Valve Anti-Cheat

Предупреждение VAC при загрузке карты

Valve Anti-Cheat (сокращённо: VAC) — инструмент компании Valve, разработанный для предотвращения использования игроками читов (нечестных приемов игры). Данная программа является одним из компонентов Steam.

VAC был впервые стал доступен в Counter Strike 1.4 в 2002 году. Впоследствии Valve решила окончательно отказаться от PunkBuster, предпочтя продвигать свою систему.

VAC2 работает в играх на движках GoldSrc, Source, Unreal 2, IW engine, начиная с версии 3.0 по 6.0. VAC2 включен в Source SDK.

Принципы работы

[править | править код]

Модуль VAC загружается в память клиента и следит за тем, чтобы посторонние процессы не вмешивались в процесс игры. Фактически, любая программа, вторгающаяся в адресное пространство запущенного процесса игры может быть расценена как читерская программа (что, собственно, совершенно правильно и естественно).

Обнаружив постороннее вмешательство, которое подходит под определение читерской программы, VAC-модуль сообщает об этом на центральные сервера VAC в Valve. Туда же отправляется подробная информация о типе вмешательства, данные об аккаунте и т.п. При поступлении данных о нарушении на сервера VAC в записи аккаунта-нарушителя в центральной базе Steam выставляется флаг "читер" и запускается обратный отсчет времени (от недели до двух месяцев), по истечении которого флаг меняется на "забанен" и аккаунту отказывается в доступе на любые сервера, защищенные VAC. Это необходимо для того, чтобы нельзя было точно определить, известен ли системе на данный момент конкретная читерская программа или нет.

Следующие факторы не вызывают срабатывание системы:

  • Если при запуске основанной на архивах GCF программы через Steam файлы exe или dll оказываются измененными, то при их запуске Steam изменяет их на исходные (хранящиеся внутри GCF-архива), и это не вызывает срабатывания VAC. Если файлы были изменены и игра либо запускается напрямую через (например) hl.exe, либо основана на распакованных файлах, то сервер просто не пустит клиента при проверке версии игры (изменение dll игры), что не приведёт к срабатыванию системы. Однако изменение самого exe-файла и некоторых dll-файлов движка может быть не обнаружено сервером при входе, и в этом случае Valve Anti-Cheat может сработать.
  • Консольные команды
  • Использование эксплойтов игр.
  • Замена моделей и/или материалов на более заметные, прозрачные и т. д.

Также, VAC является в основном бессильным против читерских программ, код которых работает в режиме ядра (злоумышленник использует собственный драйвер), поскольку сам античит работает в пользовательском режиме, в отличие от более продвинутых античитов (например, Easy Anti-Cheat или BattlEye).

Блокировка аккаунта

[править | править код]
Список серверов после блокировки. Вместо знака щита — перечёркнутая красная окружность

Как уже говорилось ранее, доступ на защищенные VAC-ом игровые сервера пропадает. Блокировка устанавливается только для той игры, где было обнаружено использование читов, с некоторыми исключениями:

Система VAC напрямую зависит от Steam — использование VAC невозможно на неофициальных серверах. Игроки могут использовать только лицензионную Steam-версию игр с запущенным клиентом Steam для возможности игры на защищённых серверах — если на аккаунте Steam игра не зарегистрирована или вместо программы Steam используется её эмулятор, система препятствует входу пользователя на официальные серверы, в том числе защищённые VAC — вход становится возможным после регистрации игры на аккаунте. Поэтому игры, продающиеся в Steam, которые в розничной продаже не используют регистрацию в Steam, например Call of Duty 4: Modern Warfare, не защищаются системой VAC, для обеспечения совместимости с другими версиями.

Поддержка многопользовательских модификаций

[править | править код]

Поскольку VAC не может определить, являются ли изменения внутри файлов dll и exe игры читом, он блокирует всех пользователей, играющих на защищённых серверах с изменёнными файлами. Однако разные мультиплеерные модификации как правило имеют изменённые файлы dll. Поэтому для сетевых модов, вносящих изменения характеристик или использующих собственный геймплей создаются специальные официальные VAC-сервера, если создатели мода договорились с Valve о создании таких серверов. В этом случае также возможно использование только оригинальных exe и dll-файлов мода. Если к моду выходит обновление, затрагивающее изменение этих файлов, то при попытке входа пользователя на защищённый сервер VAC не банит его, а сообщает о другой используемой на этом сервере версии, препятствуя входу на сервер. При этом при попытке зайти на защищённый сервер система проверяет наличие регистрации базовой игры для этого мода, препятствуя входу не лицензионных пользователей.

Особенности системы

[править | править код]
  • Anti-Cheat может работать только совместно с запущенной системой Steam и только на Steam-версиях игр.
  • Для блокировки игрока, использующего читерские программы Valve Anti-Cheat использует аккаунт системы Steam.
  • Защищённые серверы помечены в игре знаком щита.
  • Техническая поддержка Valve не снимает блокировки с аккаунтов ни при каких условиях. За исключением если блокировка дана по ошибке.
  • По заявлению Valve, у VAC не бывает ложных срабатываний. На самом деле были случаи, когда некоторые аккаунты попадали в список заблокированных, при этом данное явление было связано не с ошибочной работой VAC, а с неисправностью серверов Valve, однако впоследствии Valve сняла блокировку с ошибочно заблокированных аккаунтов.
  • После блокировки игра возможна только на незащищенных серверах.
  • В играх, начиная с Call of Duty: Modern Warfare 2 и заканчивая Call of Duty: Advanced Warfare, блокировка аккаунта не позволяет войти в многопользовательский режим.

Примечания

[править | править код]
  1. Valve Anti-Cheat System (VAC). Дата обращения: 11 октября 2012. Архивировано 27 декабря 2009 года.