Denuvo что это за программа

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

В 2014 году появилась защита от пиратства, которая позже станет одной из самых узнаваемых, — Denuvo. Она пришла на смену SecuROM и связана с одним действующим лицом — Рейнгардом Блауковичем. Пару лет назад я уже писал о том, как я однажды разреверсил SecuROM, разгромив защиту Блауковича в пух и прах. Сегодня я покажу, как проделал то же с Denuvo. Встречай новую серию «Тибериумного реверсинга»!

INFO

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

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

Защита игр. Как работает Denuvo и что такое DRM — защита?

Если по 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

Не отстают от 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

EA DRM, OEP, dump

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

.ooa:0000000142D46000 public start .ooa:0000000142D46000 start: .ooa:0000000142D46000 nop .ooa:0000000142D46001 jmp cs:Core_Activation64_100

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

000007FEF16873E4 call qword ptr ds:[] 000007FEF16873EA lea rcx,qword ptr ss:[rbp+0x10] 000007FEF16873EE mov rsi,rax 000007FEF16873F1 call 000007FEF16873F6 mov rbx,rax 000007FEF16873F9 test rax,rax 000007FEF16873FC je activation64_original.7FEF168741B 000007FEF16873FE nop 000007FEF1687400 mov r9,qword ptr ds:[rbx] 000007FEF1687403 test r9,r9 000007FEF1687406 je activation64_original.7FEF168741B 000007FEF1687408 xor r8d,r8d 000007FEF168740B mov rcx,rsi 000007FEF168740E lea edx,dword ptr ds:[r8+0x1] 000007FEF1687412 call r9 000007FEF1687415 add rbx,0x8 000007FEF1687419 jne activation64_original.7FEF1687400 000007FEF168741B call rdi 000007FEF168741D lea rcx,qword ptr ss:[rbp+0x6A0]

WWW

Исходники отреверсенных потрохов 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 );
  • работа с «карточкой» игрушки. Это такая специальная структура, код которой приводится ниже:

typedef struct struct_EA_ACCESS_request < char* ContentId; // 1031469 (ID контента) char* Title; // Unravel (название игры) char* MultiplayerId; // 1031469 (ID пользователя для сетевой игры) char* Language; // en_US >EA_ACCESS_request, *pEA_ACCESS_request; // Идентификационная карточка приложения

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

0000000140DDB59B call 0000000140DDB5A0 lea rcx,qword ptr ss:[rsp+0x38] 0000000140DDB5A5 call // А вот и вход! 0000000140DDB5AA movzx eax,al 0000000140DDB5AD test eax,eax 0000000140DDB5AF jne bf4_dump_scy.140DDB5B8 0000000140DDB5B1 xor al,al 0000000140DDB5B3 jmp bf4_dump_scy.140DDB669

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

00000001416EBC2D lea rcx,qword ptr ss:[rsp+0x30] 00000001416EBC32 call 00000001416EBC37 call // Вход! 00000001416EBC3C test al,al 00000001416EBC3E jne 00000001416EBC40 mov eax,0xC346A20F 00000001416EBC45 lea eax,dword ptr ds:[rax+0x3CB95E01] 00000001416EBC4B jmp

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

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

0000000140DE30D0 xor eax,eax is_EAH_init 0000000140DE30D2 cmp qword ptr ds:[],rax 0000000140DE30D9 setne al // setne = Set if Not Equal. Эта инструкция как раз устанавливает байт в указанном операнде в значение 1, если нулевой флаг был очищен 0000000140DE30DC ret 0000000140DE3DB0 mov rax,qword ptr ds:[] get_EAH 0000000140DE3DB7 ret

INFO

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

