Много блогов написано на PlayGround про Denuvo, но не один из них толком не объясняет, с точки зрения программиста, что это за защита. Я решил сделать обзор реального кода данной защиты на примере кропотливого анализа игры Rise of the Tomb Raider.
Исполняемый файл ROTTR.EXE имеет стойкую крипто защиту с антипатчингом байт-кода (Code segment decryption). Именно поэтому очень сложно добраться до заголовков PE и управлять ими. Но кое-что разглядеть всё таки мне удалось.
Любой файл (будь то исполняемый или библиотека) имеет точку входа в процедуру – main (или start). Дизассемблировав файл ROTTR.EXE и переведя мнемокод ассемблера в читаемый код языка Си, я начал собирать части кода в единое целое.
Примечание: т.к. форумом не предусмотрены теги языков программирования, буду выкладывать скриншоты, сделанные из Visual Studio, чтобы код не терялся с текстом.
Процедура main (с неё начинается любая программа) принимает функцию DenuvoProtection и возвращает функцию Result
В коде DenuvoProtection можно увидеть, что функция активно использует методы записи в память, в частности VirtualProtect
Собственно ничего сложного здесь нет – заводим константы и переменные типов, открываем память для чтения/записи (VirtualProtect), перемещаем в память то, что нам нужно (memset) и возвращаем приложению управление памятью с оригинальными значениями (return VirtualProtect).
Функция Result выполняет примерно тоже самое, что и DenuvoProtection – использует VirtualProtect
Здесь стоит объяснить эту строку
(*(WORD *)(0x14000003C + (__int64)0x140000004) == 332)
по сути это указатель на указатель. Т.е. сначала значение 0x14000003C приводится к ссылочному типу WORD (указатель на адрес памяти), и затем получаем указатель на указатель адреса памяти. Мудрёная конструкция, но при работе с динамической памятью она используется очень часто.
Теперь рассмотрим несколько функций, которые собственно и вешают «протект». Начнём с CryptoTypeF
На первый взгляд - «дикий ужас». Но не так страшен чёрт, как его малюют. Здесь байты подвергаются обработке битовому оператору XOR (исключающее ИЛИ). Оператор побитового исключения ИЛИ (^) сравнивает каждый бит первого операнда с соответствующим битом второго операнда. Если один бит равен 0, а другой равен 1, соответствующий бит результата устанавливается равным 1, в противном случае - 0.
CryptoTypeS – аналогично CryptoTypeF перебирает биты и шифрует байты
Функция LowLevelFunction извлекает младший байт из заданной величины при помощи макроса LOBYTE
Т.е. например, есть некоторая переменная
#define val 0xFFAC
её младший байт будет LOBYTE(val) == 0xAC, а старший HIBYTE(val) == 0xFF
Данное извлечение байтов применяется в функции CryptoFunctionC
На вид функция громоздкая и не понятная, но имея базовые знания C/C++ можно легко прочитать весь её код. Суть аналогична предыдущим, а смысл – сделать код не пригодным для отладки и дизассемблирования.
Далее находятся остальные функции, их объяснение не требуется – это стандартные циклы и условия. Все они нужны для полноценной работы функции DenuvoProtection
Заключение.
Конечно же этот код далек от рабочего (именно поэтому я не выкладываю полный исходный код), нужно много чего доделывать и приводить в нормальный вид с классами и прочими хейдерами и уже потом делать реверс-инжиниринг (всё что я описал выше это даже не близко полный взлом Denuvo, а только самая верхушка айсберга). Я не профессиональный программист, не специализируюсь на шифровании и работе с виртуальными машинами, но данный анализ у меня занял всего лишь один вечер! Очень странно, что целые группы высококвалифицированных хакеров до сих пор сидят на одном месте ровно. Я не буду разводить холивар почему они ничего не делают?, заплатили ли им за то, чтобы они не ломали Denuvo… Я скажу одно – данная защита вполне взломо-пригодна. Достаточно собраться нескольким ребятам, которые «собаку съели» на методах шифрования и поломать эту защиту. Чтобы разработчики не придумали – всегда можно это сломать. Это аксиома архитектуры x86 – для этой архитектуры просто невозможно написать защиту, т.к. у неё открыты доступ к процессору, памяти, ring0 и прочее, что позволяет контролировать весь этап запуска приложения.
Хоть один толковый блог про Denuvo!
Единственный нормальный блог про Denuvo.
она нынче на х64 вот тут та и проблема.
Автор программист данной темы. Спаси пожалуйста миллионы фанатов и пиратов со всего мира, которые надеяться, до последней капли слезы, что их игру Ларочку Крофт взломают, и выложат с таблеткой на торренты, которую так многие ждут. Автор, помоги со взломом защиты, чем сможешь, или чем обладаешь в знаниях. Подключи своих программистов и хакеров, которые что-то знают в игровых защитах. Если иностранные хакеры не в силах, поломать защиту в игре, тогда может русские хакеры смогут это сделать? Автор, придумай что-нибудь. Спаси мир!
Patrick Russian Сюжет игры убог чуть более, чем полностью, она тащит только графикой.
Ух ты, любители игр c "лучшим" сюжетом и игр года по версии DICE Awards уже начали ставить мне минусы)) Потрясающие люди.
А я думал написать сайт для курсовой сложно, оказывается просто. А вот понять код из блога сложновато
Ааааа сложна
Третий абзац. Что это за слова-проклятья? =)
Автор темы красавчиг) реально надоели эти плагиатные темы "гибель пиратства", "денюва неприступна", "динюва то, динюва это.." надоели, это единственный блог в своем роде, уважаю таких людей, которые не бросаются пустыми словами, а приводят конкретные доказательства на конкретные вещи!) Автор, жду продолжения = )
Artemisss Ага жди, лет так через 10, может он и взломает её, ну-ну желаю удачи.
Victor tsoy Я не жду что он ее взломает, если ты не понял то он писал, что он не топовый хакер, а просто любитель, которому интересна эта тема, а мне просто интересно читать его рассуждения.
Artemisss Ясно)
Artemisss Я не жду что он ее взломает, если ты не понял то он писал, что он не топовый хакер, а просто любитель, которому интересна эта тема, а мне просто интересно читать его рассуждения. дессемблировать исполняемый файл и показать код этого файла может любой школьник. а вот обойти (в живом процессе) то, что он написал - проблемотично. это всего лишь верхушка пирамиды. остальные инструкции идут в длл. защита завязана с файлами игры.
Adamantokha запомни раз и на всегда - архитектура одна х86. И это не относится к её разрядности. Она может быть 32 битной (одноимённо с х86), а может быть 64 битной х86_64. х86_64 это расширение над х86, инструкции остались теми же, добавились новые регистры, в частности MMX. Потом в эту же надстройку х86_64 добавили 128 битные регистры SSE, позже 256 битные регистры AVX, и skylake - 512 битные AVX512. не зная ни капли в программировании не суйтесь со своими тупыми одноизвилинными мыслями.
да видать заплатили
С удовольствием прочел. Наконец-то хоть что-то дельное про Дуню. А то все одно и то же пережевывали. Хорошая работа.
Eddward West Я не понимаю, вас что сюда заслали рекламировать офлайн активацию?:D все уже знают что так можно сделать, а вы все равно продолжаете в каждой теме написывать про эту активацию..
Artemisss я же не говорю что сам делаю! просто нашел очень дешево ! а другие барыжат раньше активация было по 50 руб а тут внезапно за ларку 150 руб просить начали ! а я нашел за 50руб и доволен, может и кому-то поможет!!
В результате инновационных действий правительства диверсификационные процессы настолько интерполировались, что венчурный фонд стабилизировался
То есть, вполне возможно, что азиатским хацкерам занесли баблишка?)
Наконец то, нормальный блог от программиста.. Интересно.
и вправду что за дурачки тут пишут комментарии что мол автор городит фигню и .т.д. дибилоиды..... лучше бы его поддержали действительно что бы он смог хотябы попробовать взломать эту паскудную защиту....за которую явно приплатили бабла 3dm и многим другим.....так что автор желаю тебе удачки в процессе и попробуй реально взломать это гавно....
разложил по полочкам молоток
автор запили лекарство пж
Я не силен в скриптах, но читал с интересом, спасибо автору. Очень странно, что целые группы высококвалифицированных хакеров до сих пор сидят на одном месте ровно. Я не буду разводить холивар почему они ничего не делают?, заплатили ли им за то, чтобы они не ломали Denuvo… Скорее всего.
tesla707 свяжись с 3dm и передай свои наработки
invalid dok я думаю они и без меня знают что делать)
tesla707 Мне кстати еще интересно, почему денювой только занимается 3дм? еще занимается вроде CPY(фифа 15 и лорд оф зе фален) И все, другие репакеры почему то не хотят париться с этой защитой, не знаешь почему так? Неужто такие ленивые:D
tesla707 Походу не знают,так как уже отошли от дел.
Artemisss Просто до этого игры ломались в пару кликов, настолько были примитивные защиты, существуют специальные инструменты для взлома простых защит типа стимовской вот все и клепали кряки на все игры,обрати внимание по сколько версий кряков для игр без денуво, есть даже кряки от всяких васянов98 и вованов126, а тут нужно разбираться, неважно насколько это сложно или просто, но все же нужно разбираться.
Artemisss Мне кстати еще интересно, почему денювой только занимается 3дм? еще занимается вроде CPY(фифа 15 и лорд оф зе фален) И все, другие репакеры почему то не хотят париться с этой защитой, не знаешь почему так? Неужто такие ленивые во первых - это не репакеры, а хакеры, которые взламывают игру, а не перепаковывают. во вторых - CPY были второпроходцами в фифа 15 и лорд оф зе фален. первые таблетку сделали 3ДМ. коряво, но сделали. CPY подхватили и дороботали. сами они ничего не умеют. другие не ленивые. скорей не "образованные" в этом...
Мне нравится этот блог. Хоть немного фактов относительно Denuvo, а не не информативные эмоции
Начал читать - вскипел мозг, но я понял самое главное - денуво взломать реально
мне стало только понятно,что тут нифига не понятно
Tesla уважуха к твоим знаниям и труду над этим блогом. Я полный ноль в прог-ии , но что то был разговор что постоянно всё меняется в этом коде , ну типа увидел ты замок дверной снял слепок ключа сделал ключ пришёл а замок уже другого типа , ты по новой .Не, грубое сравнение , но понятное.
Я вот больше чем уверен, что подавляющая масса "специалистов" в этом блоге не знает даже, что такое .exe
Вячеслав Бутусов Я так же думаю, что серъезно взломом игр другие хакеры не занимались. Очень бы хотелось увидеть работу других хакеров, чтобы унизить 3DM и привести их в чувство.
На плейграунде всё ожидал увидеть от конченных задротов до неадекватной школоты призывающей играть на языке ориГЕЙнала... Но чтобы тут обсуждались вопросы программной инженерии. Сначала подумал, что на Хабр зашёл по ошибке. Интересная статья. Спасибо!
Ничего не понял,просто пролистал до конца)
Да, скорее всего заплатили. Но вот что странно, я так думаю, что хакеров на планете миллионы, не могли же они всем заплатить? Может по этому игры так подорожали?.. Ну а если по делу... 3dm скорее всего заплатили, чтобы они "отдохнули годик", как они сами сказали. Может еще другим наиболее известным хакерским коллективам тоже приплатили. Но все же, почти все игры с Denuvo уже взломали, и на это уходит максимум 2-3 месяца. Пока не взломаны только три игры (одна из них только вышла, да и то пока только на приставках), из примерно десятка, в которых используется данная защита. Еще роль играет PR-компания защиты, реклама утверждает, что ее "невозможно взломать", хотя то, что сделал один человек, другой может сломать.
gmh4589 Да вот только не забывай что Денува есть разные версии, старые версии взломаны, а вот свежая 5.0 у вы пока нет...по крайней мере в сети нет новостей, а так может уже её взломал кто то...просто заливать в сеть не хочет кряк...и я понимаю его, это типа сравнима как купить лицензионный ключ и всем раздать его бесплатно...так как взлом игр это тоже считается работой. P.S - Так раздули об этой денуве...что будь у меня ПК по мощнее, я бы пореверсил её в отладке.
krockix Да хоть 10.0, взломать можно все, не об этом речь шла
Технический язык, какой же ты беспощадный. Лично я рад что хоть что-то понял. А суть одна: все эти защиты отмывание бабла.
без x64dbg не вломаешь ты денуво как не старайся и всё про какерцы ждут x64dbg чтоб начать ломать
Неплохо
Автор молодец, но сами ускоглазые из 3DM писали что заглохли на одном моменте. Дело в том, что (я не силен в программировании потому перескажу своими словами) на определенном этапе нужно из миллионов посылаемых программой запароленных ключей, найти нужный, при этом найти нужно лишь один и расшифровать его. Тут то китайцы и зависли, так как это очень сложно (Это как если бы рядом с вами сыпали гору песка и нужно было бы в это время найти из миллионов одну единственную, нужную песчинку).
Ой, блин, ничего нипанятна. Хотеть алгоритмом, как в 5-ом классе, так хоть смогу разобраться.
Вот теперь все понятно стало.
>Я решил сделать обзор реального кода данной защиты
парень молоток.если ему за вечер удалось такие достижение.то 3dm курить в сторонке
Я думаю, тебе народ из крэклаба помогут. Удачи с реверсом. %)
Ничего не понятно.
Бла бла бла, вкратце денуво пихает кучу гавнофункцйий в екзешник и генерит уникальные переменные что бы все это завелось. проблема в том что для каждого, тоесть вообще ДЛЯ КАЖДОГО процессора они уникальны и суть в том что бы сделать универсальный взлом. А обойти это нельзя потому что эти гавнофункции зашиваются в игру и нужны для ее работы.
у вас на пеге написано цена от 999 рублей, где вы такие цены видели?)
Zzombii Игромагаз и какие то сторонние магазины.
Сложно понять конечно,но написано интересно и я даже немного понял.
вряд ли им приплатили, одним заплатишь вылезут другие, фигня все это
все что описано в блоге только программисты и поймут. автор ведь написал он верхушку за ночь разобрал. до сих пор денуво взламывали теперь решили что не взламывается. да скорее всего заплатили . Dragon Age Inquisition взломали же .
Автор молодец. Теперь я хотя бы знаю что эта защита из себе представляет, а это уже стоит больше чем сотни школоблогов про denuvo
Посидел один вечер и уже разгадал всю подоплеку! Гений=)
Мне ларка неинтересно , не факт что и после взлома играть буду. Вначале, когда только вышла хотел поиграть наверно из за пиара и рекламы , а сейчас как то пофигу . Шоры с глаз спали , не взломали да и хрен с ней .
Надо было учится на программиста.
Не думайте что вы один самый хитрый "программист". Тут много умных людей решают эту задачу - https://exelab.ru/f/index.php?action=vthread&forum=13&topic=19719&page=0 Тем более я погуглил, ваши навыки "програмирования" нигде в сети не засветились,только услуги " почтовой связи " либо что-то не то, либо статья скопипастчена.
сильно эта защита грузит ЦП/память?
если не профессиональный программист во всем этом разобрался, то те ребята которые занимаются взломом на постоянной основе реально там репу чешут но для взлома думаю еще нужно править *.dll файлы библиотек
Romanzo_Tamerici если не профессиональный программист во всем этом разобрался, то те ребята которые занимаются взломом на постоянной основе реально там репу чешут в чем разобрался? показал код исполняемого файла?)))) то, что он показал - это 10/100 всей защиты... пусть найдет ту самую виртуальную машину. покажет принцип шифрования данных DRM. ведь не ROTTR.EXE запускает игру. он запускает целую систему, которая начинает проверять и шифровать данные привязки игры к стиму. и только после этого запускает игру. исполняемый файл самой игры спрятан в еб"н"х... говоря просто, мы запускаем денуво, кликая по ROTTR.EXE. а денуво, в свою очередь, запускает игру...
saa0891 С точки зрения банальной эрудиции, глядя в призму оптимальных обстоятельств, не каждый здравомыслящий индивидум способен игнорировать тенденции парадоксальных абстракций. )))
Одно меня смущает, почему заплатили ? А посадить или наказать их за кражу имущества? это же было бы куда дешевле
Romanzo_Tamerici ну во-первых нужно ещё доказать, что именно этот человек был причастен прямо или косвенно к взлому, а это не так просто сделать . а во-вторых, корпорациям проще купить его себе в штат, чем тратить деньги и время на судопроизводство. и вот пример - GeoHot взломавший PS3. Ну попыталась Sony его наказать, толку от этого не было. Зато Facebook купила его себе за бешеные деньги. или CTurt, который начал вскрывать PS4 ( https://cturt.github.io/ps4.html ). Он выложил то, что наработал и по слухам Sony уже не стала повторять ситуацию с GeoHot, а просто купила его.
tesla707 ну тогда ясно
tesla707 а во-вторых, корпорациям проще купить его себе в штат, чем тратить деньги и время на судопроизводство. и вот пример - GeoHot взломавший PS3. Ну попыталась Sony его наказать, толку от этого не было. Зато Facebook купила его себе за бешеные деньги. или CTurt, который начал вскрывать PS4 ( cturt.github.io/ps4.html ). Он выложил то, что наработал и по слухам Sony уже не стала повторять ситуацию с GeoHot, а просто купила его. понятно для чего этот блог))))) ты сейчас хочешь распиариться своими "познаниями", чтобы тебе заплатили издатели? купили тебя?)))) по слухам купили хакера))))))) по слухам денуво уже взломана, просто хакеры не хотят на себя обращать внимание)))))
Нихрена по делу нет. Кэп мне и так рассказывал за чашкой чая, что, очень внезапно, в самом экзешнике есть вызовы функций денуво с перекидыванием по памяти сегментов - об этом знают и так уже все давно. Попугал пеге интерпритированным дизасемблированным кодом - возьми с полки пирожок с бонусами. Сам алгоритм где? Вот именно - его нет. Блог ни о чем.
А кряка как не было так и нет. Гы )
Я не много не понял он защиту ломает или просто показал принцип работы ?
Logves нет, он просто хотел развести снова срач про денуво.
Толку от этого анализа НОЛЬ - для простых халявщиков-нахлебников. Помню Тесла ковырял и Кризис 3 и Колду(Гост) - на предмет запуска на видяхах не поддерживающих ДХ11. И все заглохло.
Пока не выпустят нормальный отладчик под х64, про взлом можно забыть.
Но ведь денува на 64...
Много написано,с первых строчек было понятно всё!
Дорогой автор - смысл всего этого если ты даже не закончил, я тоже не профессионал, но если начал то закончи.
Русские Хакеры то может и Смогут только вот Потом в Пиндоссию им Лучше не летать .
даже в коде видно что там не x86, а x64. и именно в этом основная загвоздка. можно взломать многое, но заставить это адекватно работать - это уже совершенно другое дело.
К черту все это. Все кто хотел уже купили, прошли и забыли. Игра хороша, но на столько "страданий" из за Денувы и т.д. и т.п. не тянет.
N.Romanoff Да с оффлайн активацией, так что я так и сделал, и не сколько не жадею, так-как игра просто классной получилось, вот единственное что плохо так это оптимизация не много подкачала, а в остальном всё норм.
N.Romanoff игра хрень которая не затягивает. До сих пор не могу себя заставить продолжить ее играть.
beluii Так я и писал что проходная, а у народа ломки как будто кряка нет на GTA5 или Ведьмака.
когда я был маленький я думал что хакиры сидят перед 16 ричными буквами понимают их складывающиеся последовательно закономерности и что они делают, выпиливаю лишнее или добавляю что та свае, почаны.
MunchkiN 616 Разве это не так? :))))
Я не знаю может кто меня и поддержит, но на данный момент лучший вариант, это оффлайн активация, она блин и стоит копейки, я кстати ларку так и приобрёл, за 100 рублей, но сейчас он чуть по дороже стоит, но зато не 1,500-2000, платить а всего лишь 100-120 рублей, и кстати я её уже тоже прошёл ещё фиг знает когда, и кстати сегодня буду себе бэтмана брать вот таким же способом, и кстати на него оффлайн, стоит всего на всего 75 рублей, так что вот так.
вот вы пишите, что проплатили хакерам. по сути одни 3дм могли тягаться с денувой. отсюда вопрос у меня возникает. почему вот этот, не очень "образованный" хакер, смог раскрыть и показать код защиты, а такие хак группы как разор, скидров, и др. не менее известные, не смогли ее взломать? да они по сути ни одной игры с денуво не сломали сами. так что не надо писать бред. показать код, как я говорил, может любой, более менее соображающий школьник. а взломать - это уже другой вопрос...
бред какой то ты типа ее ломал и не увидел что она 64 битна?
enrikokarvales причём здесь 64 битная? Да экзешник игры 64 битный, но это совершенно не помеха. мат.часть RIP адресация в помощь ))
И что автор блога хотел этим сказать? Куча недокументированного кода без намека на здравый смысл. Если бы целью было реально показать свои наработки и мысли по дальнейшему взлому - были бы и листинги, и описание. Крайне неиформативный блог, дизлайк.
. -- Rick Sk1mmer -- . последний абзац прочитай. Будет время доделаю, будет тебе и листинг и документация.
tesla707 Тем более, вот когда реально что-то сделаете, тогда и будет повод для обсуждений.
Ну и почему ты её ещё не взломал а, раз ты такой умный?
очередная хрень и простое балабольство, ты сломай нормально а потом уже блог пиши
Ещё один пират, не имеющий возможности играть в игры, защищённые Denuvo. Найди нормально оплачиваемую работу и просто покупай игры. Или доработай свой код раз уж это так не сложно как ты пишешь, а потом выложи взлом Denuvo. А так, опять очередное наматывание соплей на кулак из-за невозможности играть ………………
AllConforD у меня ноутбук для работы и PS4 для игр. Как думаешь - я могу себе позволить купить ларку на консоль? я делаю это потому, что мне это интересно, вот и весь ответ на твой коммент.
AllConforD Абсолютно с вами солидарен.