Сейчас на форуме: igorcauret (+8 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Устранить Nagscreen "Осталось N дней" |
Посл.ответ | Сообщение |
|
Создано: 25 июня 2014 21:47 · Поправил: Letun · Личное сообщение · #1 Что есть Сама программа (установщик+хелп с самой общей инфой о защите) Она небольшая, ставится за полминуты. Написана на Delphi. При запуске появляется окно с двумя кнопками (режим работы), при нажатии на любую из них появляется nagscreen "Осталось N дней". Изначально даётся 30 дней, которые отсчитываются от даты создания файла Modelus2012.exe Чего хочу - убрать nagscreen "Осталось N дней" с тем, чтобы программа работала как уже зарегистрированная, ЛИБО чтобы работала так, как будто всё время остаётся 30 дней (этого я добился скриптом, см. ниже) Что делал 1) Проверил классический вариант с переводом часов - работает. Написал скрипт, который переводит часы на дату создания запускающего Modelus2012.exe, запускает сам Modelus2012.exe, после закрытия которого переводит часы обратно. Только показывает каждый раз при запуске окошко "Осталось 30 дней". 2) Попробовал отследить само окошко "Осталось 30 дней" в Olly Debugger. Нашёл примерное место, откуда оно вызывается, но не хватило знаний ассемблера, чтобы убрать это напоминание. Итог: сумел изменить заголовок окна в Hiew. ______________ Просьба к форумчанам помочь с такой задачкой. Я не прошу делать всё за меня, но любой помощи буду рад. Прилагаю скрин места в OllyDbg, с которого примерно начинается вызов надоедливого диалога-напоминалки. Пробовал заменить за ним все переходы на jmp, не помогло - диалог всё равно появляется. ![]() |
|
Создано: 25 июня 2014 21:57 · Поправил: unknownproject · Личное сообщение · #2 Делай бряк на память по кол-ву оставшихся дней и там уже меняй на свое усмотрение - хоть 999 дней, хоть сделай ноль, а рядом с нагом ищи проверку на ноль (истекший триал) и либо ее нопь, либо делай безусловный джамп на следующую после нага команду. Hint: Code:
Поможет в регистрации ![]() ----- TEST YOUR MIGHT ![]() |
|
Создано: 26 июня 2014 00:10 · Личное сообщение · #3 вы хоть посмострите в свой скрин =) в каком модуле вы ковыряетесь ? Code:
заменить на безусловный ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 26 июня 2014 07:42 · Личное сообщение · #4 Letun пишет: Написана на Delphi. хмм. а ep похожа на Borland C++ Code:
ну неважно. зато там еще кейген, судя по всему, можно замутить(0x0040329C навскидку где-то отсюды проверка). впрочем, сам алго, наверно, люто забагованный-если банально вставить "Ваш код регистрации" в "ответный код", то выпадает мессаг бокс - ... is not valid flotiong point value ![]() |
|
Создано: 26 июня 2014 08:28 · Личное сообщение · #5 Ставим бряк на MessageBoxW, выходим из USER32, еще чуть выше ... еще ... попадаем сюда: ![]() меняем на ![]() нага нет, время переводить не надо. ----- Сотрудник DHARMA ![]() |
|
Создано: 26 июня 2014 09:15 · Личное сообщение · #6 |
|
Создано: 26 июня 2014 09:15 · Поправил: TrueLies · Личное сообщение · #7 |
|
Создано: 26 июня 2014 11:41 · Поправил: unknownproject · Личное сообщение · #8 |
|
Создано: 26 июня 2014 14:42 · Личное сообщение · #9 и вариант 3: пользуемся кейгеном ![]() ![]() ----- Сотрудник DHARMA ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 26 июня 2014 17:39 · Поправил: ELF_7719116 · Личное сообщение · #10 TrueLies пишет: пользуемся кейгеном он же читает ветку HKCU\AppEvents\CLSID с содержимым ключа IDN_CLS, с чего мы и получаем наш валидный ключ(DWORD) - по адресу 0x00403B34: Code:
![]() |
|
Создано: 26 июня 2014 18:46 · Поправил: Vnv · Личное сообщение · #11 |
|
Создано: 26 июня 2014 19:37 · Поправил: Letun · Личное сообщение · #12 Уважаемые товарищи! Так оперативно и качественно мне не помогали, пожалуй, ещё ни на одном форуме ![]() 1) unknownproject пишет: Делай бряк на память по кол-ву оставшихся дней и там уже меняй на свое усмотрение - хоть 999 дней, хоть сделай ноль, а рядом с нагом ищи проверку на ноль (истекший триал) и либо ее нопь, либо делай безусловный джамп на следующую после нага команду. Hint: Code: 0040329C >/$ 55 PUSH EBP &nbs p; ; Modelus2012::ANextExecute Поможет в регистрации Не совсем понял хинт (новичок в крякинге) 2) kid пишет: Code: .text:00402A16 jnz loc_402DBB заменить на безусловный Уррра! Работает без нареканий и нагскрина, пункт реги в меню сохраняется, но делать её уже нет необходимости. Спасибо! 3) TrueLies пишет: Вариант номер 2: Занопить этот переход ... было: Code: 0040343E 75 1B JNZ SHORT 0040345B стало: Code: 0040343E 90 NOP 0040343F 90 NOP Регистрируем любым набором цифр, перезапускам ... прога зарегана. Работает, но кажет окошко ошибки при запуске и при вызове окна реги (скрин в приложении). Это неважно, главное - работает ![]() 4) TrueLies пишет: и вариант 3: пользуемся кейгеном f2b2_26.06.2014_EXELAB.rU.tgz - keygen.exe К кейгену никаких нареканий, работает на ура. Благодарочка вам! Обещаю разобраться в том, как вы сделали первый вариант (про свой кейген даже не думаю пока), хорошо что вы чуть пояснили в постах выше 5) Vovan666 пишет: К чему столько плясок с джампами, там серийник в открытом виде светится(в виде дворда)? "получаем наш валидный ключ(DWORD) - по адресу 0x00403B34" - там push EBP спасибо, попробую разобраться ![]() ![]() |
|
Создано: 27 июня 2014 01:14 · Поправил: ThugboyZ · Личное сообщение · #13 Letun пишет: Не совсем понял хинт (новичок в крякинге) Так вот, ежели в программе предусмотрена процедура регистрации, то лучше разбирать ее.Другое дело, если это представляет определенные трудности, например, из-за сложности алгоритма.Патч - это всегда последнее и как правило применимо лишь к сугубо триальный/демо версиям, но при этом с полнофункциональным кодом, без катов.Патч - это крайняя мера. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Устранить Nagscreen "Осталось N дней" |