Отсутствует denuvo что это
Перейти к содержимому

Отсутствует denuvo что это

DRM-защита Denuvo не выдерживает и дня, компания готовит 5-ю версию защиты

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

В последнее время защиту Denuvo всё чаще взламывают в течение 24 часов (!) после выхода игры. Такое происходило неоднократно. На этой неделе очередной жертвой стала игра South Park: The Fractured but Whole, которую «вскрыли» в течение суток. На прошлой неделе за такое же время взломали Middle Earth: Shadow of War, а в прошлом месяце кряки для Total War: Warhammer 2 и FIFA 18 вышли в день релиза. То есть издатели не получают практически никакой выгоды от этой защиты, а только несут расходы, выплачивая компании Denuvo роялти за использование её технологии.

Похоже, защита игр в нынешнем варианте малоэффективна. Косвенное подтверждение тому — история игры The Evil Within 2, которая предположительно применяла Denuvo для защиты копий, выпущенных перед релизом, но затем вышла официальная версия без этой защиты.

В момент своего появления больше трёх лет назад технология антипиратской защиты от австрийской компании Denuvo Software Solutions GmbH позиционировалась как самая продвинутая и надёжная. Она защищает исполняемые файлы от обратной разработки, дебаггинга и внесения изменений. В отличие от традиционных систем DRM, технология Denuvo Anti-Tamper не имеет специфических недостатков: она не требует постоянного онлайна, не налагает особых ограничений на количество активаций нового оборудования и позволяет играть на любом устройстве, куда её скачали и установили.

Первый кряк для игры, защищённой Denuvo Anti-Tamper (DAT), вышел в начале 2015 года. Это был кряк к игре Dragon Age: Inquisition, который появился примерно через месяц после релиза.

Хотя технология DAT лишилась ореола «непробиваемости», но срок в месяц вполне устраивал издателей, потому что львиная доля продаж игры приходится на первые 30 дней. Впрочем, дальше дело по анализу защиты DAT застопорилось. Вскоре появились сообщения, что китайские хакеры отказались от взлома ААА-тайтла Just Cause 3 из-за слишком больших сложностей. Возникли опасения, что технология Denuvo действительно слишком сложна для обратной разработки.

Ситуация изменилась во второй половине 2016 года, когда другая хакерская группа CONSPIR4CY (CPY) выложила в сеть взлом Denuvo в виде кряка для игры Rise of the Tomb Raider, который уже не требует Steam вообще. Хотя это было сделано через пять месяцев после релиза, но это был переломный момент. Хакерам удалось всё-таки подобрать ключи к защите.

Всего через несколько дней группа CPY взломала защиту игры Inside тем же способом, но с момента релиза прошло всего шесть недель. Дальше игры посыпались массово: Doom, Mirror’s Edge Catalyst, Deus Ex: Mankind Divided, Watch Dogs 2 и так далее. А 29 января 2017 года состоялся контрольный выстрел в голову Denuvo. Всего через пять дней после официального релиза игры Resident Evil 7: Biohazard группа CPY выложила взломанную версию на топ-сайте — и она в считанные часы разошлась по всем популярным торрент-трекерам.

Летом 2017 года многие игры с DRM-защитой Denuvo взламывались за срок от четырёх до девяти дней, в том числе Sonic Mania, Tekken 7 и Prey. Казалось бы, четыре дня — совсем небольшой срок, но даже он имеет значение для издателя, потому что за эти четыре дня он успевает продать значительное количество копий игры на волне пика её популярности. Если же кряк выходит быстрее чем за сутки — то массовая аудитория уже потеряна.

В такой ситуации издателям остаётся искать другой выход. Например, концентрироваться только на игровых консолях, где защита более надёжная. Или придумывать модели монетизации, где копия игры распространяется бесплатно, а издатель зарабатывает на продаже виртуальных товаров и оружия внутри игры. Например, компания Activision недавно запатентовала модель pay-to-win. Она предполагает различные способы поощрения игроков за совершение денежных транзакций в игре. Вот как это описывается в патенте: «Например, если игрок купил определённое оружие, то движок микротранзакций может подобрать ему игровую сессию, в которой это оружие высокоэффективно. Это создаёт у игрока впечатление, что определённое оружие было хорошей покупкой». Как предполагают разработчики игр, такая система «поощрит игроков совершать новые покупки в будущем для достижения таких же результатов в игре».

