Нужно больше DENUVO! Теперь в борьбе с читерами. А получится ли??

Нужно больше DENUVO! Теперь в борьбе с читерами. А получится ли?? Denuvo, Читер, Юмор, Cracklab, DRM, Длиннопост, Взлом, Техническое

Согласно проведенным исследованиям Британских, ой! нет! не будем позорить их доброе имя! Итак, согласно проведенным исследованиям Нидерландских ученых, работающих в компании Irdeto: 61% геймеров в Соединенном Королевстве и Германии плохо относятся к читерам. Очевидно, что остальные 39% Германских и Английских игроков - это были сами читеры. Неплохое соотношение, да.

Тем не менее, руководствуясь данном логикой и совсем немного - получением денежного профита со всей 100% части геймеров в недрах Irdeto родилась гениальная идея срубить новую анти-чит систему Denuvo Anti-Cheat в рамках вступления в НАТО коалицию ESIC (Esports Integrity Coalition). Товарищ Блаукович, выступая на очередном съезде данной организации сказал буквально следующее:

“We must continue to combat cheating in both online multiplayer games and Esports, and our membership of ESIC is a symbol of our commitment to protecting legitimate players from the negative impact of cheating.” (Reinhard Blaukovitsch, Managing Director of Denuvo, Irdeto)

При этом зал встретил бурными овациями слова товарища Блауковича. Первый секретарь ESIC, товарищ Смит горячо поддержал предыдущего оратора своим высказыванием:

“It is always wonderful to welcome new members into the Coalition. The addition of Denuvo will support our efforts to keep Esports safer against the threat of cheating, match manipulation and betting fraud.” (Esports Integrity Commissioner Ian Smith)

Комплексное решение анти-читинга, по словам разработчиков денуво, должно быть обеспечить 100% (ох! лол) контроль целостности данных игры и предотвратить их изменение.

Нужно больше DENUVO! Теперь в борьбе с читерами. А получится ли?? Denuvo, Читер, Юмор, Cracklab, DRM, Длиннопост, Взлом, Техническое

Небольшая аналитика для нового тренда DENUVO, и что по существу из этого может выйти.

*******************************************************************************************

На самом деле мало кто помнит, но создатели DENUVO изначально позиционировали своё детище, как систему против читеравства (!!!). Anti-tamper - это покрытие критичных кусков кода игры от постороннего вмешательства.

Anti-tamper сольюшн, как анти-читер сольюшн.Достигалось это тем, что критичный код помещался под виртуальную машину (VMProtect, и последующий CPS style), а переменные в игрушке разбавлялись дополнительным защитным кодом DENUVO (туда встраивалась инструкция CPUID для симуляции проверки лицензии).

Нужно больше DENUVO! Теперь в борьбе с читерами. А получится ли?? Denuvo, Читер, Юмор, Cracklab, DRM, Длиннопост, Взлом, Техническое

Ввиду того, что VMProtect был скомпроментирован не один раз, а так-же существуют рабочие способы патчинга самого VMProtect и кода DENUVO, защита на таком подходе представляется малоэффективной. Код всё равно найдут, отреверсят и изменят, как бы разработчики не старались.

Постоянный контроль переменных в игре, как анти-читер сольюшн. Все (ну, или большая часть)отлично знают и помнятArtMoney. Допустим у нас есть 1 000 голды - из неё нужно получить 1 000 000 голды. Нет проблем -  вбиваем значение 1 000, ищем в памяти игрушки, отсеваем, находим нужное, правим на 1 000 000. Всё! Экономика встала с колен, можно клепать сотнями мамонт-танчики, "Кировы", купить дорогущие артефакты и выиграть игру (this is no cow level). Но тут появляется DENUVO и говорит: "эй! пацачник, а теперь расскажи мне, как ты заработал свой первый миллион, когда у тебя пять минут назад все харвестеры сожрали песчаные черви и нет ни одного перерабатывающего завода?" ... На самом деле,эта шутка с большой долей правды. Начнем с того, что защита может шифровать данные в памяти, и тогда без анализа кода, который манипулирует этими данными, сложно найти истину. Впрочем:

1. Не забываем, что VMProtect и виртуальная машина CPS были уже скомпроментированы множество раз.

