Cracked status

Алан-э-Дейл       31.07.2022 г.

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

Общая стратегия взлома Origin SDK (который инклудится в игрушку) имеет два разных сценария в зависимости от того, что ты хочешь получить в итоге. Первый вариант сложный, очень палевный и приватный. Он требуется для сетевых игр и обеспечивает возможность играть на официальных серверах. Через цепочку , нужно получить код авторизации, а затем постучать этим AuthCode на сервер. Короче, это тема для отдельной статьи.

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

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

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

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

1
2
3
4
5
6
7
8

typedefstructstruct_EA_ACCESS_request

{

char*ContentId;// 1031469 (идентификатор контента)

char*Title;// Unravel (название игры)

char*MultiplayerId;// 1031469 (идентификатор пользователя для сетевой игры)

char*Language;// en_US

}

EA_ACCESS_request,*pEA_ACCESS_request;// Идентификационная карточка приложения

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

1
2
3
4
5
6
7
8

0000000140DDB59Bcall<bf4_dump_scy.sub_140DDD1D0>

0000000140DDB5A0lea rcx,qword ptr ssrsp+0x38

0000000140DDB5A5call<bf4_dump_scy.origin_startup>// А вот и вход!

0000000140DDB5AAmovzx eax,al

0000000140DDB5ADtest eax,eax

0000000140DDB5AFjne bf4_dump_scy.140DDB5B8

0000000140DDB5B1xoral,al

0000000140DDB5B3jmp bf4_dump_scy.140DDB669

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

1
2
3
4
5
6
7
8

00000001416EBC2Dlea rcx,qword ptr ssrsp+0x30

00000001416EBC32call<unravel_dump_scy.sub_1417A5B80>

00000001416EBC37call<unravel_dump_scy.origin_startup>// Вход!

00000001416EBC3Ctest al,al

00000001416EBC3Ejne<unravel_dump_scy.loc_1416EBC50>

00000001416EBC40mov eax,0xC346A20F

00000001416EBC45lea eax,dword ptr dsrax+0x3CB95E01

00000001416EBC4Bjmp<unravel_dump_scy.loc_1416EBDA4>

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

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

1
2
3
4
5
6

0000000140DE30D0xoreax,eax    is_EAH_init

0000000140DE30D2cmp qword ptr ds<EAH>,rax

0000000140DE30D9setne al// setne = Set if Not Equal. Эта инструкция как раз устанавливает байт в указанном операнде в значение 1, если нулевой флаг был очищен

0000000140DE30DCret

0000000140DE3DB0mov rax,qword ptr ds<EAH>get_EAH

0000000140DE3DB7ret

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

1
2
3

0000000141989FD0cmp qword ptr dsrcx+50,FFFFFFFFFFFFFFFF is_connection_established

0000000141989FD5setne al

0000000141989FD8ret

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

Dishonored 2

Информация

Рейтинг: Metacritic: 88 из 100 | Общий от игроков: 8.8

Жанр Ролевая игра, экшн 
Платформа ПК
Разработчик Arkane Studios 
Тип перевода на русский Полный перевод 
Многопользовательский режим Нет 
Нет  18+

Минимальные системные требования: 

  • ОС: 64-разрядная версия Windows 7, Windows 8 или Windows 10 процессор: Intel Core i5-2400 или AMD FX-8320 
  • ОЗУ : 8 Гбайт 
  • свободное пространство на жёстком диске : 60 Гбайт 
  • видеокарта : NVIDIA GeForce GTX 660 с 2 Гбайт видеопамяти или AMD Radeon HD 7970 с 3 Гбайт видеопамяти 

Рекомендованные системные требования: 

  • ОС: 64-разрядная версия Windows 7, Windows 8 или Windows 10  процессор: Intel Core i7-4770/AMD FX-8350 или более производительный  
  • ОЗУ: 16 Гбайт  
  • свободное пространство на жёстком диске: 60 Гбайт  
  • видеокарта: NVIDIA GeForce GTX 1060 с 6 Гбайт видеопамяти/AMD Radeon RX 480 с 8 Гбайт видеопамяти или лучше

Описание

Вариативный стелс-экшн, шутер-головоломка в нашем списке взломанных игр от денуво. Продолжение первой части!

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