Представители компании Activision особо подчеркнули, что эта перспективная технология пока не используется ни в одной игре, в том числе в Destiny 2.

Впрочем, неэффективность Denuvo в данный момент не означает, что так будет всегда. Разработчики наверняка постараются обновить методы DRM-защиты. В сообществе крякеров ходят слухи, что компания готовит к выпуску некую «5-ю версию» защиты, которая может появиться со дня на день.

Что такое Denuvo и почему геймеры ненавидят её

Denuvo — это разновидность «digital restrictions management» или «DRM», если сокращенно, что означает технические средства защиты авторских прав. Технология Denuvo расстраивает геймеров на протяжении многих лет, и похоже на это есть весомая причина.

Что такое Denuvo

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

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

Denuvo не устанавливается отдельно, поэтому вы не увидите его в списке установленных программ на своем компьютере. Антипиратское ПО встраивается непосредственного в игру и работает во время ее запуска как один из компонентов. Хакерам потребуется сначала обойти защиту, что значительно усложняет процесс.

Как Denuvo влияет на производительность игры

Большинство игроков протестуют против решений Denuvo из-за того, что они создают проблемы для обычных игроков, которые покупают игры. Разработчики антипиратского решения не признают эти нападки, на официальном сайте размещено сообщение о том, что защитное ПО не оказывает ощутимого влияния на производительность и не несет ответственности за случаи сбоев в игровых файлах.

Разработчики TEKKEN 7 обвинили технологию Denuvo в проблемах производительности версии игры для ПК. Некоторые разработчики удалили антипиратское ПО после релиза своих игр. Ютуб-канал Overlord Gaming провел несколько тестов версий игр с Denuvo и без, как и следовало ожидать, технология защиты вызывает проблемы с производительностью в каждой протестированной игре. Среди самых основных проблем чаще всего встречаются: снижение скорости загрузки и падение FPS.

Успешна ли технология Denuvo

Большинство разработчиков продолжают использовать технические средства для защиты авторских прав, потому что это в некоторых случаях усложняет процесс взлома. На этот счет ресурс Crackwatch ведет статистику, которая отображает время, потраченное на взлом той или иной игры. Например, Doom взломали в первый день после релиза, а Assassin’s Creed: Origins сопротивлялась на протяжении 99 дней. Несомненно, эта возможность для разработчиков, которая обеспечила продажи в первые три месяца после релиза. На официальном сайте Denuvo красуется цитата от Square Enix:

Благодаря вам люди покупают игры.

Стоит сказать отдельное «спасибо» разработчикам, которые после факта взлома игры удаляют защиту из своих релизов. Таких разработчиков немного, но они есть. В большинстве случаев страдают игроки со слабыми конфигурациями, топовые игровые ПК прекрасно справляются с «защищенными» играми и показывают высокую производительность.

Denuvo не повсюду

Некоторые разработчики игр идут по другому пути. CD Projekt Red отказались от антипиратского ПО в третьей части Ведьмака. Игру может скачать любой желающий, эту ситуацию комментирует один из соучредителей компании:

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

Denuvo и подобные решения просуществуют еще долго, если остальные разработчики и издатели не будут придерживаться взглядов CD Projekt Red.

Что такое Denuvo и почему геймеры его ненавидят

Что такое Denuvo и почему геймеры его ненавидят

D enuvo — это решение для защиты от пиратства (DRM), которое разработчики игр могут включать в свои игры. Геймеры были разочарованы Denuvo в течение многих лет, и, по-видимому, по уважительной причине: согласно тестам, Denuvo замедляет игры.

Что такое Denuvo

Denuvo — это решение для управления цифровыми правами (DRM) для разработчиков игр. Они могут лицензировать Denuvo и интегрировать его в свои компьютерные игры. Программное обеспечение Denuvo обеспечивает защиту от пиратства. Он разработан для того, чтобы людям было сложнее «взламывать» игры и распространять их бесплатно. По словам Denuvo, он «останавливает обратный инжиниринг и отладку», необходимые для взлома игры.

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

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

