Дисклеймер: автор гайда не призывает к игре с любым видом ПО и крайне осуждает это. Вся информация приведена в исключительно образовательных целях. В гайде нет ссылок на запрещенные и/или вредоносные ресурсы
Предисловие: в данном руководстве разбирается технический аспект софта для кс2 в общих и углубленных темах, психология софтера, как максимально обезопасить себя от игры с такими людьми, проблема Valve, анализ поведения читера и мои доводы, касаемо того, что нужно и можно сделать для того. чтобы полностью искоренить тему софтеров в игре.
СОДЕРЖАНИЕ
-
Техническое составляющее современного софта
-
Психология софтера
-
Что такое Trust Factor. Известные способы улучшения. Как обезопасить себя от игры с читерами
-
VacLive
-
Главная проблема Valve
-
Личное мнение
Техническое составляющее современного софта
Кс2 — многопользовательская игра, которая предоставляет глубокое пространство для развлечения, проведения досуга, профессиональной деятельности и разного рода заработка. Как и в любой другой многопользовательской игре — всегда найдутся те, кто захочет как можно быстрее заполучить заветный рейтинг в профиле, даже путем обмана и порчи игры другим игрокам.
Вредоносные программы делятся на 2 типа, Internal и External.
Internal версии — это программы такого рода, которые внедряются непосредственно в процесс игры, получают доступ к памяти внутри процесса(или конкретного потока) и манипулируют им. Обычно это библиотеки динамической компоновки(DLL). Второй же тип, External, это самостоятельные программы, которые путем чтения памяти процесса игры(cs2.exe) получают доступ к нужным местам памяти(подробнее ниже) и снова манипулируют им. Такие программы обычно имеют расширение.exe.
Итак, главная задача любого вредоносного ПО в тематике кс2 сводится к манипулированию памятью процесса игры. Как же это происходит?
В любом приложении есть переменные. Это хранилища, в которые можно складывать информацию, чтобы впоследствии читать ее, изменять или передавать. При исполнении процесса игры эти переменные хранятся в памяти. (оперативной памяти!) Получив определенный адрес этой переменной, к примеру, с помощью программы cheat engine, мы можем читать и редактировать ее содержимое. Ниже приведены строки C++ кода, которые позволяют прочитать и отредактировать память процесса.
bool success = WriteProcessMemory(hprocces, LPVOID lpBaseAddress, LPCVOID lpBuffer, SIZE_T nSize, SIZE_T *lpNumberOfBytesWritten)
bool succes = ReadProcessMemory(hprocces, LPVOID lpBaseAddress, LPCVOID lpBuffer, SIZE_T nSize, SIZE_T *lpNumberOfBytesWritten)
ДЛЯ ПРОСТОТЫ. Представьте, что наша программа “чит” как – бы обращается к процессу игры кс2 и говорит: кс2, у тебя в client.dll лежит адрес нужной мне переменной, дай мне его значение.
Таким образом, подключив библиотеку <Windows.h> , получив дескриптор процесса, указатель на базовую структуру(в кс2 – client.dll) мы можем записать что угодно в какую угодно переменную игры.
ВАЖНО. В кс2 реализована защита от изменения памяти таким образом, однако, в современных читах эта технология и не используется.
Все необходимые адреса переменных уже имеются в открытом доступе, например – cs2 dump github. Там приведены все те оффсеты, которые требуются для разработки своего ПО.
Оффсет – адрес в памяти, который указывает на определенную переменную. Он статический, т.е не меняется при перезапуске процесса.
Что вообще представляет из себя чит? UI интерфейс и множество функций, как к примеру:
ESP – возможность видеть врагов сквозь стены
(Legit/Rage/Silent) AIM – автоматическая наводка на заданную точку тела противника
Возможно Silent – rage AIM. но я посчитал, что такую технологию выстрелов, когда камера поворачивается на заданную точка модели противника на 1 тик нужно вынести в отдельную категорию*
No spread — «отключение» отдачи, путем рассчитывая оптимального угла поворота камеры, чтобы пуля при следующем тике летела в заданную точку тела противника
Визуальные изменения(Скин Чейнджер, изменения цвета смоков, неба и прочего)
Самым распространенным способом реализации Ui является использование Kiero Hook Dear ImGui.
Вот краткое объяснение:
Любая 3д или 2д игра работает с помощью библиотек для работы с видеокартой. Это может быть как OpenGL и Vulkan, так и другие. Когда картинка рендерится и отправляется нам на монитор через поток информации, мы можем его перехватить, изменить в нем то, что нужно, и в итоге, на мониторе будет выведена наша измененная версия. Это и называется Hook, т.е “перехватывать”. Тем самым и отрисовывается Ui чита.
Как работает ESP?
В памяти игры хранится информации о положении противников в entity list. (в ксго не было возможности увидеть врагов с респы на респу, потому что они не подгружались). Зная Vec2 координаты врагов мы можем отрисовывать прямоугольник в нужной нам области и смещать его каждый кадр при перемещении противника.
Как работает AIM?
AIM-бот работает в несколько этапов:
-
Поиск цели: чтение списка игроков из памяти, фильтрация (враг ли? живой ли? видимый ли?).
-
Расчет угла: используя координаты игрока и его хитбоксы (голова, грудь), вычисляется необходимый угол поворота камеры.
-
Плавность: чтобы не спалиться, угол меняется не мгновенно, а с определенной ‘smoothness’ (плавностью).
-
Триггер: когда CrossHairID показывает, что прицел на враге — автоматический выстрел (Trigger Bot) или коррекция угла (Aimbot).
Также, я не могу не рассказать про еще одну подкатегорию читов. Именно:
-
user mode читы
-
kernel mode читы
-
DMA читы
User Mode — наш чит — обычная программа, которая имеет такой же уровень доступа, как и сама кс2 (в Windows есть 2 уровня прав доступа, ring 3 и ring 0.) Наша программа лежит в самом низком уровне. ring 3. 90% читов в сегменте кс2 работают именно на таком режиме. Это самый легкий способ реализации, однако в реалиях кс2 он работает прекрасно.
Kernel mode — ядро Windows — kernel.dll — ring 0 библиотека. Она имеет доступ ко всему на Вашем компьютере. Это драйвер. Именно поэтому, можно написать свой драйвер, который будет работать на уровне ядра Windows. То есть тем самым чит — это «всемогущая» программа на ПК, которая имеет доступ ко всему. Интересно, но до относительно недавнего времени на Faceit было можно играть с читами ring 0 доступа при некоторых ухищрениях. Именно поэтому ввели правило обязательного Secure Boot (параметр, который позволяет загрузить только подписанные драйвера, а у нашего драйвера подписи быть априори не может).
DMA — напрямую к материнской плате подключается DMA карта, которая передает информацию на второй ПК, на котором установлен чит, и со второго ПК на наш основной. Это позволяет 100% обходить все античиты. Это происходит потому, что драйвер — античит не видит ничего подозрительного. Для него на программном уровне в системе ничего не происходит. Вычислить игрока с DMA можно исключительно по паттернам поведения. (на Faceit DMA маскируются под Wifi или другие модули, игроки с DMA живут в среднем 3 — 6 месяцев). Минус такой системы — цена, в среднем, дешевый DMA с прошивкой обойдется в 30–40к рублей, без учеты специального ПО и второго вычислительного устройства.
ИИ читы работают примерно так же, как и DMA — отправляют информацию на ПК с запущенной и заранее обученной ИИ, которая в свою очередь через специальное устройство, которое имитирует действие мыши наводится на врага. Однако, сделать ESP в таком виде софта не возможно.
Таким образом, читеры на данный момент имеют огромный потенциал для разработки инструментов жульничества. Все ограничивается только средствами и знаниями.
Психология читера
Наверное, практически все, кто встречал читера, задавались вопросом, «зачем он это делает?». «Ему весело?». И ответ кроется вот в чем:
Софтер — не четкая группа людей по одному признаку, а большая и разная структура, которая использует ПО для разных задач.
К примеру, это может быть простое повышение рейтинга на своем аккаунте, или буст рейтинга за деньги(это намного дешевле чем буст с действительно сильным игроком), развлечение в паблике или ММ, желание показать другим, что читер якобы силен. Причин много, но ясно одно – в основе всегда лежит неудовлетворенность. Ему не нужен процесс, ему нужен результат. Красивые цифры в профиле, которые показывают его силу, доминацию над простыми игроками. Будет неуместно, ну ладно. Читеры в основном – дети и подростки, которые хотят показать свою “силу” перед друзьями или другими игроками, и, наверное, это нормально. Это основа несформировавшейся психики человека. которая должна пройти с возрастом.
Читерство — это не про игру. Это про то, что человек не может принять реальность.
В спорте есть допинг. В школе — шпаргалки. В CS2 — софт.
Проблема не в игре. Проблема в человеке.
И пока существуют люди, которые хотят «победить любой ценой» — читы будут существовать. Но это не значит, что такие все.. Честных игроков всё равно больше.
Что такое Trust Factor. Известные способы его улучшения. Как обезопасить себя от игры с читерами
Valve не публикует информацию, касаемо работы системы TF(Trust Factor). Вся информация, приведенная ниже, была собрана исключительно по наблюдениям игроков на протяжении большого промежутка времени.
TF – система доверия, которая показывает, на сколько аккаунту “можно доверять”.. Различают 3 группы: зеленый, желтый и красный. Группы не имеют четких границ перехода, а строятся на качестве подбора тиммейтов и противников в играх.
К известным факторам TF относят:
-
количество часов в игре
-
количество активности
-
количество друзей с высоким уровнем профиля в Steam
-
наличие внутриигровых покупок и их количество
-
история аккаунта
-
количество медалей “за службу”
-
подключен ли Steam Guard
-
привязан ли номер телефона
-
количество репортов от других игроков
-
поведение внутри игры(урон по тиммейтам или оскорбления в текстовом чате)
-
получение временного vac – live бана
В Зависимости от поведения игрока, TF может как опускаться, так и повышаться. Процесс падения траста – очень распространенный и весьма быстрый. а вот повышение наоборот, очень трудоемкий и времязатратный процесс.
Можно ли как – то манипулировать трастом? Вероятно.
Группой людей, известных в узких кругах было проведено некоторое расследование. которое показало, что при депе ~25к рублей на баланс стим действительно повышается траст фактор. Однако делает это незначительно.
Поэтому самыми лучшим способами не играть с читерами являются:
-
не быть софтером
-
не токсичить чате(есть кнопка “пожаловаться на поведение” в профиле любого игрока)
-
не мешать играть другим
-
играть регулярно, наигрывать часы
-
не играть в пати с игроками, имеющими низкий траст и потенциально являющиеся читерами.
Vac Live
Переходим к одной из самых известных тем в мире кс2. К теме античита игры.
В csgo античит был клиентский. То есть он сканировал ПК на наличие вредоносных и потенциально опасных программ до запуска игры и во время матчей. Сейчас же ситуация другая:
Мы не можем инжектить в игру никакие DLL обычными методами инжекта без флага -insecure в свойствах игры. Однако существуют продвинутые методы инжекта, которые позволяют внедрить DLL в игру.
Человек скачал чит, нажал кнопку инжекта, открылась игра, он вошел в матч. И тут в дело вступает одно из самых спорных решений Valve — нейросеть для поиска читеров Vac Live.
Должен заметить, что Vac Live – действительно улучшается. Он работает. Но работает против откровенно rage софтеров, которые не скрывают свою нечестную игру, порой устраивая на серверах HVH(hack versus hack)
Вот как приблизительно работает Vac Live:
Вероятно существует два модуля, один — алгоритмический статистический анализатор, который анализирует всю метрику и статистику каждого на сервере. Второй — ИИ анализатор, который считывает движение прицела, движения модели и прочее.
Перед этим, важно разобраться, как работает АИМ в читах чуть более подробно:
У каждой модели есть хитбокс. Центр этого хитбокса и хранится в памяти игры. Поэтому простые читы выполняют алгоритм наведения ровно в центр хитбокса модели. Это детектится античитом и банится. Однако существуют хорошие продукты, которые выполняют алгоритм наведения умнее:
Извлекаются координаты центра нужного хитбокса модели, берется случайное число в некотором диапазоне и прибавляется к координатам центра хитбокса. Тем самым софт стреляет не в центр. а чуть правее, левее, выше или ниже. Это дает системе видимость, что играет человек, также могут использоваться мультипоинты.
Мультипоинты — это технология, которая позволяет создавать вокруг центра хитбокса в некотором диаметре n — количество контрольных точек, и софт, выбирая цель для наведения, выбирает не центр хитбокса. а любую из ближайших точек. Это позволяет скрывать аим от системы vac Live.
Важно:
функции, типа Rapid Fire*, No spread и прочих эксплойтов банятся 100%, возможно даже без участия самого Vac Live, а за счет алгоритмического анализа.
Rapid Fire – эксплойт в кс2, который путем замены и задержки пакетов информации позволял делать одновременно несколько выстрелов.
Как же отличить человека, который использует радар или ESP от действительно сильного игрока?
-
С опытом.
Но для ИИ античита кс2 эта задача пока непосильна. И Valve можно понять. Если забанить какого – нибудь про игрока за подозрительные действия на карте – начнется скандал, который опустит репутацию античита.
Тем самым, что мы имеем:
Аналитический live античит, который банит только очевидные эксплойты и видимый, некачественный аим. Античит пока не способен полностью избавить игру от читеров, так что остается надеяться на Faceit AC….
Faceit AC? На деле его тоже можно обойти.
Во – первых, как было рассказано выше, DMA софты позволяют загружать любой софт и играть с ним, не боясь разоблачения со стороны античита. Уязвимым местом является только сама подозрительная игра и жалобы от других игроков.
Во – вторых, на FaceIT работал, или, возможно, сейчас работает, Lag Switch.
Это программа, которая позволяет программно отключать интернет. Тем самым можно сделать пик, увидеть врага, включить интернет нажатием клавиши на клавиатуре и выйти префаером. Однако такой вид софта сложно назвать полезным, и исправить эту уязвимость достаточно легко.
Поэтому удаляйте кс…
На деле, мало кто будет вкладывать в игру для обхода античита более 50к рублей,так что пока можно жить спокойно.
Главная проблема Valve
Главной проблемой Valve, как ни странно, являются читеры. Как бы не были сильны программисты компании, которые сделали бесподобный Source и Source 2, создать воистину сильный античит задача порой непосильная. Это проблема не только Valve, но и многих других компаний. Единственное решение в этом случае — вести беспрецедентную, постоянную и полномасштабную войну против софтеров, используя все передовые методы. и только тогда, возможно, получится избавить игру от читеров.
Почему же Valve не сделают клиентский античит, как сделали Riot Games в Valorant, или тот же самый Faceit?
Прямого ответа не знает ни кто. Компания делает упор на анализ поведения игроков. при этом имея слабую защиту в плане инжекта и чтения памяти, на мой взгляд, это глупо. Однако мы не можем судить Valve. Возможно, в офисе сидят инженеры с 200 IQ и продумывают наперед 20 шагов и когда‑нибудь мы получим настоящий Vac live.
Автор: lamonosik1