2.Алгоритм шифрования переменных (денег, голды, жизней, другого профита) не может быть намного сложнее, чем какой нибудь тривиальный XOR(исключающее или).

3. Сам алгоритм контроля из-за многопоточного взаимодействия (всякие EnterCriticalSection, LeaveCriticalSection и InitializeCriticalSection) должен работать мгновенно и не иметь лишнего мусора.

В современных играх значения переменных будут меняться очень очень быстро и сильно варьироваться, т.е. для принятия решения назвать геймера читером DENUVO должен иметь крайне веские основания и железные факты, которые требуется собрать за достаточно длительный промежуток времени (например, полное отсутствие харвестеров и перерабатывающих заводов, а так-же иных источников поступления денег).

Нужно больше DENUVO! Теперь в борьбе с читерами. А получится ли?? Denuvo, Читер, Юмор, Cracklab, DRM, Длиннопост, Взлом, Техническое

Что имеем в итоге:


1. Если в логике принятия такого решения не учитывать все факторы, то от некорректной работы страдать будут честные геймеры (например, DENUVO забыла, что Вы построили 10 научных лабораторий, которые при продаже дали Вам 1 000 000 голды)


2. Ввиду сложности и многогранности реализации такой процедуры процедуры, защитный код проще найти и нейтрализовать (за один заход требуется обратиться к большому количеству данных).


3. Как показывает практика, DENUVO не особо заботится о защите переменных - на изменение/подделку Вашего HWID для лицензии (данные в системных структурах Windows - KUSER_SHARED_DATA, Process Enviroment Block...) защите, по факту, как-то по барану и бубну тоже, что доставляет:

Нужно больше DENUVO! Теперь в борьбе с читерами. А получится ли?? Denuvo, Читер, Юмор, Cracklab, DRM, Длиннопост, Взлом, Техническое

Черный список приложений (исполняемых файлов читов), как анти-читер сольюшн.  Собственно самый древний и боянистый способ контроля, известный ещё с ранних версий SecuROM (ЦАРСТВО НЕБЕСНОЕ ЕМУ!), и даже ещё раньше.Вернемся к многострадальному ArtMoney. Как там называется файл, который запускается на исполнение? ArtMoney.exe Отлично! Тeперь, любой, у кого в списке процессов ArtMoney.exe, будет навечно иметь клеймо 'читер'. Эм! Ну в смысле для DENUVO :))) Кроме списка запущенных процессов, которые обычно любая защита получает с помощью:

HANDLE CreateToolhelp32Snapshot(

DWORD dwFlags,

DWORD th32ProcessID

);

используются типичные WinAPI для поиска окошек:

HWND WINAPI FindWindow(

_In_opt_ LPCTSTR lpClassName,

_In_opt_ LPCTSTR lpWindowName

);

HWND WINAPI FindWindowEx(

_In_opt_ HWND hwndParent,

_In_opt_ HWND hwndChildAfter,

_In_opt_ LPCTSTR lpszClass,

_In_opt_ LPCTSTR lpszWindow

);

Ввиду того, что производители читов обожают разукрашивать свои творения, впихивая туда тонны музыки и картинок, юзаются более продвинутые методы определения типа парсинга ресурсов.

Некоторые особо продвинутые инжектятся динамической библиотекой (DLL) в игрушку, и управляют количеством профита из неё. Тогда в дело вступают такие WinAPI функции:

BOOL EnumProcessModules(

HANDLE hProcess,

HMODULE *lphModule,

DWORD cb,

LPDWORD lpcbNeeded

);

DWORD WINAPI GetModuleFileName(

_In_opt_ HMODULE hModule,

_Out_ LPTSTR lpFilename,

_In_ DWORD nSize

);

Что в итоге:

как видите, тонкости работы данного метода давно известны и превосходно документированы. Irdeto не придумает здесь ничего нового. Черные списки можно контрить. Функции WinAPI перехватывать и возвращать подложные данные. Короче, боян.


Контроль текстур, как анти-читер сольюшн. Пожалуй, один из самых распространенных методов читерства (в некоторых случаях, самый главный) в онлайн-играх. Текстуры, мапхаки...

Нужно больше DENUVO! Теперь в борьбе с читерами. А получится ли?? Denuvo, Читер, Юмор, Cracklab, DRM, Длиннопост, Взлом, Техническое