Производительность игры

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

Denuvo утверждает, что это чушь. На официальном веб-сайте Denuvo говорится, что «Anti-Tamper не оказывает заметного влияния на производительность игры, и Anti-Tamper не виноват в каких-либо сбоях в игре подлинных исполняемых файлов».

Но есть много свидетельств обратного. Директор TEKKEN 7 обвинил DRM Denuvo в проблемах с производительностью в версии игры для ПК.

Некоторые разработчики игр удалили Denuvo из своих игр после выпуска. Overlord Gaming провела несколько тестов на версиях этих игр с Denuvo и без Denuvo. Как отмечает Extreme Tech, Denuvo вызывает проблемы с производительностью почти в каждой протестированной игре. От более длительного времени загрузки до падения частоты кадров, похоже защита Denuvo замедляет работу. Иногда после удаления Denuvo разработчиком производительность улучшается на 50%.

Препятствует взлому

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

Вы можете увидеть, сколько времени прошло, прежде чем игры Denuvo были взломаны. Некоторые игры, такие как DOOM, были взломаны в день их выпуска. Некоторые, например Sonic Mania, были взломаны через неделю после выпуска. Но Denuvo, похоже, делает свое дело — Assassin’s Creed: Origins не взламывали 99 дней.

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

На веб-сайте Denuvo есть цитата, приписываемая Square Enix: «Благодаря Вам, ребята, люди должны покупать игру».

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

Геймерам не нравится Denuvo, а разработчикам игр наоборот

В лучшем случае Denuvo ничего не сделает Вам, если Вы игрок, законно купивший игру. В худшем случае Denuvo вызывает проблемы с производительностью и означает, что Вам нужна более дорогая видеокарта и более быстрый процессор, чтобы играть в новейшие игры. Это ухудшает условия для честных клиентов. Люди с аппаратным обеспечением низкого уровня несут основную тяжесть ущерба, поскольку игровые ПК более высокого уровня могут справиться с проблемами и по-прежнему обеспечивать очень хорошую игровую производительность.

Для аргументации предположим, что Denuvo прав, и что Denuvo сама по себе не проблема. Это означает, что разработчики игр часто создают проблемы при добавлении Denuvo в свои игры. Так что, возможно, проблема в том, что разработчики игр не понимают Denuvo должным образом. Но в любом случае это хуже для геймеров. К сожалению, похоже, что разработчики игр не собираются в ближайшее время отказываться от Denuvo.

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

Не все используют Denuvo

Конечно, некоторые разработчики игр идут другим путем. CD Projekt Red вообще не использует никакого антипиратского программного обеспечения в The Witcher 3. Любой желающий может скачать и играть в него. По словам соучредителя CD Projekt Red и GOG:

Фактор пиратства не имел значения, потому что мы не можем заставить людей покупать вещи. Мы можем только убедить их сделать это. Мы полностью верим в пряник, а не в кнут.

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

Хроники битвы при Denuvo. Как «непробиваемая» игровая защита EA Origin оказалась пробиваемой

Публикуется в память о Крисе Касперски и в поддержку Voksi.

Да, эту статью можно было написать и раньше, но в жизни много других важных вещей. Работа в лаборатории, перемещения, моя муза и ее красный Ford Focus II за окном. На его капоте мирно таял свежий снег, когда начинался 2019 год. Мне же в голову начали лезть мысли о корпорации Electronic Arts, магазине Origin, игрушках Unravel и Battlefield 4, реализации EA DRM, Denuvo, VMProtect, и… все завертелось.

Если по Steam в Google можно наяндексить все что угодно — от кастомок до эмуляторов, то в связи с клиентом Origin вспоминается разве что динамическая библиотека ItsAMe_Origin.dll , которая вместо оригинала сама сабмитит запросы от клиента. Собственно, 100% пабликовых взломов Origin (3DM, CPY и другие) именно так и работают.

Прямо здесь начинается первый секрет: для взлома Origin вовсе не обязательно копировать систему ответов-запросов «клиент-сервер» (чаще всего это около десяти уникальных ID сообщений)! Потребуется чуть-чуть пореверсить клиент и поближе познакомиться с таким термином, как EA handle (далее — EAH). Но обо всем по порядку.

