Сейчас на форуме: Lohmaty (+6 невидимых) |
eXeL@B —› Вопросы новичков —› Взлом 3DsMax плагина: продление лицензии |
Посл.ответ | Сообщение |
|
Создано: 22 июля 2018 01:33 · Поправил: Winno22 · Личное сообщение · #1 Доброго времени суток! Есть плагин Corona Render 2 для 3DsMax. Взломом удалось с триала(Demo) сделать полную версию,путем замены адреса для Джампа.но вот продлить эту лицензию не выходит.. Окно лицензии в самом плагине. Срок действия должен истеч 2018-07-21 в x64dbg нахожу линк на строку "Software updates available until: " Если мне не изменияет память, lea тоже самое,что mov.В моем случае команда Code:
вот здесь я не пойму,данная команда отвечает за вывод только текста или же теста с датой. Я переключил системную дату на месяць вперед-написало,что лицензия истекла.Можно сделать вывод,что плагин отталкивавется от системного времени... но хочется просто продлить лицензию,к примеру,на год..Или же не истекать вовсе. После того как мне выдало сообщешние " license expired on .... " я нашел его в линках Команда выше ведет,как я полагаю,к блоку связанным с временем в только разобраться в нем не могу...С ассемблером знаком поверхностно еще с универа.. Прошу вывести меня,заблудшего, из этого леса |
|
Создано: 22 июля 2018 01:52 · Поправил: Kindly · Личное сообщение · #2 Winno22 пишет: Удалось с триала(Demo) сделать полную версию,путем замены адреса для Джампа.но вот продлить эту лицензию не выходит.. Окно лицензии в самом плагине. Срок действия должен истеч 2018-07-21 чето ты тут не договариваешь: как так, пропатчил только один джамп и стала полной еще и дату истечения отсчитывает - она откуда эта дата берется, из демо лицухи чтоли? патчи тогда time api так, чтобы срок истечения никогда не наступил. в твоем случае отталкивайся от _mktime64 (и будь добр норм скрины, ослепнуть можно) а вообще смотри какие time api юзаются, GetLocalTime, FileTimeToSystemTime и т.д., какие значения формируются и с чем сравниваются. ----- Array[Login..Logout] of Life |
|
Создано: 22 июля 2018 01:57 · Личное сообщение · #3 Winno22 пишет: Если мне не изменияет память, lea тоже самое,что mov.В моем случае команда загружает в rdx значение,которое лежит по адресу 00007FFB22179348. Lea = Load Effective Address lea rdx,[x] значит rdx = x. Добавлено спустя 8 минут Winno22 пишет: Команда выше ведет,как я полагаю,к блоку связанным с временем The mktime64() function converts a stored tm structure (assumed to be in job local time) pointed to by time, into a time64_t value suitable for use with other time functions. То есть этот блок связан со временем, но оно уже получено (и лежит в rbp-28), здесь только обработка. Добавлено спустя 11 минут Я думаю, что твой трюк с "продлением лицензии" не поможет с получением дальнейших обновлений, как сказано в about-окошке. Если разработчик не совсем идиот. ----- 2 оттенка серого |
|
Создано: 22 июля 2018 02:29 · Поправил: Kindly · Личное сообщение · #4 Winno22 пишет: загружает в rdx значение,которое лежит по адресу 00007FFB22179348. вот как раз lea это указатель на данные, если стека по данному адресу нету, то тогда lea может складывать и записывать значение, например: mov rbx,3 lea rax,[rbx+3] тогда будет rax = 6 но если mov rbx, ds:[rsp] lea rax,[rbx+3] то тогда в rax будет указатель на данные по адресу [rbx+3], но не сумма адреса и не значение из этого адреса! ----- Array[Login..Logout] of Life |
|
Создано: 22 июля 2018 02:36 · Поправил: f13nd · Личное сообщение · #5 Kindly Да не столь важно, все равно значение по этому адресу будет использоваться в итоге Важно наверное то, забирает ли плагин GET-запросом по статическому адресу свой обновленный дистрибутив или использует серийник для авторизации, чтоб его скачать. Во втором случае продлевать бесполезно. А триал пассажир говорит что починил уже. ----- 2 оттенка серого |
|
Создано: 22 июля 2018 10:44 · Личное сообщение · #6 Добырй день! Спасибо,что откликнулись. Простите,за скрины - забыл убрать галку "уменшить размер".Исправил Kindly пишет: чето ты тут не договариваешь: как так, пропатчил только один джамп и стала полной еще и дату истечения отсчитывает - она откуда эта дата берется, из демо лицухи чтоли? У меня была активирована демо версия.При загруске модуля нашел джамп,который ведет к адресу демо версии.Потом отыскал адрес полной версии... и просто скопировал в джамп вместо адреса демо. Разници нету между полной и триальной версией..это так пацанам во дворе показать) Но главаная проблем,что дату берет с демки, т.е. оно истечет 5 августа.Вот я и решил,может где-то строка которая отвечает за эту дату. f13nd пишет: Я думаю, что твой трюк с "продлением лицензии" не поможет с получением дальнейших обновлений, как сказано в about-окошке. Если разработчик не совсем идиот. Если получиться продлить или заморозит хотябы.. Я думаю можно будет тоже самое проделать с уже обновленной версией. Вообщем, в плагине показывает дату сегодняшнюю..Я уже обрадовался,что уже все зделано..но нет,перевел системную дату на 14 дней вперед - пишет,что срок демо-лицензии истек.. Т.е оно берет данные о времени с демки. Куда дальше рыть?)Т.е. я вернулся оттуда, откуда начинал П.С. Можно ли как-то в x64dbg перезагружать только один модуль? 3dsmax имеет 100500+ модулей и приходиться каждый раз перезапускать все. |
|
Создано: 22 июля 2018 10:51 · Поправил: Kindly · Личное сообщение · #7 f13nd пишет: Да не столь важно немного важнее, чем: lea rdx,[x] значит rdx = x. и не rdx = x, а rdx = Pointer[x] - если уже придираться, а то так и будет он думать, что: Winno22 пишет: lea тоже самое,что mov. Winno22 пишет: Можно ли как-то в x64dbg перезагружать только один модуль? загружай из под отладчика макс, потом в закладке Symbols выбери модуль и наставь бряков. а чтобы убивать какой то модуль и перезагружать его обратно в прогу - так нельзя. Winno22 пишет: Куда дальше рыть?) ну наверное в запросы так как ты либо игноришь, либо не понимаешь, что: смотри какие time api юзаются, GetLocalTime, FileTimeToSystemTime и т.д. дальше тебе надо выяснить их принадлежность к сроку истечения, смотреть их надо в плагине, потом запатчить как-то так: параметры(интересует регистр с адресом для записи) вызов выносишь код в свободное место, запоминаешь адрес для подмены, восстанавливаешь его после отработки api, пишешь по тому адресу, восстанавливаешь регистры, которые можешь заюзать для оперирования. код можно и не выносить, в некоторых случаях можно вместиться. достаточно в большинстве случаев подменить год/месяц/день - на остальное пох. если это все сложно, то может лучше специалистам доверить работу? я к тому, что для любого новичка приходит момент, когда программу нельзя сломать только патчем перехода или записью 1 в возврат функции. ----- Array[Login..Logout] of Life |
|
Создано: 22 июля 2018 11:20 · Личное сообщение · #8 Kindly пишет: и не rdx = x, а rdx = Pointer[x] - если уже придираться Я бы к квадратным скобкам придрался, это святотатство их в таком качестве использовать. Kindly пишет: выносишь код в свободное место, запоминаешь адрес для подмены, восстанавливаешь его после отработки api Скорей всего тут можно обойтись парой нопов в алгоритме проверки даты. ----- 2 оттенка серого |
|
Создано: 22 июля 2018 11:27 · Поправил: Kindly · Личное сообщение · #9 f13nd пишет: Я бы к квадратным скобкам придрался тогда Pointer беру в кавычки f13nd пишет: Скорей всего тут можно обойтись парой нопов в алгоритме проверки даты. или еще может быть проще? одно вангование по скриншотам ТС, ты делай сам что нибудь, либо тема несет больше характер на "сделайте за меня, а сам я думать не буду". я бы поступал примерно так: на основе демо лицухи пропатчил бы или лицуху в памяти или прогу для включения полнофункционала, подменил(заморозил) бы дату, ну и че там еще судя по скрину(Request code) - подменил бы hwid, вуаля. ----- Array[Login..Logout] of Life |
|
Создано: 22 июля 2018 11:34 · Поправил: f13nd · Личное сообщение · #10 Kindly пишет: или еще может быть проще? одно вангование по скриншотам Не по скриншотам было бы не интересно. Мне нравится эта конструкция Code:
----- 2 оттенка серого |
eXeL@B —› Вопросы новичков —› Взлом 3DsMax плагина: продление лицензии |