Олдфаг
-
Автор темы
- #1
Вступление
Пожалуйста, авторизуйтесь для просмотра ссылки.
от GOVARD. Да и тут я статей об этом не видел, собственно вот и повод. Информации в публичном доступе достаточно много, но в этой статье я постараюсь объединить все источники и добавить своей информации которую я узнал в ходе разработки читов под этот античит. Итак.
Пожалуйста, авторизуйтесь для просмотра ссылки.
(
Пожалуйста, авторизуйтесь для просмотра ссылки.
античит компании Valve (далее античит) который используется в популярных играх как:
Пожалуйста, авторизуйтесь для просмотра ссылки.
,
Пожалуйста, авторизуйтесь для просмотра ссылки.
,
Пожалуйста, авторизуйтесь для просмотра ссылки.
,
Пожалуйста, авторизуйтесь для просмотра ссылки.
, и
Пожалуйста, авторизуйтесь для просмотра ссылки.
...Модули
Для начала, отмечу, что античит разделён на множество модулей которые скачиваются с серверов, проще говоря, им не обязательно обновлять игру либо Steam чтобы добавить новый модуль либо модифицировать старый. У каждого модуля своя роль, допустим, один модуль отвечает за получение информации о системе, второй получает список всех активных процессов и хэндлов и т.д. Также, у античита есть два сценария загрузки модулей в процесс: Manual Map,
Пожалуйста, авторизуйтесь для просмотра ссылки.
. При версии VAC2 всё грузилось через LoadLibrary, распаковывая модули в папку %temp%. Сейчас же при версии VAC3 античит грузит модули напрямую из памяти используя Manual Map. У каждого из модулей есть экспортируемая функция которую можно назвать точкой входа: _runfunc@20
. Как вы наверное поняли, она вызывается после загрузки модуля в процесс игры. Им довольно удобно использовать модули для своей нейронной сети, т.е если античит обнаружил читера наверняка, они могут не блокировать его сразу, а подпитать свою нейронную сеть информацией. Также у модулей зашифрованы импорты, используется ICE шифрование для общения с сервером.IDB довольно старая (год), но не важно, скорее всего ничего не поменялось.
Кому интересно посмотреть самому, вот string xref:
Assertion Failed: pModule->m_pModule == NULL
Запуск
-insecure
;). Но ничего опасного как правило в них нет, кроме отдельных случаев конечно же (распишу чуть позже). При запуске игры, одним из первых грузится модуль отвечающий за получение информации о системе, вне зависимости от параметра -insecure
(размер .text секции: 0x5C00). Чуть позже грузится модуль который я описывал выше, получающий список активных процессов и хэндлов (размер .text секции: 0x4A00). Эти модули можно назвать "безобидными", остальные же грузятся при непосредственной игре на серверах защищенных античитом. Ну и одним из преимуществ того, что античит раздроблен на множество частей это то, что сразу все модули не сдампить, а некоторые из них могут быть неактивными до поры до времени и вообще не загружаться.Серверные проверки
Затрону тему с серверными проверками, при нарушении которых выдается статус "ненадежный".На самом деле, это не совсем относится к античиту, но всё же.Позиция углов игрока: еслиx
меньше -89 или больше 89; еслиy
меньше чем -180 или больше чем 180; еслиz
меньше чем -50 или больше 50.
Использование уязвимостей ломающие игру (краши серверов, телепорты и т.д)
Доверенный режим
Инновации компании Valve которые по началу конфликтовали со сторонними античитами, и сломали работу некоторых программ для записи (как OBS). На самом деле, интересная мера защиты от ньюфаг читеров, усложняя им жизнь. А ведь что было нужно раньше? Качаешь
Пожалуйста, авторизуйтесь для просмотра ссылки.
, любую DLL с форума и пошёл играть. Данная мера хоть немного, но думаю снизила наплыв новых читеров, хотя некоторые личности вообще называли это "новым античитом", забавно. Данная мера, в основном от LoadLibrary инжекторов, Manual Map инжекторы как работали так и работают (хотя античит и так проверял по PEB все загруженные модули, Manual Map изначально не оставляет там следа, чего не скажешь о LoadLibrary). Как это работает?Хук
ntdll
функции. Данный хук неактивен при параметре -insecure
, также пропускает DLL при условии, что она в системной директории Windows :DЭто можно обойти путём обычного патча
jmp hook_func
на адрес оригинальной функции. Либо использовать "лазейки" описанные раннее.Фактор доверия
Итоги
Компания Valve могла пойти по стопам BattleEye, VanGuard и т.д, но решила создать своё решение от нечестных игроков, которое имеет потенциал в будущем. Я не стал описывать тут всё, что есть т.к времени особо не было, описал лишь основную часть.Надеюсь я описал всё, если что упустил пишите — я дополню. Лично для меня интересно, на сколько аудитория форума поменялась, что вам интересно и сколько таковых, так что возможно ещё напишу пару статеек. Хорошего дня и с рождеством ?.