Автору респект за перевод, конечно в некоторых местах есть неточности — но они незначительны.
Оригинал же статьи по сути ничего реально интересного не предложил, статья на уровня — КЭП сказал.
То что автор этой статьи пишет книгу по разработке ММО, не делает его специалистом по античитам.
Просто прокомментирую те моменты где я не совсем согласен с автором:
2. Большинство движков защиты к которыми я работал имеют свой SDK для встраивания, правда обычно разработчики не всегда следуют Protection Guidelines и отсюда растут проблемы в большинстве случаев.
8. Политика блокировок проста — если игра F2P, то делают — лицензия на временный доступ, все кто хочет — могут просто посмотреть на Blizzard WoW, там сделано очень качественно.
11. На .NET при желании можно сделать не хуже систему защиты, просто большинство игр на Unity или в целом на .NET не сильно думают об этом. Сама среда исполнения CLR допускает ОЧЕНЬ много хитрых моментов, а поскольку реверс байткод не настолько хорошо исследован как скажем реверс нативного кода — это может быть наоборот плюсом.
22. Ну это как правило бесполезно, потому что лечить следствие, а не причину — причина — «Получение преимущества», например в шутера — гораздо эффективнее искать не сам чит, а скорее аномальное поведение игрока, т.е. сначала играл очень плохо с КД 0.8, а потом вдруг резко КД стал 5+, вот тогда и нужно проводить анализ.
1) Конфигуратор на Python это конечно интересно, но ведь это же не node.js — почему нельзя было использовать что-то более приземленное?
2) Уже известно под какой лицензией будет код?
3) Поскольку решение как я понимаю должно быть кроссплатформенным — вы не думали сделать тулчейн на node.js или java или С++?
Ну на РУ материала я мало видел — из известного только Armadillo CopyMemII — https://exelab.ru/art/?action=view&id=81
Рекомендую читать все на англ. материала намного больше.
Пишу и то и то :)
P.S. на тему реверса Овера лучше почитать тут — https://www.unknowncheats.me/forum/overwatch/ там местами пишут очень хороший контент :)
Это открывает очень широкую область во временном читерстве, в свое время она присутствовала активно в BF4 — с его логом отложенного урона, т.е. вы отправляете пакет со сдвигом во времени -2 секунды, как итог — человек забежал за угол, кого-то еще убил — а потом типа умер от вас :)
— Ну время покажет, перейдут ли они на 2 версию движка и будет ли новый нормальный UI
— Этот сайт НЕ аффилирован к Valve, также как и dotabuff для Dota2 не аффилирован к Valve — я же говорил в целом о том что в любой соревновательной игре — сам разработчик должен предоставлять инструменты аналитики
— Последние 2 месяца не было времени играть в CS:GO, поэтому подтвердить или опровергнуть это увы не могу.
По моему опыту — более агрессивны это «хейтеры читеров», любое упоминание читеров которое отлично от их собственного по результату вызывает у них острое возгорания всеми известной точки.
После многих лет — это добавили в CS:GO, там сделано почти так — как вы описали, т.е. вы получаете информацию о том где находиться игрок только в том случае если он находиться за пробиваемой стеной (вроде ворот на de_dust2) или очень близко за углом.
На счет варианта с аимботом тоже не все так просто — дело в том что протокол используемый в CS:GO — UDP, он не гарантирует доставку сообщений, таким образом может быть ситуация когда положение игрока изменяется слишком резко из-за проблем в сети и появляется эффект мгновенной смены движения. в FairFight SDK есть пример аимбот детектора на стороне сервера и там код достаточно сложный, т.е. в принципе можно использовать детекцию на базе углом обзора и углов поворота, но это не 100% панацея.
Используется усредненная модель, т.е. чтобы пинг подскочил так сильно — у всех остальных игроков он тоже должен подняться.
Все просто — если у всех игроков пинг 200, а у вас 20 — не считаете ли вы что это необоснованное преимущество?
Для решения этой проблемы есть 2 выхода — (1) играть на серверах своего региона, чтобы у всех игроков был пинг примерно одинаковый или (2) принять условия игры с ограничением по пингу.
Данное правило необходимо только лишь для соревновательных игр.
Походу фанаты кейсов набежали xD
Теперь представьте мир когда читеров нету, никто не реверсит игру и не показывает какой там говно код — как итог разработчикам нету смысла что-то улучшать.
Простой пример Rainbox Six Siege, пока разработчиков не достали читеры — они особо и не занимались игрой.
Если бы вы разбирались в программировании — то знали, что это далеко не тривиальная задача, это если кратко.
Я бы мог объяснить — но без знания программирования у того кто хочет узнать, это сложно объяснить.
Нет, не вызовет — вы заходите на сервер, там написано что средний пинг игроков 50ms, ваш пинг 10ms и он будет повышен — вы согласны? (если Нет — то выход с сервера) Игрок у которого нормальный скилл — ему будет все равно, а для тех кто тащит исключительно за счет того что у него пинг самый низкий = будет «то что обычно пишут в чатике КСки» :)
Эта справедливость должна быть поскольку игры стали киберспортом. Вы где-нибудь видели на ПРО сцене чтобы боксеры разных весовых категорий дрались на одном ринге? Например тяжеловес против легковеса? Вот тоже самое и в онлайн играх должно быть.
К сожалению такого не видел.
Вот именно, на LAN этой проблемы нету, но вот в ранговом матчмейкинге — очень даже.
Сейчас я занимаюсь разработкой одного прототипа шутера который реализует эту особенность — т.е. сводит на нет технические факторы, чтобы в итоге решал не тот — у кого пинг лучше, а у кого реакция и другой соревновательный компонент лучше.
Вообще это решало VAC HWID Spoof — но когда еще ДО банов говорили людям его использовать, как правило все писали «да кому это нужно — по железу то не банят», ну а после все линкованные акки когда были забанили — они вспомнили.
VAC3 собирает богатую информацию о системе, в т.ч. MAC сетевой карты — обычно по этому показателю и делают детекты.
Попробуйте реверсить Blizzard Overwatch — там применена схема с многопоточной расшифровкой страниц на лету и их собственный античит (НЕ путать с Warden для WoW).
Тем не менее число читеров (особенно на Азии) просто зашкаливает.
А все кто не хочет эту «бадягу» декодировать — сделали OpenCV based аимбот — который с учетом скорости игры работает на ура для Солдата и других героев с well predictable типом оружия.
Обычно он этого не делает, только если вы были помечены как suspect и вам была загружена кастомная версия модуля VAC3, по дефолту таких сканирований нету.
Я не думаю что это имеет особый смысл. Valve сейчас это отдали на откуп сторонним площадкам вроде ESL (AC — ESL Wire), Faceit (AC = Faceit AC), EAC (AC = EasyAntiCheat) и т.д.
То что Valve подняли эту тему — я думаю лишь пыль в глаза чтобы закрыть такие вещи как то — что игра скатывается. Значительных обновление клиента нету — переезда на Source2 тоже нету, все что они делают это выпускают новые кейсы и скины.
Много игроков уже очень давно просило о переработки или обновлении таких вещей как:
— игровой интерфейс — поскольку сейчас он ужасен
— внутриигровой статистики (которая по факту как была с времен мамонтов так и была)
— качество подбора игроков в соревновательном матчмейкинге
Этого НИЧЕГО нету, и вместо того чтобы принести что-то реальное, они объявляются о введении ИИ который (1) никто не проверит есть ли он или нет, поскольку он работает на сервере и (2) читерам будет как-то пофиг.
P.S. Valve не бореться с читерами и не ставит ограничение на ранкед как это сделано в Dota2 по той причине чтобы люди покупали заново копию CS:GO — это бизнес. По факту со своей моделью CS:GO это F2P игра, но Valve специально ее такой не делают. Поэтому я готов поспорить что Valve сделают качественный античит не раньше чем сделают эту игру бесплатной.
В некоторых случаях мотивы совсем иные.
Простой пример, как вы знаете в некоторых онлайн играх — например BF4, есть понятие герцовка сервера — т.е. 30, 60, 120ГЦ.
Если вы играете в соревновательный режим Доминирование, то как правило люди ставят 120Гц., т.е. задержка на обработку игрового мира ~8.5ms.
Теперь прошу сравнить игрока с пингом 5ms который фактически живет рядом с сервером и имеет железо которое будет выдавать 120fps для 120Hz его монитора и второго человека у которого пинг 120ms и железо которое выдает 40-50fps с монитором на 30Hz.
Первый игрок — задержка перед появлением игрока = 8-10ms (100-120 net fps), 100% отправленных пакетов выстрелов
Второй игрок — задержка перед появлением игрока = 120ms (8 net fps), 13-15% отправленных пакетов выстрелов
Об этом факте часто замалчивают, но этот факт есть. Если бы в «соревновательных» (а именно в них) — был бы «честный» режим — т.е. например общий пинг для всех и т.д., то это как минимум уменьшило бы необходимость читерства на 30%.
Как говорит практика — люди используют читы на соревнованиях, CS:GO сцена этому подтверждение. Можно загуглить на эту тему — материалы и пруфы в сети есть.
Оригинал же статьи по сути ничего реально интересного не предложил, статья на уровня — КЭП сказал.
То что автор этой статьи пишет книгу по разработке ММО, не делает его специалистом по античитам.
Просто прокомментирую те моменты где я не совсем согласен с автором:
2. Большинство движков защиты к которыми я работал имеют свой SDK для встраивания, правда обычно разработчики не всегда следуют Protection Guidelines и отсюда растут проблемы в большинстве случаев.
8. Политика блокировок проста — если игра F2P, то делают — лицензия на временный доступ, все кто хочет — могут просто посмотреть на Blizzard WoW, там сделано очень качественно.
11. На .NET при желании можно сделать не хуже систему защиты, просто большинство игр на Unity или в целом на .NET не сильно думают об этом. Сама среда исполнения CLR допускает ОЧЕНЬ много хитрых моментов, а поскольку реверс байткод не настолько хорошо исследован как скажем реверс нативного кода — это может быть наоборот плюсом.
22. Ну это как правило бесполезно, потому что лечить следствие, а не причину — причина — «Получение преимущества», например в шутера — гораздо эффективнее искать не сам чит, а скорее аномальное поведение игрока, т.е. сначала играл очень плохо с КД 0.8, а потом вдруг резко КД стал 5+, вот тогда и нужно проводить анализ.
2) Уже известно под какой лицензией будет код?
3) Поскольку решение как я понимаю должно быть кроссплатформенным — вы не думали сделать тулчейн на node.js или java или С++?
Рекомендую читать все на англ. материала намного больше.
Пишу и то и то :)
P.S. на тему реверса Овера лучше почитать тут — https://www.unknowncheats.me/forum/overwatch/ там местами пишут очень хороший контент :)
— Этот сайт НЕ аффилирован к Valve, также как и dotabuff для Dota2 не аффилирован к Valve — я же говорил в целом о том что в любой соревновательной игре — сам разработчик должен предоставлять инструменты аналитики
— Последние 2 месяца не было времени играть в CS:GO, поэтому подтвердить или опровергнуть это увы не могу.
На счет варианта с аимботом тоже не все так просто — дело в том что протокол используемый в CS:GO — UDP, он не гарантирует доставку сообщений, таким образом может быть ситуация когда положение игрока изменяется слишком резко из-за проблем в сети и появляется эффект мгновенной смены движения. в FairFight SDK есть пример аимбот детектора на стороне сервера и там код достаточно сложный, т.е. в принципе можно использовать детекцию на базе углом обзора и углов поворота, но это не 100% панацея.
Все просто — если у всех игроков пинг 200, а у вас 20 — не считаете ли вы что это необоснованное преимущество?
Для решения этой проблемы есть 2 выхода — (1) играть на серверах своего региона, чтобы у всех игроков был пинг примерно одинаковый или (2) принять условия игры с ограничением по пингу.
Данное правило необходимо только лишь для соревновательных игр.
Теперь представьте мир когда читеров нету, никто не реверсит игру и не показывает какой там говно код — как итог разработчикам нету смысла что-то улучшать.
Простой пример Rainbox Six Siege, пока разработчиков не достали читеры — они особо и не занимались игрой.
Я бы мог объяснить — но без знания программирования у того кто хочет узнать, это сложно объяснить.
Эта справедливость должна быть поскольку игры стали киберспортом. Вы где-нибудь видели на ПРО сцене чтобы боксеры разных весовых категорий дрались на одном ринге? Например тяжеловес против легковеса? Вот тоже самое и в онлайн играх должно быть.
К сожалению такого не видел.
Вот именно, на LAN этой проблемы нету, но вот в ранговом матчмейкинге — очень даже.
Сейчас я занимаюсь разработкой одного прототипа шутера который реализует эту особенность — т.е. сводит на нет технические факторы, чтобы в итоге решал не тот — у кого пинг лучше, а у кого реакция и другой соревновательный компонент лучше.
Насколько я знаю в CS:GO его не отменили, просто в основном применяют для хай рангов.
VAC3 собирает богатую информацию о системе, в т.ч. MAC сетевой карты — обычно по этому показателю и делают детекты.
Тем не менее число читеров (особенно на Азии) просто зашкаливает.
А все кто не хочет эту «бадягу» декодировать — сделали OpenCV based аимбот — который с учетом скорости игры работает на ура для Солдата и других героев с well predictable типом оружия.
P.S. по поводу Dota2 даю подсказку — смотреть посты от Fletcher (в архиве) на dev.dota2.com
То что Valve подняли эту тему — я думаю лишь пыль в глаза чтобы закрыть такие вещи как то — что игра скатывается. Значительных обновление клиента нету — переезда на Source2 тоже нету, все что они делают это выпускают новые кейсы и скины.
Много игроков уже очень давно просило о переработки или обновлении таких вещей как:
— игровой интерфейс — поскольку сейчас он ужасен
— внутриигровой статистики (которая по факту как была с времен мамонтов так и была)
— качество подбора игроков в соревновательном матчмейкинге
Этого НИЧЕГО нету, и вместо того чтобы принести что-то реальное, они объявляются о введении ИИ который (1) никто не проверит есть ли он или нет, поскольку он работает на сервере и (2) читерам будет как-то пофиг.
P.S. Valve не бореться с читерами и не ставит ограничение на ранкед как это сделано в Dota2 по той причине чтобы люди покупали заново копию CS:GO — это бизнес. По факту со своей моделью CS:GO это F2P игра, но Valve специально ее такой не делают. Поэтому я готов поспорить что Valve сделают качественный античит не раньше чем сделают эту игру бесплатной.
Простой пример, как вы знаете в некоторых онлайн играх — например BF4, есть понятие герцовка сервера — т.е. 30, 60, 120ГЦ.
Если вы играете в соревновательный режим Доминирование, то как правило люди ставят 120Гц., т.е. задержка на обработку игрового мира ~8.5ms.
Теперь прошу сравнить игрока с пингом 5ms который фактически живет рядом с сервером и имеет железо которое будет выдавать 120fps для 120Hz его монитора и второго человека у которого пинг 120ms и железо которое выдает 40-50fps с монитором на 30Hz.
Первый игрок — задержка перед появлением игрока = 8-10ms (100-120 net fps), 100% отправленных пакетов выстрелов
Второй игрок — задержка перед появлением игрока = 120ms (8 net fps), 13-15% отправленных пакетов выстрелов
Об этом факте часто замалчивают, но этот факт есть. Если бы в «соревновательных» (а именно в них) — был бы «честный» режим — т.е. например общий пинг для всех и т.д., то это как минимум уменьшило бы необходимость читерства на 30%.