У каждого игрока свой стиль игры и разработчики продумали этот момент и дали право выбора каждому

Риски получения рут-прав

Много взломанных игр требуют получения рут-прав. Без этого они не будут работать. Более того, приложение может вообще не установиться. Например, новые версии Андроид не позволяют устанавливать модифицированные игры.

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

Естественно, что взломанные игры симуляторы и прочие жанры не стоят этого. Также заметим, что получение рут-прав лишает вас гарантийного ремонта. В сервисном центре просто откажут вам. Прошивать смартфон будете за свой счёт.

Как взломать игру на Android с помощью изменения системных файлов

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

Когда разрешение на изменения файлов будет получено, следует действовать согласно инструкции, изложенной ниже:

  1. Сначала нужно зайти в игру и запомнить то значение, которое требуется изменить – это может быть количество жизней, денег или других ресурсов.
  2. Закрыть игру и убрать ее из списка недавно использованных. Отключить фоновую работу игры, если таковая присутствует.
  3. Скачать и установить файловый менеджер на смартфон (в некоторых моделях уже есть встроенный).
  4. В списке каталогов выбрать каталог «Date», затем перейти в папку с одноименным названием внутри него.
  5. На экране отобразится список папок, в которых хранятся последние данные об установленных играх и приложениях. По названиям нужно найти папку с искомой игрой и зайти в нее.
  6. Из списка выбрать пункты с названиями «shared_prefs» и «files». В одном из них будет требуемый файл.
  7. Нужно найти файл с наибольшим количеством строк (для разных приложений он будет отличаться), где необходимо найти ранее запомненное число. Также можно воспользоваться поиском и вбить туда число, чтобы упростить себе жизнь.
  8. Далее нужно поменять указанное число (обычно оно идет после фразы «value=») на то, которое требуется.

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

EA DRM, OEP, dump

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

1
2
3
4

.ooa0000000142D46000publicstart

.ooa0000000142D46000start

.ooa0000000142D46000nop

.ooa0000000142D46001jmp csCore_Activation64_100

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

000007FEF16873E4call qword ptr ds<&GetModuleHandleW>

000007FEF16873EAlea rcx,qword ptr ssrbp+0x10

000007FEF16873EEmov rsi,rax

000007FEF16873F1call<activation64_original.Verify_and_GetModuleHalde>

000007FEF16873F6mov rbx,rax

000007FEF16873F9test rax,rax

000007FEF16873FCje activation64_original.7FEF168741B

000007FEF16873FEnop

000007FEF1687400mov r9,qword ptr dsrbx

000007FEF1687403test r9,r9

000007FEF1687406je activation64_original.7FEF168741B

000007FEF1687408xorr8d,r8d

000007FEF168740Bmov rcx,rsi

000007FEF168740Elea edx,dword ptr dsr8+0x1

000007FEF1687412call r9

000007FEF1687415add rbx,0x8

000007FEF1687419jne activation64_original.7FEF1687400

000007FEF168741Bcall rdi

000007FEF168741Dlea rcx,qword ptr ssrbp+0x6A0

Здесь сложности могут возникнуть разве что при перехвате управления. Дело в том, что игрушку с определенным каналом () должен вызывать сам , да еще иногда по нескольку раз. Пока мы будем аттачиться к процессу — пропустим момент выхода на OEP из .

Лайфхак прост — сделать подмену библиотеки Activation(64).dll на свою с редиректом вызовов в оригинал. При подхвате управления выводим радостный и ожидаем аттача.

Взломанные игры – недостатки

Пожалуй, главным недостатком является риск заражение устройства. Часто модифицированные игры содержат в себе вредоносный код. Хотя, это не единственный недостаток подобных приложений. К минусам также относятся:

  • Частые ошибки, багги и вылеты модифицированной игры;
  • Нарушение лицензии;
  • Отсутствует обновление взломанной игры;
  • Поддержка более недоступна;
  • Отключается некоторые функции игры;
  • Нарушение соревновательного момента;
  • Блокировка аккаунта.

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

ОС Android 12 вышла. Какие устройства получат апдейт?

На прошлой неделе состоялся релиз финальной версии ОС Android 12. Перечисляем, когда и на какие смартфоны придёт обновление.

