Valve Anti-Cheat (сокращённо: VAC) — инструмент компании Valve, разработанный для предотвращения использования игроками читов (нечестных приемов игры). Данная программа является одним из компонентов Steam.
VAC был впервые стал доступен в Counter-Strike 1.4 в 2002 году. Впоследствии Valve решила окончательно отказаться от PunkBuster, предпочтя продвигать свою систему.
Модуль VAC загружается в память клиента и следит за тем, чтобы посторонние процессы не вмешивались в процесс игры. Любая программа, вторгающаяся в адресное пространство запущенного процесса игры, может быть расценена как читерская программа.
Обнаружив постороннее вмешательство, которое подходит под определение читерской программы, VAC-модуль сообщает об этом на центральные сервера VAC в Valve. Туда же отправляется подробная информация о типе вмешательства, данные об аккаунте и т. п.
При поступлении данных о нарушении на сервера VAC в записи аккаунта-нарушителя в центральной базе Steam выставляется флаг «читер» и запускается обратный отсчет времени (от недели до двух месяцев), по истечении которого флаг меняется на «заблокирован» и аккаунту отказывается в доступе на любые сервера, защищённые VAC. Это необходимо для того, чтобы нельзя было точно определить, обнаружена ли уже данная программа для модификации игр или нет.
Следующие факторы не вызывают срабатывание системы:
если при запуске основанной на архивах GCF программы через Steam файлы формата exe или dll оказываются измененными, то Steam изменяет их на исходные (хранящиеся внутри GCF-архива), не вызывая срабатывание VAC. Если файлы были изменены и игра либо запускается напрямую (например hl.exe), либо основана на распакованных файлах, то сервер не пустит клиента при проверке версии игры (изменение dll игры), что не приведёт к срабатыванию системы. Однако если изменение самого exe-файла или некоторых dll-файлов движка сервер не обнаружит при входе, то в этом случае VAC может сработать;
замена моделей и/или материалов на более заметные, прозрачные и т. д.
VAC в значительной степени неэффективен против программ для обхода защиты, работающих в режиме ядра (через собственный драйвер), поскольку сам анти-чит работает в пользовательском режиме, в отличие от более продвинутых анти-читов (например, Easy Anti-Cheat или BattlEye).
Блокировка аккаунта
Блокировка устанавливается только для той игры, где было обнаружено использование читов, с некоторыми исключениями:
Система VAC напрямую зависит от Steam — использование VAC невозможно на неофициальных серверах. Игроки могут использовать только лицензионную Steam-версию игр с запущенным клиентом Steam для возможности игры на защищённых серверах — если на аккаунте Steam игра не зарегистрирована или вместо неё используется эмулятор, система препятствует входу пользователя на официальные серверы, в том числе защищённые VAC; вход становится возможным после регистрации игры на аккаунте. Поэтому игры, продаваемые в Steam, которые в розничной продаже не используют регистрацию в Steam, например Call of Duty 4: Modern Warfare, не защищаются системой VAC, для обеспечения совместимости с другими версиями.
Поддержка многопользовательских модификаций
Поскольку VAC не может определить, являются ли изменения внутри файлов формата dll и exe игры читом, он блокирует всех пользователей, играющих на защищённых серверах с изменёнными файлами. Однако разные мультиплеерные модификации, как правило, имеют изменённые файлы dll. Поэтому для сетевых модов, вносящих изменения характеристик или использующих собственный геймплей, создаются специальные официальные VAC-сервера, если создатели мода договорились с Valve о создании таковых. В этом случае также возможно использование только оригинальных exe и dll-файлов мода. Если к моду выходит обновление, затрагивающее изменение этих файлов, при попытке входа пользователя на защищённый сервер VAC не банит его, а сообщает о другой используемой на этом сервере версии, препятствуя входу на сервер. При попытке зайти на защищённый сервер система проверяет наличие регистрации базовой версии игры для этого мода, препятствуя входу нелицензионных пользователей.
Особенности системы
Valve Anti-Cheat может работать только совместно с запущенной системой Steam и только на Steam-версиях игр.
Для блокировки игрока, использующего читерские программы, Valve Anti-Cheat использует аккаунт системы Steam.
Защищённые серверы помечены в игре знаком щита.
Техническая поддержка Valve не снимает блокировки с аккаунтов ни при каких условиях. За исключением случаев, когда блокировка была применена ошибочно.
После блокировки пользователь может играть только на незащищённых серверах.