Завязан на изменении файлов текстур (DSS), изменении логики работы рендера и тд. Как уже было неоднократно сказано - у DENUVO, на самом деле, очень плохо обстоят дела с контролем целостности себя и, тем более, исходного кода игрушки. В текущем виде защита может делать проверку целостности файлов в памяти и на диске, но здесь очень много нюансов, которые мешают выполнять данные защитные функции эффективно (например, всё тот же перехват WinAPI, тонкости работы DirectX/Vulkan/OpenGL). Ниже представлен пример работы защищенной DENUVO игры Unravel с текстурами, как видите, данная часть кода абсолютно открыта и свободно просматривается в дизассемблере IDAPro:

Нужно больше DENUVO! Теперь в борьбе с читерами. А получится ли?? Denuvo, Читер, Юмор, Cracklab, DRM, Длиннопост, Взлом, Техническое

Что в итоге: понятно, что всё зависит от реализации. Но, вряд-ли в Irdeto смогут сделать эффективную защиту против текстурохаков не решив старые и всем известные проблемы самой DENUVO.


Что ещё можно добавить к вышесказанному? Разве что, напомнить о существовании всяких FairFight, PunkBuster, VAC (Valve Anti-Cheat) ... тысячи их!

Нужно больше DENUVO! Теперь в борьбе с читерами. А получится ли?? Denuvo, Читер, Юмор, Cracklab, DRM, Длиннопост, Взлом, Техническое

Несмотря на долгий срок существования и солидный опыт в борьбе с читерством, сама проблема решена не была. И тут появляется DENUVO ... а мы посмотрим, что из этого получится.


p.s. данная статья была написана для анализа деятельности DENUVO и компании Irdeto.

Лига Геймеров

44.1K постов88.8K подписчика

Добавить пост

Правила сообщества

Ничто не истинно, все дозволено, кроме политоты, за нее пермач, идите на ютуб
Помни!
- Новостные/информационные публикации постим в pikabu GAMES
- Развлекательный контент в Лигу Геймеров



Нельзя:

Попрошайничать;

Рекламировать;

Оскорблять участников сообщества;

Нельзя оценивать Toki Tori ниже чем на 10 баллов из 10;

Выкладывать ваши кулвидосы с только что зареганных акков - пермач

4
Автор поста оценил этот комментарий
Взломал фотошоп на опыт??
раскрыть ветку
16
Автор поста оценил этот комментарий

У борьбы с читерством есть обратная сторона: при невозможности читернуть в синглплеере, его окончательно переведут на микротранзакции, а играть честно будет проблематично. Так что палка о двух концах.

раскрыть ветку
8
Автор поста оценил этот комментарий

античитом может считаться только то, что не даст левому софту доступа к NtReadVirtualMemory/NtWriteWirtualMemory/NtSetContextThread/NtGetContextThread/NtCreateThread

- а это драйвер. у меня всё.

раскрыть ветку
4
Автор поста оценил этот комментарий
Ничего не понял, но мне понравилось
1
Автор поста оценил этот комментарий

"Ниже представлен пример работы защищенной DиNUVа игры Пnrаvеl с текстурами, как видите, данная часть кода абсолютно открыта и свободно просматривается в дизассемблере NDAПг0" скриншот далее не попадает под всякие законы о мемасах и етц, ведь там опубликован для всех дизассемблированный код продукта, что явно запрещено eula? Текущее состояние дремувы и игродела - противостояние 0day крякам к актуальным версиям, с попеременным успехом они с этим справляются. Проблемы современных античитов связаны с дырами в таргет ОС, даже с BE паблик получение дублей хендлов работало больше года... плюс все эти античиты ПРО уровня в разы увеличивают стоимость читов и сами подогревают интерес. Как бы все не ругали некий Сюрваривум, но там сетевая модель вида "все вычисления одинаковы на сервере и клиенте" отрубает целую лавину манипуляций спидхаками, антиотдачами и прочим, так как ирдето на слуху как разработчик одноименной системы условного доступа, то есть вероятность движения в эту сторону - заворачивание всего трафика на их сервера для анализа валидности, а дремува будет крутить на проте сеть.