Google Pixel

Традиционно первыми актуальную версию «зелёного робота» получат фирменные устройства Google. Обычно апдейт прилетал на аппараты Pixel в день выхода операционки. Но в этом году компании требуется больше времени на доработку специальной модификации Android 12 с эксклюзивными фишками для Pixel. Так что пока опубликован лишь исходный код AOSP-сборки системы.

Это позволяет вендорам уже сейчас начать разработку своих оболочек поверх ОС. В то же время, по словам Google, обновление по воздуху разойдётся на телефоны Pixel в ближайшие недели.

Android 12 получат следующие модели:

  • Pixel 3 и 3 XL

  • Pixel 3a и 3a XL

  • Pixel 4 и 4 XL

  • Pixel 4a и 4a 5G

  • Pixel 5

  • Pixel 5a

  • Pixel 6

Samsung

Сторонним производителям понадобится больше времени, чтобы прокачать свои гаджеты до свежей версии «зелёного робота». Samsung уже начала бета-тестирование фирменной надстройки One UI 4.0, которая основана на Android 12.

Если судить по прошлогоднему расписанию, обновление появится в декабре 2021 года. Первой его получит линейка Galaxy S21. В январе Android 12 прилетит на флагманы вроде Note 20 и Galaxy S20, а также на смартфоны А-серии. Для более старых устройств апдейты выкатят в первой половине 2022-го. Вот список аппаратов:

  • Galaxy S21 / S21 Plus / S21 Ultra

  • Galaxy S20 / S20 Plus / S20 Ultra / S20 FE

  • Galaxy S10 / S10 Plus / S10 Ultra / S10 Lite / S10e

  • Galaxy Note 20 / S20 Ultra

  • Galaxy Note 10 / Note 10 Plus | Note 10 Lite

  • Galaxy Z Fold3

  • Galaxy Z Flip3

  • Galaxy Z Fold2

  • Galaxy Z Flip

  • Galaxy Fold

  • Galaxy A72 / Galaxy A52s / Galaxy A52 / Galaxy A42 / Galaxy A32 / Galaxy A22 / Galaxy A12 / Galaxy A02s / Galaxy A02

  • Galaxy A71 / Galaxy A51 / Galaxy A41 / Galaxy A31 / Galaxy A21s / Galaxy A21 / Galaxy A11

  • Galaxy A03s

  • Galaxy A Quantum

  • Galaxy M62 / Galaxy M42 / Galaxy M32 / Galaxy M12 / Galaxy M02s / Galaxy M02

  • Galaxy M51 / Galaxy M31s / Galaxy M31 Prime / Galaxy M21s / Galaxy M21 / Galaxy M11 / Galaxy M01s / Galaxy M01

  • Galaxy F62 / Galaxy F52 5G / Galaxy F22 / Galaxy F12 / Galaxy F02s / Galaxy F41

  • Galaxy XCover 5 / Galaxy XCover Pro

Xiaomi, Redmi, POCO

Сейчас несколько смартфонов китайского техногиганта уже совместимы с Android 12 Beta: это Xiaomi Mi 11, Mi 11 Ultra, Mi 11i, и Mi 11 Pro. Правда, пока речь о чистой Android, в то время как MIUI под 12-ю версию операционки ещё в разработке.

Актуальную MIUI 12.5 на основе Android 11 получило множество устройств, так что стоит рассчитывать на длинный список. Ведь в последнее время смартфоны брендов Xiaomi, POCO и Redmi обновляются всё дольше. Android 12 придёт на следующие гаджеты:

  • Xiaomi Mi 11 / Mi 11 Pro / Mi 11 Ultra / Mi 11i / Mi 11 Lite

  • Xiaomi Mi 11T / Mi 11T Pro

  • Xiaomi Mi Mix 4 / Mi Mix Fold

  • Xiaomi Mi 10 / Mi 10 Pro / Mi 10 Youth / Mi 10i / Mi 10s

  • Xiaomi Mi 10T / Mi 10T Pro / Mi 10T Lite

  • Redmi 10 / Redmi 10 Prime

  • Redmi Note 10 series

  • Redmi Note 9 series

  • Redmi Note 8 2021

  • Redmi K40 series

  • Redmi K30 series

  • Redmi 10X series

  • POCO F3

  • POCO F2 Pro

  • POCO X3 / X3 Pro

  • POCO X2

  • POCO M3 / M3 Pro

  • POCO M2 / M2 Pro

  • POCO C3

realme

Один из брендов холдинга BBK обещает оперативно выпустить обновление до Android 12 для своих устройств. Компания realme запланировала выход оболочки realme UI 3.0 на 13 октября. Сперва апдейт появится на моделях семейства realme GT. Также ожидается, что грядущий смартфон GT Neo 2 будет поставляться с двенадцатой версией ПО из коробки.

OnePlus

Что касается OnePlus, обновление до OxygenOS 12 тоже увидит свет раньше обычного. Теперь эту надстройку объединили с ColorOS от OPPO, что должно помочь Android 12 распространяться на гаджеты OnePlus быстрее. Бета-тестирование OxygenOS 12 стартовало 4 октября, а стабильную сборку линейка OnePlus 9 получит к концу декабря.

Согласно инсайдам, до этого момента в октябре может выйти телефон OnePlus 9RT, который будет поставляться с актуальной операционкой. Официально информация пока не подтверждена. По имеющимся данным, Android 12 получат следующие модели:

  • OnePlus 7 / 7 Pro / 7 Pro 5G

  • OnePlus 7T/ OnePlus 7T Pro / 7T Pro McLaren

  • OnePlus 8 / 8 Pro

  • OnePlus 8T

  • OnePlus 9 / 9 Pro

  • OnePlus 9R

  • OnePlus Nord

  • OnePlus Nord CE

  • OnePlus Nord 2

  • OnePlus Nord N200

Что такое free-to-play игры

Сама система free-to-play или же F2P подразумевает под собой бесплатное распространение и скачивание игры, а также ее прохождение. Но в это же время в ней могут присутствовать покупки за реальные деньги — бустеры, внутриигровая валюта, различное оружие и многое другое. Иногда эти самые Покупки могут вылиться в сумму, которая во много раз превысит стоимость любой другой платной игры. Напомним, что прохождение возможно и без вливания реальных средств, но со временем уровни становятся невыносимо тяжелыми и пользователь либо мучается, либо платит. Есть ли выход из данной ситуации? Да, он есть — это взломанные игры.

Google Pixel

Традиционно первыми актуальную версию «зелёного робота» получат фирменные устройства Google. Обычно апдейт прилетал на аппараты Pixel в день выхода операционки. Но в этом году компании требуется больше времени на доработку специальной модификации Android 12 с эксклюзивными фишками для Pixel. Так что пока опубликован лишь исходный код AOSP-сборки системы.

Это позволяет вендорам уже сейчас начать разработку своих оболочек поверх ОС. В то же время, по словам Google, обновление по воздуху разойдётся на телефоны Pixel в ближайшие недели.

Android 12 получат следующие модели:

  • Pixel 3 и 3 XL

  • Pixel 3a и 3a XL

  • Pixel 4 и 4 XL

  • Pixel 4a и 4a 5G

  • Pixel 5

  • Pixel 5a

  • Pixel 6

Tekken 7

​Информация

Рейтинг: Metacritic: 82 из 100 | Общий от игроков: 8.1

Жанр Файтинг 
Платформа ПК 
Издатель Bandai Namco Entertainment Inc. 
Разработчик Bandai NAMCO Studios Inc
Год релиза 2017
Возрастные ограничения 16+

Минимальные системные требования: 

  • ОС: Windows 7/8/10 (64-бит) 
  • Процессор: Intel Core i3-4160 @ 3.60GHz 
  • Оперативная память: 6 GB 
  • Видеокарта: NVIDIA GeForce GTX 660 2GB, GTX 750Ti 2GB 
  • DirectX: версия 11 
  • Место на диске: 60 GB 

Рекомендуемые системные требования: 

  • Процессор: Intel Core i5-4690 3.5 GHz 
  • Оперативная память: 8 GB 
  • Видеокарта: NVIDIA GeForce GTX 1060

Описание

До зубовного скрежета сложен в освоении, даже фанатам серии есть чему поучиться, ломаная игра от denuvo в нашем список удивит!

Бойцы повзрослели в буквальном смысле, добавили новичков, систему комбо существенно изменили. Насчет сюжета не ждите больших сюрпризов. Ну зато завезли кат сцены. ИИ в боях очень сложно победить. Идеальная реакция, блоки, комбо не дадут вам так просто одержать победу. Кроме того в кампании мы деремся за разных персонажей, чтобы узнать их получше и не привыкать к 1 виду геймплея. Полностью боевую систему в Тekken 7 можно прочувствовать в дуэлях

Поиграйте и выберите своего фаворита

Когда использовать взлом

Общее правило — взламывать можно устройства, у которых есть антенны . Наиболее важные из них:

1) датчики (камеры) — в результате успешного взлома лучи камеры изменят свой цвет с синего на зеленый. С этого момента датчики будут игнорировать Colt , и вы не активируете никаких сигналов тревоги. В случае с противниками ничего не изменится.

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

Дополнительное примечание — турели также можно найти в чемоданах. Вы можете перемещать и настраивать их. Учтите, что турель из чемоданов также будет стрелять по кольту . Взломать тоже придется — пока он в чемодане или после настройки.

3) ставни и двери — успешный взлом может открыть проход возле устройства с антенной. Это может быть отличным способом разблокировать альтернативные пути и некоторые секретные места в игровом мире.

4) рации разведчиков — вы можете найти их в некоторых местах в игре с передатчиками, прикрепленными к их одежде. Успешный взлом лишит разведчика возможности всем получить подкрепление, если сработает сигнализация. Мы советуем вам провести разведку перед любым потенциальным боем и саботировать рации любых разведчиков, с которыми вы столкнетесь.

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

Mass Effect: Andromeda

Информация

Рейтинг: Metacritic: 76 из 100 | Общий от игроков: 9.0

Год выхода 2017
Платформы Windows, Xbox One, PlayStation 4 
Режиссер Мак Уолтерс
Режимы Однопользовательская игра, Многопользовательская игра
Серия Mass Effect
Разработчик  Mass Effect

Минимальные системные требования:

  • ОС: Windows 7, Windows 8.1 или Windows 10 64-битная 
  • Процессор: Intel Core i5-3570 или AMD FX-6350 
  • Оперативная память: 8 Гбайт 
  • Видеокарта: NVIDIA GeForce GTX 660 или AMD Radeon 7850 с 2 Гбайт памяти 
  • Жёсткий диск: не менее 55 Гбайт свободного места 
  • DirectX 11 

Рекомендуемые системные требования: 

  • ОС: Windows 7, Windows 8.1 или Windows 10 64-битные версии Процессор: Intel Core i7-4790 или AMD FX-8350 
  • Оперативная память: 16 Гбайт Видеокарта: NVIDIA GeForce GTX 1060 с 3 Гбайт памяти или AMD RX 480 с 4 Гбайт памяти 
  • Жёсткий диск: не менее 55 Гбайт свободного места 
  • DirectX 11

Описание

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

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

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

Denuvo + VMProtect = love

Вот и настало время для обещанной истории про то, как Denuvo защищает Origin SDK.

Сигнатурные «руки Блауковича» принимают свои очертания при работе с константами исходного кода игрушки и Origin SDK. Для примера возьмем кусок кода из распакованного (его хеш MD5: ).

1
2
3
4
5
6

0000000141958B2A488D15EF7ED8FE lea rdx,qword ptr ds<aOriginstartupE>

0000000141958B31B90FA2FFE7mov ecx,E7FFA20F

0000000141958B364C89CBmov rbx,r9

0000000141958B394C89C7mov rdi,r8

0000000141958B3C8D89F15D001B lea ecx,qword ptr dsrcx+1B005DF1

0000000141958B42E8690F0300call<unravel_dump_scy.EA_CALLBACK>

Этот фрагмент, переваренный декомпилятором Hex-Rays в псевдокод, выглядит так:

1 EA_CALLBACK(0x3000000i64,aOriginstartupE);

Рейнгард Блаукович тоже читает «Тибериумный реверсинг»

Что здесь не так? Обычно первый аргумент — регистр . Он складывается из двух констант: . С учетом того, что все операции выполняются над четырехбайтным регистром, окончательный результат, выданный Hex-Rays, равен . Компилятор на стадии оптимизации повторил бы то же самое. Значит, константа была намеренно разбита на две части.

Присмотримся ближе к первому операнду слагаемого: . Почему именно операнд, Холмс? Наверное, под него проще подобрать ассемблерную инструкцию, которую можно скрыть внутри. То есть использовать традиционный прыжок «в середину инструкции» … Для проверки этой догадки заменим опкод на «nop — ничего не делать».

1
2
3

0000000141958B3190nop

0000000141958B320FA2cpuid

0000000141958B34FFE7 jmp rdi

CPUID — статическая компиляция для проверки лицензии Denuvo. Естественно, после ее использования нужен для возврата управления. Это «правая рука», а «левая» — системный вызов, которым Origin SDK выделяет память для EAH:

1
2
3
4
5
6
7
8

// Вот как эти «руки»…

000000014195C350B90F054FC3mov ecx,C34F050F

000000014195C3558D89A9FEB03C lea ecx,qword ptr dsrcx+3CB0FEA9

000000014195C35BE8 A0D80200 call<unravel_dump_scy.malloc_0>

// …трансформируются в «крюки»

000000014195C35090nop

000000014195C3510F05syscall

000000014195C3534FC3 ret

Сигнатурное разделение на два слагаемых для первого аргумента легко выявить в исходном коде (мы же знаем, где все процедуры Origin SDK расположены). Кроме того, нам известно, что вся эта «оранжевая музыка» ломается за пару кликов. Исполнение исходного кода Origin SDK в этом варианте развития событий вовсе не требуется (код будет лежать мертвым грузом). Поэтому ничто не помешает нам перезаписать его хакнутыми инструкциями. Короче, Denuvo свою лицензию проверяет через динамику. Какой смысл вообще в этих статических извращениях?!

Далее идет еще более странное (может, для кого-то даже смешное) поведение австрийских парней. Кусок кода, который отвечает за генерацию открытого ключа для обмена LSX-сообщениями:

1
2
3
4
5
6

charout16;//

sub_14199AB30(&ctx);

randr=GetTickCount();

sub_141999F80(&ctx, &randr, 4i64);

sub_14199A8A0(&ctx, out);

Здесь первая процедура выполняет нехитрые вычисления:

1
2
3
4
5
6
7
8
9
10
11

_int64 __fastcall sub_14199AB30(__int64 a1)

{

__int64 result;// rax

result=0i64;

*(_DWORD *)(a1+8)=0x67452301;

*(_DWORD *)(a1+12)=0xEFCDAB89;

*(_DWORD *)(a1+16)=0x98BADCFE;

*(_DWORD *)(a1+20)=0x10325476;

*(_QWORD *)a1=0i64;

returnresult;

}

«Да ведь это же MD5!» — воскликнет наблюдательный читатель и будет абсолютно прав! То есть в читабельном виде код из Hex-Rays выглядит так:

1
2
3
4

MD5_Init(&ctx);

randr=GetTickCount();

MD5_Update(&ctx, &randr, 4i64);

MD5_Final(&ctx, out);

Позвольте, сударь! Где же в приведенных выше примерах «мощная и непробиваемая защита» Denuvo? А нет ее! При помощи VMProtect 2 накрыты внутренности , причем только переходы между основными операциями процедуры. То есть копирование памяти , раунды — все это открыто!

По сути, в Denuvo «защищается» виртуализацией то, что абсолютно никак не связано с EAH. Например, рандомно генерируемые значения . К тому же конечный результат всегда можно увидеть после , который никто не трогал.

В истории разработки Denuvo еще была техника «воровства» нескольких ASM-инструкций в выделенную память. Это такой ламерский антидамп, известный еще со времен SafeDisk и первых CD-ROM. Этот детский сад быстро убрали, чтобы не позориться в XXI веке.

Отдельной строкой хотел упомянуть хайп, поднимающийся в Сети, когда очередной блогер выясняет, насколько сильно проседает FPS в игре, защищенной Denuvo. М-да! «А мужики-то и не знают» до сих пор о таких очевидно негативных последствиях бездумного использования виртуальной машины.

Гость форума
От: admin

Эта тема закрыта для публикации ответов.