За рекламирование всякой ерунды, непомерные требования к ресурсам и вытекающую отсюда слоупочность официальный пакет Origin не ругает только ленивый, но мы пойдем дальше и покажем его уязвимую суть. На момент написания статьи вышла версия 10.5.31, а разбирать мы будем клиент 9.10.1.7. Принципиальной разницы между ними нет — EAH и там и там одинаков.

На наше счастье, клиент Origin SDK (который запихивается в саму игрушку) имеет много ошибок — как мелких, так и весьма серьезных. Например, при его работе остаются открытые хендлы объектов, для которых SDK почему-то забывает вызывать функции WinAPI RegCloseKey и CloseHandle . На это можно было бы закрыть глаза, но вот на вызов адреса с нулевым указателем можно смело сабмитить багрепорты.

Думаю, виной тому откровенная запутанность EAH: перегруженность критическими секциями и семафорами, а также фирменная рекурсия указателей на данные. В такой суматохе запросто можно забыть освободить выделенный блок памяти. Благо процедура уничтожения EAH срабатывает при выходе из игрушки (читай — вызове функции TerminateProcess ), что, по мнению буржуйских разработчиков, автоматом избавляет их от этой проблемы.

Вот теперь минутка лулзов, леди и джентльмены! Сказ о том, как Denuvo Software Solution навешивала anti-tamper уже на саму Origin SDK. Делали они это весьма неумело, так как не курили мануалов и не представляют, что именно требуется защитить от посягательства пиратов. Всю мякотку я вынес в отдельную часть статьи.

К сожалению, в отличие от SecuROM в код Denuvo Блаукович не вставлял анекдотов. Однако если следовать традиции, то здесь была бы уместна история про ковбоя, который на спор обмочил весь бар, но ни разу не попал в бутылку.

Вот что делает защита Origin SDK:

  • выполняет виртуализацию функции MD5_Update в процедуре отправки запроса;
  • использует константы Origin и игрушки для вставки инструкций cpuid/ret;
  • для отдельных указателей ret (return С++) в процедурах SDK выполняет переход в динамику с дальнейшей обфускацией Denuvo.

Зачем все это? Зачем ей все шелка, цветные облака… зачем?! У нас ведь есть EAH и целая функция инициализации Origin SDK, о которой Denuvo почему-то не знает.

Виталий Кличко устроился работать в Electronic Arts

Виталий Кличко устроился работать в Electronic Arts

Не отстают от Denuvo Software Solution и наши спортсмены-игроделы. Количество контекстов VMProtect достигло сорока для каноничной второй версии и десяти для третьей. Причем сначала они утрамбовали старую вторую, а сверху повесили третью для защиты целостности второй. Это примерно как если StarForce защищать при помощи SecuROM.

Признаться, в первый раз я несколько прифигел, когда автоматом накрыл все сорок контекстов VMP 2.x за один раз. Однако после проследования станции метро OEP (Original Entry Point), ближе к перегону загрузки kit-файлов игрушки Unravel (Unravel_dump_SCY_dump.exe) тулза Denuvo_Profiler собственной сборки начала сигнализировать о перезаписи патченных хендлов старого импорта каким-то сторонним кодом. For great justice — последние версии Denuvo так и защищали, что вывело новую породу гибридных протекторов.

Denuvo_Profiler: именно этими данными формируется Denuvo HWID для твоей машины, плюс расшифровка файла лицензии EA Origin и последующее извлечение секретной таблицы Denuvo

Denuvo_Profiler: именно этими данными формируется Denuvo HWID для твоей машины, плюс расшифровка файла лицензии EA Origin и последующее извлечение секретной таблицы Denuvo

EA DRM, OEP, dump

Первое, с чем придется столкнуться при взломе и отвязке игрушки от Origin, — это EA DRM. Опознать его легко по точке входа, которая катапультирует нас (jmp) в библиотеку Activation.dll или Activation64.dll — смотря какой разрядности винда. Вот как это выглядит у меня:

При наличии купленной игрушки в библиотеке EA DRM снимается не сложнее, чем распаковывается UPX. Вся процедура сводится к тому, что SDK получает AES-ключик для расшифровки контента. Если ключ верный, то дальше SDK сам восстанавливает секции и делает импорт. Дальнейший переход в OEP защищаемой EA игрушки обычно выполняется ближе к концу вызываемой процедуры (в моем примере это call r9 по адресу 000007FEF1687412), либо перед этим вызывается функция GetModuleHandleW .

Исходники отреверсенных потрохов Origin SDK ищи на exelab.ru.

Здесь сложности могут возникнуть разве что при перехвате управления. Дело тут в том, что игрушку с определенным каналом ( /SMOID=%хендл_от_CreateFileMapping% ) должен вызывать сам Origin.exe , да еще иногда по нескольку раз. Пока мы будем аттачиться к процессу — пропустим момент выхода на OEP из Activation(64).dll .

Лайфхак прост — сделать подмену библиотеки Activation(64).dll на свою с редиректом вызовов в оригинал. При подхвате управления выводим радостный MessageBox и ожидаем аттача. Прокачаться в этой теме можно в статье «Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL».

EA Origin SDK: Give me the handle and I’ll crack this!

Общая стратегия взлома Origin SDK (который инклудится в игрушку) имеет два разных сценария в зависимости от того, что ты хочешь получить в итоге. Первый вариант сложный, очень палевный и приватный. Он требуется для сетевых игр и обеспечивает возможность играть на официальных серверах. Через цепочку OriginGetDefaultUser — OriginRequestAuthCode («имя сервера», ex: GOS-BlazeServer-BF4-PC ) нужно получить код авторизации, а затем постучать этим AuthCode на сервер. Короче, это тема для отдельной статьи.

Второй вариант гораздо проще. Он пригоден для прохождения одиночных кампаний на локальном компе и никак тебя не запалит в сети. Его мы и рассмотрим подробнее.

Для начала отыщем в коде игрушки процедуру инициализации Origin SDK. Она получает от Origin.exe (в доках он часто называется OriginCore) данные о версии сервера, пользователе и другую подобную инфу, необходимую для дальнейшего запуска игрушки. Если же во время инициализации произойдет ошибка, то процесс попросту завершится, что не входит в наши планы.

Самое главное — эта подпрограмма создает EAH, а всю присланную инфу OriginSDK сливает в эту структуру. Обнаружить код инициализации Origin SDK можно по следующим признакам:

  • использование функции getenv из библиотеки msvcr_xxx.dll (рантайма);
  • появление строк ContentId , EAConnectionId , OriginStartup entered ;
  • указание характерных констант ошибок Origin SDK (например, 0xa0020008 ORIGIN_ERROR_CORE_NOT_INSTALLED или 0xa0010000 ORIGIN_ERROR_SDK_NOT_INITIALIZED );
  • работа с «карточкой» игрушки. Это такая специальная структура, код которой приводится ниже:

К примеру, в последней на момент написания статьи версии Battlefield 4 (1.8.2.48475) вход в процедуру инициализации Origin SDK выглядел так:

В Unravel он выглядел так:

Во всех случаях бенефициантом является EAH, который при вызове этих процедур воплотится в куче (heap) как структура размером 968 байт ( mov ecx, 0x3C8 ).

Материализовавшись, EAH послужит тем Солсберийским шпилем, возле которого будет виться остальной OriginSDK. Нельзя пройти мимо сигнатурного обращения к ней — сначала OriginSDK интересуется: «А не ноль ли там?» Если нет, то только тогда тащит оттуда значение:

  • Battlefield 4 (1.8.2.48475) — 0000000142789C80
  • Unravel — 0000000141344680

Внимание, фокус! Делаем заглушку на процедуре инициализации EAH ( mov eax, 1 & ret ), запускаем и видим, что логи отладчика заспамлены гневными сообщениями: «Origin Error: update fail The Origin SDK was not running». Это как раз происходит из-за того, что теперь EAH равен нулю и перестало выполняться ключевое условие — флаг готовности сетевого соединения в его дочерней структуре WSA_socket не взведен:

Кажется, у нас проблемы? Вовсе нет! Юмор в том, что это отнюдь не препятствие: после тщетных попыток связаться со своими из OriginCore хакнутая игрушка все равно соглашается запуститься. Занавес и выход на бис!

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *