Ну что сказать. Огромный респект CPY - вот так надо ломать, без онлайн стримов и всякой ерунды. Ломанули и выкотили! Браво! Ну а денувовцы...наверное очень покраснели) (мягко так сказано)
Возвращаясь к Deus Ex Я расписал все что происходит в видео (Пока правда только половина) чтобы было проще ориентироваться. Надеюсь это поможет.
1) Доработка отладчика x64dbg. Чтобы первый аргумент при сохранении дампа был условной переменной.
2) Извлечение неинициализированной таблицы импорта и ресурсов приложения. а) Переименование секции ресурсов из .xtls в .rsrc (Чтобы её можно было извлеч при помощи Restorator 2007) б) Исправление в PE Editor RVA Import Directory на 00000. в) Извлечение ресурсов в Restorator 2007 г) В x64dbg переход к началу таблицы импорта к RVA import tabel (04DCA000) добовляется ImageBase которая в данном случае равна 140000000 получаем 144DCA000. д) Выделяем до первых нулей и сохроняем в файл table_iat.txt (для этого нужно использовать hex редактор)
3) Создание дампа программы (Время 2:45) а) В x64dbg загружаем программу и ставим на выполнение скрипт DumpHPage.txt б) Сохраняем в лог выполнения скрипта в) Переименовываем файл с логом в 0000000002530000.txt г) Удаляем начальные строки до rax = 000000000253c1b3 д) Заменяем строку Hardware breakpoint (execute) at dxmd.000000014826bc7 (000000014826bc7) на пустое место во всем файле. е) Удаляем последнюю предпоследнюю и строку перед RET Ж) Возвращаемся в отладчик и запускаем скрипт DumpVPage.txt з) После того как скрипт отработал имеем в папке minidump много файлов с расширением .mem и) Переименовываем файлы с помощью скрипта в 1.mem, 2.mem, ..... к) При помощи total commander собираем эти файлы в один и переименовываем в VPageDump.mem л) В x64dbg во вкладки MemoryMap переходим в секцию .xtext и забиваем её нулями м) Потом переходим в секцию .xpdata и тоже забиваем е1 нулями н) Переходим по адресу 0x0000000144BE7891 при помощи адреса функции _setusermather находим таблицу импорта о) Заменяем таблицу импорта на ту что мы сохранили в файл table_iat.txt п) Окрываем плагин OllyDumpEx р) Закидываем в EnterPoint 04BE7891 (Текущий адрес без ImageBase) сохраняем дамп с именем dxmd_dump_64.exe.
4) Редактирование дампа (Время 7:45) а)Открываем PE Editor заходим в редактор секций и загружаем секцию из файла VPageDump.mem б) Изменяем имя секции .NewSH на .vpage и снимаем флаг Contains uninitialized data. в) Загружаем ещё одну секцию из файла 0000000002530000.mem этот файл лежит в папке minidump, евляется результатом работы скрипта DumpHPage.txt д) Изменяем имя на .hpage, снимаем флаг Contains uninitialized data. е) Создаем ещё одну секцию называем её .rsrc. ж) Снимаем флаг Writeable, Executable as code, Contains uninitialized data и Contains executable code. з) Открываем Restorator 2007 загружаем в него дамп а в дамп загружаем ресурсы которые были сохранены в пункте 2в. и) Загружаем dxmd_dump_64.exe в отладчик и запускаем скрипт 0000000002530000.txt (который был получен из лога выполнения скрипта DumpHPage.txt). к) После окончания работы скрипта нажимаем кнопку пропатчить (пластырь) патчим и сохраняем пропатченый файл с именем dxmd_dump_64_1.exe л) Загружаем dxmd_dump_64_1.exe в отладчик и запускаем скрипт FixVPage.txt м) После окончания работы скрипта нажимаем кнопку пропатчить (пластырь) патчим и сохраняем пропатченый файл с именем dxmd_dump_64.exe н) Загружаем dxmd_dump_64.exe в отладчик и запускаем скрипт FixHPage.txt о) Опять патчим файл и сохраняем с именем dxmd_dump_64_1.exe п) Переименовываем dxmd_dump_64_1.exe в dxmd.exe предварительно сохранив оригинал.
5) Запуск дампа (Время 21:30) а) Запускаем дамп из под стима и аттачимся кнему через x64dbg во вкладке Treads выбираем Main. б) Находим push RCX (VM_OEP CODE START STEAM_DENUVO) и устанавливаем RIP сюда. в) Из скрипта DumpVPage.txt берем адресс 0x2B992DDFA232 (рядом с ним коментарий //STAMP), переходим в секцию .code и производим поис этого числа г) Поиск выдает строку 0x0000000144c1fe99 movabs rbx,2B992DDFA232, переходим туда. д) Ставим сюда апаратную точку останова и запускаем программу.
6) Теперь дамп работает без защиты но только на одном компьютере, что нужно исправить. (Время 25:25) а) Переходим по адресу 0x0000000144db99d8, прокручиваем в конец и выделяем все до строки out 8f,eax, и забиваем это нулями. б) Оставшуюся строку add bh,ah тоже забиваем нулями. в) Возвращаемся в адрес 0x0000000144c1fe99 опять выделяем этот кусок и вставляем туда код из файла Patch_bin_VA_144db99d8 (заранее подготовленая заготовка).
Кому что, а мне бы Бэтмэна. С последними патчами он отлично идет на моем компе.
На единственной таблетке от CPY и с добавленными файлами от последнего патча игра идет замечательно, небольшие подергивания есть только в машине и то в основном при разгоне. Врятли CPY будут обновлять таблетку в ближайшее время.
Ну а денувовцы...наверное очень покраснели) (мягко так сказано)
Может и покраснели, но скорее от работы. Им, по факту, нужно успеть выкатить обновленную версию защиты к крупным осенним релизам. А иначе какой дурак будет платить за их крякнутую "неломаемую-супер-защиту".
Как я понял тут действительно произошёл взлом, именно взлом а не просто обход, до сих пор все что было это просто обход, и именно этот обход денувовцы прикрывали. Если CPY реально защиту сломали, никакие патчи и обновы уже не помогут, защита действует по одной схеме какой бы сложной она не была, нельзя ее принципиально изменить, но и взлом действует так же, найдет алгоритм взлома (я надеюсь), а если он найден - все, никакие обновы и затыки уже не помогут. Если в ближайшее время посыпятся релизы с денуво (JC3,DE и другие) , то все...денуво как и все супер защиты уходят в прошлое.
Joe-Jim, взлом это когда из экзешника вырезают защиту, а тут просто эмулятор сделали, так что это обход, который со следующим обновлением игры перестанет работать
remadyon, не нужно вбрасывать дезинформацию, когда вы не знаете о чем говорите Внутри эмулятора и находится сама фишка: патчинг всех нужных мест в памяти, дабы избежать CRC проверок (например) и т.д. И, естественно, при следующем патче, эти места уже будут в совершенно иных смещениях, поэтому нужно будет перепиливать заново (фактически, Денувовцы могут добавить только больше проверок, но саму логику защиты они не поменяют )
Действительно, deadmau5, насколько я знаю волокет во всей этой системе. Поэтому нужно каждому оставаться при своем мнении. Главное - результат! Единственное, что лично меня смущает, так это время (15 суток) обхода/взлома (кому как нравится) той или иной игрули.
Undead_75, дык причина банальна до жути, у людей просто явная нехватка свободного времени, поэтому они и не клепают это все дело каждый день (насчет CPY)
Не, я думаю они этими 15 днями себе цену набивают, вот если они на все игры кряки выложат че им еще делать? Их забудут как в том году после кряка бэтмена и лордс оф зе фаллен. А так каждые 15 дней будут на игрульку кряк выкидывать и все будут вспоминать какие CPY молодцы
Сомневаюсь что эти "15 дней" как-то связаны с самим процессом взлома, это действительно больше похоже на политику этой релиз-группы касательно поддержания хайпа вокруг своего имени.
А может у них такая манера взламывать, отдыхают 14 дней, на пятнадцатый собираются и пилят кряк В любом случае, если на форуме не появится кто-нибудь из CPY , то нам останется только гадать, почему так, а не иначе. Вполне допускаю, что у них может быть метод не только для стима, но и для ориджина или юплея, просто решили начать со стимовских игр, но опять же это все только догадки.
Имхо, кто то из команды дерьмувы, спустя какой то срок (пол года, год) сливает код защиты конкретной игры( ну или как то так я не "електроник") не бейте палками, возможно он один из конспираси или просто сливает им инфу. Как вам такая версия?
Очень не хотелось бы, чтобы наши ребята опускали руки, ввиду выхода взломов от CPY. Типа они все равно сломают потом. Во-первых, не факт, ни в чем нельзя быть стопроцентно уверенным, во-вторых, что именно взломают, в третьих, когда именно это произойдет, в-четвертых, свои это свои, родные Ну и чтобы было кому помочь CPY, ведь они одни пока волокут это дело, имею ввиду взлом и выпуск кряков.
darkresident, не думаю, что CPY снизойдут до простых смертных на обычном российском форуме. Да и вроде тут выкладывали сообщения с закрытого сцен трекера, если не фейк конечно. СМИ уже начали трубить про гибель пиратства, а на известном PG школосообществе вообще написали что в Denuvo проходят массовые увольнения и команда продает инвентарь и здание.
Joe-Jim, это обход, почитай тему. все игры старые, никто к ним патчи с обновленной защитой уже не будет выпускать
Уж не знаю правдиво ли это сообщение, но человек ниже писал по этому поводу.
ЦитатаLuckyNeo ()
Прошу минуточку внимания, господа! Для тех, кто ещё отказывается верить. Ответ с закрытого СЦЕН-трекера:
Вопрос: what do you get excited? This is the game that took the steam bypass denuvo not broke ... even though this group deserves respect for your time (Это пользователь пишет про сцен-группу CONSPIR4CY и про её взлом DOOM)
ОТВЕТ! Читаем внимательно! - Denuvo is cracked here. The Scene will not release anything with a bypass.
deema_35, заходим в карте памяти .data1 и находим адреса который в левом столбе. Можешь в PE Editore изменить как на картинке у Haoose и посмотри как адрес в правом столбе будет меняться. Ну так я и адреса и нашел.
Reynor, скорее всего решили пока разобраться только с играми стима, а далее уже возьмутся за все остальное. Но опять же, как уже было выше сказано все это лишь догадки. Интересно, есть ли вероятность, что после выхода сегодняшнего патча к деусу который добавляет поддержку дх12, CPY выкатят таки именно его и именно на днях?
Joe-Jim, взлом это когда из экзешника вырезают защиту, а тут просто эмулятор сделали, так что это обход, который со следующим обновлением игры перестанет работать
Нет, обход может иметь разные понятия в разном контексте. Обход, если была использована дыра, например, в сервисе Steam. Они не вырезают Denuvo из файла, служебный код остается, ВМ остается, они обходят "лишнее", если так можно сказать, а затем используют Denuvo, чтобы та сама лицензировала игру, это если очень упростить схему. Она в общем-то не меняется...
Reynor, понятия не имею, не смотрел, но логика, подозреваю такая же, защита то одна, значит есть свой служебный код, есть OEP частично под ВМ, есть проверка клиента (орижина) и своя лицензия, примерно такая же, ну и т.п. У меня нет просто игр там с денуво.
painter701, на твой взгляд, то что выкладывают CPY, это временное решение и в следующих обновлениях защиты им нужно будет искать принципиально новый способ обхода?