Внимание, фокус! Делаем заглушку на процедуре инициализации EAH ( mov eax, 1 https://xakep.ru/2019/04/19/denuvo/» target=»_blank»]xakep.ru[/mask_link]

Читайте также:
Пакет программ Microsoft office что это

Denuvo что это за программа

Антипиратская защита Denuvo уже давно снискала дурную славу среди геймерского сообщества. В сети уже не первый год обсуждают её негативное влияние на производительность и FPS в играх. Автор Youtube-канала Overlord Gaming решил проверить правдивость подобных утверждений, протестировав несколько популярных тайтлов в версиях с защитой и без.

реклама

Тестовым стендом выступил компьютер на базе Ryzen 3700x с 32 Гб оперативной памяти на частоте 3600MHz и таймингами CL19. В роли графического адаптера выступила GTX 1080 Ti. Игры тестировались в разрешении 1440р с максимальными настройками графики, но умеренным сглаживанием для избежания эффекта бутылочного горлышка со стороны GPU.

Первой на тест попала Metro Exodus. И в ней Denuvo с самого начала показывает себя с далеко не самой лучшей стороны. Даже для загрузки главного меню в версии с защитой требуется больше времени чем в версии DRM-free. Загрузка первой миссии также значительно быстрее в чистой версии.

Что же до игровой производительности, то версия игры с Denuvo незначительно отстаёт от чистой по показателям среднего и максимального FPS и весьма сильно проигрывает по статистике минимального времени кадра, а также редких и очень редких событий. Причём, подобная статистика наблюдается как на DX11, так и на DX12. Версия игры для Microsoft Store показала себя ещё хуже, проиграв даже версии с Denuvo.

Следом был протестирован Prey. И этот отличный имёрсив сим от Arkane Studios сильнее всех пострадал от печально известной защиты. Даже стадия загрузки игры уже даёт понять масштаб катастрофы. Версия с защитой грузится на 317% дольше чистой. Загрузка первой миссии тоже даётся Denuvo с трудом.

Однако самый кошмар начинается во время геймплея. Преимущество чистой версии по среднему FPS составляет 21%, по минимальному 48%, а по статистике 0.1% low — 779%.

А вот в Conan Exiles разрыв уже был не таким драматическим. Версия с Denuvo уступила чистой всего 5 FPS по среднему фреймрейту и чуть хуже себя показала по статистике 0.1% low.

Похожие результаты можно наблюдать в бывшем эксклюзив PlayStation Heavy Rain. Самыми значимыми различиями между версиями стали показатели 1% low и 0.1% low, различавшиеся на 7 и 8% соответственно. Это же справедливо и для Beyond: Two Souls, но в ней статистика 0.1% low на 73% хуже в версии с Denuvo. А вот в Detroit: Become Human разница и вовсе незаметна.

Подводя итоги стоит сказать что данная защита всегда сказывается на производительности негативно. Но бывают и такие случаи, когда вред от неё практически незаметен. Жаль, что проблемных случаев пока что значительно больше.

Источник: overclockers.ru

Denuvo что это за программа

РЕЛИЗЫ КИНО

Быстрее пули 05.08.2022
После 4. Долго и счастливо 25.08.2022
Клерки 3 13.09.2022
Хэллоуин заканчивается 14.10.2022
Черный Адам 20.10.2022
Черная пантера: Ваканда навеки 10.11.2022
Аватар 2 15.12.2022

РЕЛИЗЫ ИГР

Gotham Knights 21.10.2022
Call of Duty: Modern Warfare II 28.10.2022
Skull and Bones 08.11.2022
God of War: Ragnarok 09.11.2022
Goat Simulator 3 17.11.2022
The Dark Pictures: The Devil in Me 18.11.2022
The Callisto Protocol 02.12.2022

ПОСЛЕДНИЕ КОММЕНТАРИИ

Почему Denuvo до сих пор используется в играх

Илья Вихров | 25.12.2019, 19:45

Ох сколько ненависти игроки выливают на проекты, защищённые антипиратской системой Denuvo! Но за пеленой гнева мы упускаем детали. Без лишних предисловий – кратко и по делу.

Denuvo используется как антипиратская защита с 2014 года. И она собрала немало негативных реакций от игроков по всему миру. Справедливо ругая микрофризы, а также хоть и редкие, но выводящие из себя вылеты из онлайн-режима. Да, Denuvo не идеален, но именно эта разработка компании Denuvo Software Solutions GmbH в будущем сыграет большую роль для улучшения, так сказать, жизни ПК-игроков. Почему?

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

  • Предзаказы;
  • Продажи первого и второго дня с момента релиза;
  • Продажи первой недели;
  • Продажи первого месяца.

Почему это важно нам знать? Любой издатель понимает, что какая бы не была защита игры, её рано или поздно взломают. Неважно кто, важно когда. И вот это «когда» нужно отсрочить как минимум на неделю с момента выхода игры. Желательно вообще на месяц.

Любой издатель или разработчик в первую очередь компания. Со своей интеллектуальной собственностью, достижениями, вложениями, командой работников и так далее. И она должна не просто держаться на плаву, а продавать больше и дольше свой продукт.

Эксклюзивность весьма большого списка игр определяет не только требования компаний-разработчиков консолей. Но и пиратство. Можно сколько угодно говорить что «издателю деньги от ПК-игроков лишними не будут», но правда останется за этим самым издателем. Ошибочно предполагать, что игроки в основной своей массе понимают устройство рынка программных технологий.

Если быть точнее, мнение «издатель такой сякой, эксклюзивы для консолей – полная чушь, пусть выпускают и на ПК» слишком низменное и примитивное. Издатель видеоигр знает свой бизнес-процесс, формирует бюджеты, нанимает и увольняет сотрудников, страдает от избытка бюрократии и так далее. В целом, любая крупная компания геймдева глубинно мало чем отличается от среднестатистической IT-организации в вашем городе. Звучит может и дико, но это необходимо понять и принять как данность.

Читайте также:
Lite это что за программа

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

Denuvo исправно выполняет свою задачу сразу с момента выхода. Вспомним примеры:

  • Star WarsBattlefrontII никто не мог взломать по крайней мере полтора года;
  • На взлом Borderlands 3 ушло полтора месяца;
  • На взлом Wolfenstein: Youngblood ушло 22 дня;
  • На взлом HeavyRain ушло 153 дня;
  • На взлом MortalCombat 11 ушло минимум 3 месяца, но стабильной «пиратки» так и нет.

Конечно есть и менее «удачные» для антипиратской системы примеры: Star Wars Fallen Order был взломан за 4 дня, Metro Exodus за пять.

Цифры говорят за себя – система выполняет свою задачу. Не всегда идеально, но она единственная в своём роде, дающая отпор лучшим пиратам со всего мира. И это дорогого стоит. Буквально.

Вред Denuvo на стабильность игрового комфорта преувеличен – недавно группа хакеров CODEX полностью удалили защиту из игры Assassin’s Creed Origins. Оказалось, что без неё игра всего лишь загружается быстрее как в момент запуска, так и в моменты быстрого перехода по локациям. И всё. Никаких просадок FPS не выявили.

Но причём тут Denuvo и в чем же потенциальная польза игрокам? Она практически на поверхности. Томас Гобл из Denuvo пару лет назад заявил, что некоторые консольные игры могут получить релиз на ПК в будущем из-за этой технологии.

Может это и будет и не Denuvo, а следующее поколение антипиратской защиты. Та же группа хакеров 3DM в своё время отказались от взлома Just Cause 3, высказав предположение, что в связи с нынешними тенденциями в технологии шифрования, совсем скоро взлом видеоигр может стать невозможным. Да, это было четыре года назад. Но по меркам индустрии прошло совсем немного времени.

Издатели видеоигр регулярно оценивают рынок, изучают статистику и поведение целевой аудитории. Как никому другому им известен весь объём вреда игрового пиратства.

Сократив его объёмы, ПК-игроки и издатели станут ближе друг к другу. Нет смысла надеяться, что многие эксклюзивы консолей перекочуют на компьютеры. Но может быть, только может быть, что мы на заре новой эпохи, где издатели консольных видеоигр обратят взор на ПК-гейминг.

Источник: pluggedin.ru

Читеры будут остановлены: Разработчики антипиратской защиты Denuvo объявили о запуске новой программы

Читеры будут остановлены: Разработчики антипиратской защиты Denuvo объявили о запуске новой программы

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

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

Первым проектом, который официально стал поддерживать систему Denuvo Anti-Cheat, объявлен шутер DOOM Eternal, созданный силами коллектива id Software и изданный Bethesda Softworks. В рамках этой игры работа программы ограничивается исключительно соревновательным режимом BATTLEMODE.

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

Особый акцент делается на информации, которой программа обменивается с серверами Amazon. Так, если верить авторам, Denuvo Anti-Cheat не делает никаких скриншотов, не сканирует содержимое жесткого диска, а лишь следит за информацией, которой между собой делится исполнительный файл запущенной игры и операционная система.

«Мы очень рады накопленному опыту борьбы с пиратским контентом, который теперь будет применен к обнаружению читеров, которых вы каждый день встречаете в любимых играх», — говорится в обращении Irdeto.

О том, в каких играх мы увидим Denuvo Anti-Cheat в будущем, пока не сообщается. Возможно, одним из претендентов станет шутер Call of Duty: Warzone, отчаянно сражающийся с нечестными пользователями.

Добавляйтесь в наш Telegram-канал по ссылке или ищите его вручную в поиске по названию gmradost. Там мы публикуем в том числе и то, что не попадает в новостную ленту. Также подписывайтесь на нас в Яндекс.Дзене, Twitter и VK. И не забывайте, что у нас появились тёмная тема и лента вместо плиток.

Подписывайтесь на наш Telegram канал, там мы публикуем то, что не попадает в новостную ленту, и следите за нами в сети:

Источник: gamemag.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru